基于Kali Linux的SSH密码暴力破解及防御实战
2022-07-26姚开朗王日新罗彩涓林丽红刘彦君张华
◆姚开朗 王日新 罗彩涓 林丽红 刘彦君 张华
基于Kali Linux的SSH密码暴力破解及防御实战
◆姚开朗 王日新 罗彩涓 林丽红 刘彦君 张华
(闽江学院 福建 350108)
本文通过Kali Linux 渗透平台,利用Patator、BrutesPray以及Metasploit Framework下的ssh_login 模块等多种手段,对远程主机SSH服务的用户名及密码进行暴力破解。利用VMware Workstation Pro虚拟机上的centos7系统及kali进行仿真实战,成功登录远程主机,并在最后给出防范SSH暴力破解的方法。
SSH;密码暴力破解
对于 Linux 操作系统来说,一般通过 VNC、Teamviewer和 SSH 等工具来进行远程管理,SSH 是 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH为建立在应用层基础上的安全协议。
SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可有效弥补网络中的漏洞,通过SSH,可以把所有传输的数据进行加密,也能够防止DNS欺骗和IP欺骗,有效防止远程管理过程中的信息泄露问题。
SSH 客户端适用于多种平台。Kali Linux 渗透平台默认配置 SSH 服务。SSH 进行服务器远程管理,仅仅需要知道服务器的IP地址、端口、管理账号和密码,即可进行服务器的管理。网络安全遵循木桶原理,只要通过 SSH 撕开一个口子,对渗透人员来说这将是一个新的世界。本文对目前流行的 SSH 密码暴力破解工具进行实战研究、分析和总结,对渗透攻击测试和安全防御具有一定的参考价值。
1 使用Patator暴力破解 SSH 密码
Patator是一个用Python编写的多线程工具。采用模块化设计,灵活性高,其支持FTP、Telnet、SMTP等多个协议的暴力破解。
实战破解方法如下。
执行“patator –h”命令后即可获取其参数的详细使用信息,在 ssh 暴力破解模块 ssh_login 中需要设置 host,port,user,password 等参数。
(1)执行单一用户密码破解
执行命令“patator ssh_login host=192.168.0.115 user=admin password=FILE0 0=plist”,表示对主机192.168.0.115,用户admin进行破解,如图1 所示,破解成功后会显示 SSH 登录标识“SSH-2.0-OpenSSH_7.4”,破解不成功会显示 “Authentication failed”。
图1 破解单一用户密码
(2)破解多个用户
执行命令“patator ssh_login host=192.168.0.115 user=FILE0 password=FILE1 0=ulist 1=plist -x ignore:mesg='Authentication failed.'”,表示对该服务器下所有用户进行破解,“-x ignore:mesg='Authentication failed.'”表示只显示成功结果。效果如图2所示。
图2 使用Patator破解多用户的密码
2 使用BrutesPray暴力破解 SSH 密码
BruteSpray是一款基于nmap扫描输出的日志文件进行暴力破解的工具。它可以读取NMAP生成Gnamp和XML格式的日志文件,然后借助Kali Linux的另外一款暴力破解工具Medusa进行爆破。为了加快破解速度,该工具预置了17种常见服务的默认认证信息字典。
BruteSpray没有集成到 kali Linux 中,需要手动安装:
root@kali:~# apt-get update
root@kali:~# apt-get install brutespray
实战破解方法如下。
(1)使用 nmap进行端口扫描
执行命令“nmap -sS -p 22 192.168.0.0/24 -oX 22.xml ”,以SYN扫描的方式扫描192.168.0.0网段内开放22端口的主机,并将扫描结果保存在22.xml文件中。
(2)暴力破解 SSH 密码
在使用BruteSpray破解模块时需要指定Nmap扫描生成的22.xml 日志文件,设置用户字典文件,密码字典文件,指定线程数和指定主机数。
执行命令“brutespray -f 22.xml -U ulist -P plist --threads 5 --hosts 5”如图3所示。破解结果保存在./brutespray-output/主文件夹下,执行命令“cat ./brutespray-output/22-ssh-success.txt ”打开文件可看到成功破解两组用户名和密码,如图4所示。
图3 执行brutespray破解命令
图4 破解结果
3 MSF下利用 ssh_login 模块进行暴力破解
Metasploit Framework(简称MSF)是一个编写、测试和使用exploit代码的完善环境。这个环境为渗透测试,Shellcode编写和漏洞研究提供了一个可靠的平台,这个框架主要是由面向对象的Perl编程语言编写的,并带有由C语言,汇编程序和Python编写的可选组件。相比于Patator和BrutesPray,MSF是一个综合性的平台,SSH相关模块只是其中一部分。它本身附带数百个已知软件漏洞,可以很容易获取、开发并对计算机漏洞实施攻击。
在 kali 终端中执行“msfconsole”-“search ssh”后可获取msf 下有关 SSH 相关模块,如图5所示。
图5 msf 下所有 SSH 漏洞以及相关利用模块
实战破解方法如下。
(1)SSH用户枚举
依次执行命令“use auxiliary/scanner/ssh/ssh_enumusers”枚举的指令;“set RHOSTS 192.168.0.115”指定主机;“set USER_FILE ./ulist”指定用户列表文件;“run”自动执行;可枚举显示目标主机SSH用户,如图6所示。
图6 SSH用户枚举
(2)SSH 暴力破解
SSH 暴力破解模块“auxiliary/scanner/ssh/ssh_login”可以对单机进行单用户,单密码进行扫描破解,也可以使用密码字典和用户字典进行破解,按照提示设置目标主机IP,用户字典文件,密码字典文件,然后执行即可。如图7所示。
图7 使用 msf 暴力破解 ssh 密码
4 登录破解服务器
使用 ssh user@host 命令登录 host 服务器。例如登录 192.168.0.115:
ssh 123@192.168.0.115或ssh admin@192.168.0.115,然后再输入对应密码即可正常登录服务器。如图8和图9所示。
图8 使用123用户成功登录服务器
图9 使用admin用户成功登录服务器
5 SSH暴力破解安全防范
为了防范在使用SSH服务过程中受到暴力破解攻击我们可以通过以下方法来加强安全性:
(1)useradd shell创建用户时,指定该用户不可登录;
(2)从密码本身入手,设置不含有个人信息且包含字母大小写,数字,特殊字符混合的6位以上密码,并定期更换;
(3)修改默认端口,将Port修改为其他数字;
(4)限制登录的用户或组;
(5)使用sudo,不使用root账号:避免权限过大,密码泄露;
(6)设置允许的IP地址访问,设置白名单只允许指定IP访问。
[1]温静.浅谈Linux下SSH远程访问技术的应用[J].中国电子商务,2013(009):76-76.
[2]刘翠.渗透测试技术的应用分析[J].产业与科技论坛,2014(011):65-66.
2020年福建省大学生创新创业训练计划项目(S202010395030)