Hydra
又叫九头蛇,是一款由著名的黑客组织THC开发的开源
暴力破解工具,支持大部分协议的在线密码破解,是网络安全·渗透测试
必备的一款工具,目前支持的协议包括
Asterisk, AFP, Cisco AAA, Cisco auth, Cisco enable, CVS, Firebird, FTP, HTTP-FORM-GET, HTTP-FORM-POST, HTTP-GET, HTTP-HEAD, HTTP-POST, HTTP-PROXY, HTTPS-FORM-GET, HTTPS-FORM-POST, HTTPS-GET, HTTPS-HEAD, HTTPS-POST, HTTP-Proxy, ICQ, IMAP, IRC, LDAP, MEMCACHED, MONGODB, MS-SQL, MYSQL, NCP, NNTP, Oracle Listener, Oracle SID, Oracle, PC-Anywhere, PCNFS, POP3, POSTGRES, Radmin, RDP, Rexec, Rlogin, Rsh, RTSP, SAP/R3, SIP, SMB, SMTP, SMTP Enum, SNMP v1+v2+v3, SOCKS5, SSH (v1 and v2), SSHKEY, Subversion, Teamspeak (TS2), Telnet, VMware-Auth, VNC and XMPP。
在kali系统中自带有hydra九头蛇工具
开源地址(下载):https://github.com/vanhauser-thc/thc-hydra
选项
描述
-R
恢复先前终止/崩溃的会话
-I
忽略现有的还原文件(不要等待10秒)
-S
执行SSL连接
-s PORT
如果服务在不同的默认端口上,则在这里定义它
-l LOGIN or -L FILE
使用指定登录名登录,或者使用文件加载多个登录名
-p PASS or -P FILE
使用指定密码登录,或者使用文件加载多个密码
-x MIN:MAX:CHARSET
密码暴力生成, 使用’-x -h‘获取帮助
-y
暴力破解时忽略符号,见上文
-e nsr
可选选项,n:空密码试探,s:使用指定用户和密码试探,或“r”反向登录
-u
循环用户,而不是密码(有效!用-x表示)
-C FILE
使用冒号分割格式,例如“登录名:密码”来代替 -L/-P 参数
-M FILE
要攻击的服务器列表,每行一个条目,':'指定端口
-o FILE
将找到的登录名/密码对写入FILE而不是输出
-b FORMAT
指定-o文件的格式:text(默认),json, jsonv1
-f / -F
当找到login/pass对时退出(-M: -f per host, -f global)
-t TASKS
同时运行的线程数,默认为16
-T TASKS
run TASKS connects in parallel overall (for -M, default: 64)
-w / -W TIME
设置最大超时的时间,单位秒,默认是30s
-c TIME
所有线程上每次登录尝试的等待时间(强制执行-t 1)
-4 / -6
使用IPv4(默认)/ IPv6地址(将always放在[]中,也放在-M中)
-v / -V / -d
详细模式/每次尝试显示登录+通过/调试模式
-O
使用旧的SSL v2和v3
-K
不重做失败的尝试(适用于-M批量扫描)
-q
不打印有关连接错误的消息
-U
服务模块使用详情
-m OPT
选项特定于模块,请参见-U output获取信息
-h
更多命令行选项(帮助)
server
目标:DNS、IP或192.168.0.0/24(这个或-M选项)
service
指定服务名,支持的服务和协议
OPT
一些服务模块支持额外输入(-U表示模块帮助)
在hydra的帮助命令中官方我们提供了一些示例如下
hydra -l user -P passlist.txt ftp://192.168.0.1
hydra -L userlist.txt -p defaultpw imap://192.168.0.1/PLAIN
hydra -C defaults.txt -6 pop3s://[2001:db8::1]:143/TLS:DIGEST-MD5
hydra -l admin -p password ftp://[192.168.0.0/24]/
hydra -L logins.txt -P pws.txt -M targets.txt ssh
这些命令基本用法用起来大体上很类似,我们以第一个命令为例,大体上可以分成三部分,即用户名
,密码
,和协议
在kail中是自带字典的,可以通过/usr/share/wordlists/dirb路径进行查看,当然都是txt文件,也可以自己向里面添加。
包含各种类型的字典,用于密码爆破、漏洞扫描等,他们的常用用途如下
big.txt #大的字典 small.txt #小的字典 catala.txt #项目配置字典 common.txt #公共字典 euskera.txt #数据目录字典 extensions_common.txt #常用文件扩展名字典 indexes.txt #首页字典 mutations_common.txt #备份扩展名 spanish.txt #方法名或库目录 others #扩展目录,默认用户名等 stress #压力测试 vulns #漏洞测试
参数
介绍
-x MIN:MAX:CHARSET
规则:MIN表示生成密码的最短长度;MAX表示生成密码的最长长度;CHARSET表示使用指定的字符生成密码,'a’表示所有的小写字母,'A’表示所有的大写字母,'1’表示所有的数字,对于其他字符,只需要添加在后面即可
-y
使用方式见-x,它表示charset的字符是实际的字符,而不是正则表达式
-x 3:5:a
生成的密码字典长度为3到5位,由所有的小写字母组成
-x 5:8:A1
生成的密码字典长度为5到8位,有所有的大写字母和数字组成
-x 5:5/%,.-
生成的密码字典长度为5位,只由’/ % , . -'这5种字符构成
-x 3:5:aA1 -y
生成的密码字典长度为3到5位,且只由’a A 1’这三种字符组成
-x 3:5:aA1.-+#
生成的密码字典长度为3到8位,由大小写字母+数字+.-+#进行组合。
hydra -L user.txt -P passwd.txt -o ssh.txt -vV -t ip ssh -s 22
#-L 指定用户字典文件
#-P 指定密码字典文件
#-o 把成功的输出到ssh.txt文件
#-vV 显示详细信息
#-s 指定其他端口 如果要修改默认22端口,可以使用 -s 参数
先创建一个密码字典,手动编写密码(测试即可,真实渗透环境自行使用大型字典)
创建一个用户字典
准备一台centos主机,查看ip地址,确保kali系统和centos系统处于同一网段下
进行爆破
hydra -L user.txt -P pwd.txt -vV -o ssh.txt -t 5 192.168.209.138 ssh
破解成功,4个密码有效
也可以在输出的ssh.txt查看用户密码
linux系统爆破成功,那么下面试试windows吧
Tips:windows使用的远程协议是rdp协议,我们直接将上面的命令协议改为rdp即可
hydra -L user.txt -P pwd.txt -vV -o ssh.txt -t 5 192.168.209.129 rdp
爆破成功,尝试使用密码连接即可
免责声明:使用本教程或工具,用户必须遵守所有适用的法律和法规,并且用户应自行承担所有风险和责任。