Centos SSH暴力破解[通俗易懂]

http://www.manongjc.com/article/39585.htmlhttps://www.jianshu.com/p/9d56a25b976ahttps://www.iteye.com/blog/sxlkk-2435700https://blog.csdn.net/luoxiandong2/article/details/73739304fastjson是…

大家好,又见面了,我是你们的朋友全栈君。

【SSH服务简介描述】

 

SSH 为 Secure Shell 的缩写,由 IETF 的网络小组所制定;SSH 为建立在应用层基础上的安全协议。SSH 是专为远程登录会话和其他网络服务提供安全性的协议。

SSH 主要由三部分组成:

传输层协议 [SSH-TRANS]

提供了服务器认证,保密性及完整性。此外它有时还提供压缩功能。 SSH-TRANS 通常运行在TCP/IP连接上,也可能用于其它可靠数据流上。 SSH-TRANS 提供了强力的加密技术、密码主机认证及完整性保护。该协议中的认证基于主机,并且该协议不执行用户认证。更高层的用户认证协议可以设计为在此协议之上。

用户认证协议 [SSH-USERAUTH]

用于向服务器提供客户端用户鉴别功能。它运行在传输层协议 SSH-TRANS 上面。当SSH-USERAUTH 开始后,它从低层协议那里接收会话标识符(从第一次密钥交换中的交换哈希H )。会话标识符唯一标识此会话并且适用于标记以证明私钥的所有权。 SSH-USERAUTH 也需要知道低层协议是否提供保密性保护。

连接协议 [SSH-CONNECT]

将多个加密隧道分成逻辑通道。它运行在用户认证协议上。它提供了交互式登录话路、远程命令执行、转发 TCP/IP 连接和转发 X11 连接。

从客户端来看,SSH提供两种级别的安全验证。

第一种级别(基于口令的安全验证)

只要你知道自己帐号和口令,就可以登录到远程主机。所有传输的数据都会被加密,但是不能保证你正在连接的服务器就是你想连接的服务器。可能会有别的服务器在冒充真正的服务器,也就是受到“中间人”这种方式的攻击。

第二种级别(基于密匙的安全验证)

需要依靠密匙,也就是你必须为自己创建一对密匙,并把公用密匙放在需要访问的服务器上。如果你要连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用你的密匙进行安全验证。服务器收到请求之后,先在该服务器上你的主目录下寻找你的公用密匙,然后把它和你发送过来的公用密匙进行比较。如果两个密匙一致,服务器就用公用密匙加密“质询”(challenge)并把它发送给客户端软件。客户端软件收到“质询”之后就可以用你的私人密匙解密再把它发送给服务器。

用这种方式,你必须知道自己密匙的口令。但是,与第一种级别相比,第二种级别不需要在网络上传送口令。

第二种级别不仅加密所有传送的数据,而且“中间人”这种攻击方式也是不可能的(因为他没有你的私人密匙)。但是整个登录的过程可能需要10秒。

传统的网络服务程序,如:ftp、pop和telnet在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,别有用心的人非常容易就可以截获这些口令和数据。而且,这些服务程序的安全验证方式也是有其弱点的, 就是很容易受到“中间人”(man-in-the-middle)这种方式的攻击。所谓“中间人”的攻击方式, 就是“中间人”冒充真正的服务器接收你传给服务器的数据,然后再冒充你把数据传给真正的服务器。服务器和你之间的数据传送被“中间人”一转手做了手脚之后,就会出现很严重的问题。通过使用SSH,你可以把所有传输的数据进行加密,这样”中间人”这种攻击方式就不可能实现了,而且也能够防止DNS欺骗和IP欺骗。使用SSH,还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。SSH有很多功能,它既可以代替Telnet,又可以为FTP、PoP、甚至为PPP提供一个安全的”通道”。

【信息收集】

1、测试对象

IP地址/域名:10.10.10.128

操作系统:Centos7

2、测试工具

工具名称 描述
1 kali-linux Kali Linux预装了许多渗透测试软件,包括nmap 、Wireshark 、John the Ripper,以及Aircrack-ng
2 metasploit Metasploit是一款开源的安全漏洞检测工具,可以帮助安全和IT专业人士识别安全性问题,验证漏洞的缓解措施,并管理专家驱动的安全性进行评估,提供真正的安全风险情报。
3 Nmap Network Mapper, Linux下的网络扫描和嗅探工具包. nmap是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端。确定哪些服务运行在哪些连接端,并且推断计算机运行哪个操作系统(这是亦称 fingerprinting)

3、目前端口开放情况

端口号 服务 产品版本
1 22/tcp ssh OpenSSH 
2 80/tcp http nginx

【验证过程】

1.启动Kali Linux 以及OWASP系统

2.nmap工具网络扫描和嗅探工具包

使用nmap查看有多少主机存在于同一网段,运行指令: nmap -sP 10.10.10.0/24

Centos SSH暴力破解[通俗易懂]

运行: nmap –o 10.10.10.129,查看改网络地址的各个信息,例如端口,MAC地址等

Centos SSH暴力破解[通俗易懂]

查看改网络的端口信息,运行指令: nmap -sV -Pn 10.10.10.129

Centos SSH暴力破解[通俗易懂]

3.安全漏洞检测工具

打开metasploit工具,出现如下界面:
运行: msfconsole

Centos SSH暴力破解[通俗易懂]

启动ssh服务输入指令: search ssh

Centos SSH暴力破解[通俗易懂]

找到下面的文件

Centos SSH暴力破解[通俗易懂]

启用漏洞利用模块, 提示符就会提示进入到该路径下,进入ssh_login_   运行指令 : use auxiliary/scanner/ssh/ssh_login

Centos SSH暴力破解[通俗易懂]

得到ssh_login服务的各类信息    运行指令: show options,查看需要设置的相关项,“yes”表示必须填写的参数。

Centos SSH暴力破解[通俗易懂]

4.接下来使用品轩字典生成器生成用户名字典以及密码字典

Centos SSH暴力破解[通俗易懂]

Centos SSH暴力破解[通俗易懂]

Centos SSH暴力破解[通俗易懂]

生成两个文件为,一个是用户名文件user.txt,一个是密码文件pass.txt

设置两个文件为爆破文件,设置用户名文件,set user_file /root/user.txt,设置密码文件set pass_file /root/pass.txt,设置输出更详细的日志信息,set  verboss  true

也可以单独设置某个用户名比如,就想破解root的密码,那就指定用户名是root然后用密码文件破解,  set username root,指定登陆用户名root。

Centos SSH暴力破解[通俗易懂]

设置远程攻击的主机信息  set rhosts 10.101.10.129   设置暴利破解的线程数为50          set threads 50

Centos SSH暴力破解[通俗易懂]

4.开始爆破,执行命令,run,看到success,出现用户名和密码

Centos SSH暴力破解[通俗易懂]

由上图可知,得到 user:owaspbwa 账号密码,用户名是user,密码是owaspbwa 

【防护措施】
安全口令
1.不使用空口令或系统缺省的口令,因为这些口令众所周知,为典型的弱口令。

2.口令长度不小于8个字符。

3.口令不应该为连续的某个字符(例如:AAAAAAAA)或重复某些字符的组合(例如:tzf.tzf.)。

4.口令应该为以下四类字符的组合,大写字母(A-Z)、小写字母(a-z)、数字(0-9)和特殊字符。每类字符至少包含一个。如果某类字符只包含一个,那么该字符不应为首字符或尾字符。

5.口令中不应包含本人、父母、子女和配偶的姓名和出生日期、纪念日期、登录名、E-mail地址等等与本人有关的信息,以及字典中的单词。

6.口令不应该为用数字或符号代替某些字母的单词。

7.口令应该易记且可以快速输入,防止他人从你身后很容易看到你的输入。

8.至少90天内更换一次口令,防止未被发现的入侵者继续使用该口令。

注意事项
1.在笔记本或其它地方不要记录口令。

2.向他人透露口令,包括管理员和维护人员。当有人打电话来向你索要口令时,你就该保持警惕了。

3.在e-mail或即时通讯工具中不透露口令。

4.离开电脑前,启动有口令保护的屏幕保护程序。

5.在多个帐户之间使用不相同的口令。

6.在公共电脑不要选择程序中可保存口令的功能选项。

切记,不要使用弱口令,以及保护好你的口令。

同时要注意,改过的口令一定要牢记。很多人因常改口令而遗忘,造成很多不必要的麻烦。

修改默认的端口号

将默认端口22修改为自定义的2020端口    

[root@localhost ~]# vi /etc/ssh/sshd_config

[root@localhost ~]# grep Port /etc/ssh/sshd_config

Port 2020   

#GatewayPorts no

在防火墙中加入2020端口的策略
       [root@localhost ~]# vi /etc/sysconfig/iptables

[root@localhost ~]# grep 2020 /etc/sysconfig/iptables

-A INPUT -p tcp -m state –state NEW -m tcp –dport 2020 -j ACCEPT

 
重启防火墙策略
[root@localhost ~]# /etc/init.d/iptables restart
iptables: Setting chains to policy ACCEPT: nat filter     
iptables: Flushing firewall rules:                       
iptables: Unloading modules:                              
iptables: Applying firewall rules:                       
 
重启sshd服务
[root@localhost ~]# /etc/init.d/sshd restart
Stopping sshd:                                
Starting sshd:                                 
不使用root账号登录

1.修改登录shell:将 /bin/bash 改为 /sbin/nologin

2.修改sshd配置文件:将PermitRootLogin 设置为no

3.将普通用户提升为系统管理员:将UID和GID改为0,一般情况这个就可以解决了暴力破解的问题了。

【弱口令及弱口令漏洞】

弱口令(weak password) 没有严格和准确的定义,通常认为容易被别人(他们有可能对你很了解)猜测到或被破解工具破解的口令均为弱口令。弱口令指的是仅包含简单数字和字母的口令,例如“123”、“abc”等,因为这样的口令很容易被别人破解,从而使用户的计算机面临风险,因此不推荐用户使用

  在当今很多地方以用户名(帐号)和口令作为鉴权的世界,口令的重要性就可想而知了。口令就相当于进入家门的钥匙,当他人有一把可以进入你家的钥匙,想想你的安全、你的财物、你的隐私。因为弱口令很容易被他人猜到或破解,所以如果你使用弱口令,就像把家门钥匙放在家门口的垫子下面,是非常危险的。

  口令是网络系统的第一道防线。当前的网络系统都是通过口令来验证用户身份、实施访问控制的。口令攻击是指黑客以口令为攻击目标,破解合法用户的口令,或避开口令验证过程,然后冒充合法用户潜入目标网络系统,夺取目标系统控制权的过程。
  如果口令攻击成功黑客进入了目标网络系统,他就能够随心所欲地窃取、破坏和篡改被侵入方的信息,直至完全控制被侵入方。所以,口令攻击是黑客实施网络攻击的最基本、最重要、最有效的方法之一。
  口令攻击的主要方法
  1、社会工程学(social Engineering),通过人际交往这一非技术手段以欺骗、套取的方式来获得口令。避免此类攻击的对策是加强用户意识。
  2、猜测攻击。首先使用口令猜测程序进行攻击。口令猜测程序往往根据用户定义口令的习惯猜测用户口令,像名字缩写、生日、宠物名、部门名等。在详细了解用户的社会背景之后,黑客可以列举出几百种可能的口令,并在很短的时间内就可以完成猜测攻击。
  3、字典攻击。如果猜测攻击不成功,入侵者会继续扩大攻击范围,对所有英文单词进行尝试,程序将按序取出一个又一个的单词,进行一次又一次尝试,直到成功。据有的传媒报导,对于一个有8万个英文单词的集合来说,入侵者不到一分半钟就可试完。所以,如果用户的口令不太长或是单词、短语,那么很快就会被破译出来。
  4、穷举攻击。如果字典攻击仍然不能够成功,入侵者会采取穷举攻击。一般从长度为1的口令开始,按长度递增进行尝试攻击。由于人们往往偏爱简单易记的口令,穷举攻击的成功率很高。如果每千分之一秒检查一个口令,那么86%的口令可以在一周内破译出来。
  5、混合攻击,结合了字典攻击和穷举攻击,先字典攻击,再暴力攻击。
  避免以上四类攻击的对策是加强口令策略。
  6、直接破解系统口令文件。所有的攻击都不能够奏效,入侵者会寻找目标主机的安全漏洞和薄弱环节,饲机偷走存放系统口令的文件,然后破译加密的口令,以便冒充合法用户访问这台主机。
  7:网络嗅探(sniffer),通过嗅探器在局域网内嗅探明文传输的口令字符串。避免此类攻击的对策是网络传输采用加密传输的方式进行。
  8:键盘记录,在目标系统中安装键盘记录后门,记录操作员输入的口令字符串,如很多间谍软件,木马等都可能会盗取你的口述。
  9:其他攻击方式,中间人攻击、重放攻击、生日攻击、时间攻击。
  避免以上几类攻击的对策是加强用户安全意识,采用安全的密码系统,注意系统安全,避免感染间谍软件、木马等恶意程序。
  口令攻击的防护手段
  要有效防范口令攻击,我们要选择一个好口令,并且要注意保护口令的安全。
  1、好口令是防范口令攻击的最基本、最有效的方法。最好采用字母、数字、还有标点符号、特殊字符的组合,同时有大小写字母,长度最好达到8个以上,最好容易记忆,不必把口令写下来,绝对不要用自己或亲友的生日、手机号码等易于被他人获知的信息作密码。
  2、注意保护口令安全。不要将口令记在纸上或存储于计算机文件中;最好不要告诉别人你的口令;不要在不同的系统中使用相同的口令;在输入口令时应确保无人在身边窥视;在公共上网场所如网吧等处最好先确认系统是否安全;定期更改口令,至少六个月更改一次,这会使自己遭受口令攻击的风险降到最低,要永远不要对自己的口令过于自信。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/126724.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • goland 2021.7激活码【2021免费激活】

    (goland 2021.7激活码)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。https://javaforall.cn/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~M…

  • pycharm python安装教程_python环境安装教程

    pycharm python安装教程_python环境安装教程首先我们来安装python1、首先进入网站下载:点击打开链接(或自己输入网址https://www.python.org/downloads/),进入之后如下图,选择图中红色圈中区域进行下载。2、下载完成后如下图所示3、双击exe文件进行安装,如下图,并按照圈中区域进行设置,切记要勾选打钩的框,然后再点击Customizeinstallation进入到下一步:4、对于上图中,可以通过Browse…

  • Nginx负载均衡失效「建议收藏」

    Nginx负载均衡失效「建议收藏」1.配置upstreamtest_api_backend{server192.168.0.1:8080;server192.168.0.2:8080;server192.168.0.3:8080;session_stickycookie=test_web_route;}2.现象负载均衡失效,通过域名访问后请求总是打到同一台机器。3.原因使用了session_st

  • android 游戏引擎_最简单的游戏引擎

    android 游戏引擎_最简单的游戏引擎随着Android系统的使用越来越广泛,了解一下Android平台下的游戏引擎就非常有必要。而同时因为基于Intelx86的移动设备越来越多,我也非常关注支持x86的移动游戏引擎。然而就目前为止游戏引擎的数量已经非常之多,每个引擎都有不同的特征、价格、成熟度等。通过一些调研之后,我发现有非常多的游戏引擎可用于开发运行在android移动设备端的游戏,其中有些还支持x86系统,另外还有些通过简单的修

  • Java中split函数的用法及使用示例

    Java中split函数的用法及使用示例

  • python计算坐标点欧式距离_计算Python Numpy向量之间的欧氏距离实例

    python计算坐标点欧式距离_计算Python Numpy向量之间的欧氏距离实例计算PythonNumpy向量之间的欧氏距离,已知vec1和vec2是两个Numpy向量,欧氏距离计算如下:importnumpydist=numpy.sqrt(numpy.sum(numpy.square(vec1-vec2)))或者直接:dist=numpy.linalg.norm(vec1-vec2)#补充知识:Python中计算两个数据点之间的欧式距离,一个点到数据集中其他点的距离之和#如下所示:#计算数两个数据点之间的欧式距离importn

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号