Hydra暴力破解工具详细使用教程
0x00 简介
暴力破解攻击是一种通过自动化手段尝试猜测密码或密钥的方法,常见于密码破解领域。密码通常以加密形式存储于数据库中。暴力破解可以通过在线方式针对HTTP、HTTPS、SSH、FTP等多种服务进行,也可以采用离线方式,尤其是在获取到加密密码文件后,通过离线匹配以寻找对应密码。
尽管暴力破解方法可能显得原始,并对服务器造成较大负担,但目前许多验证码等防破解措施并不能完全阻止其发挥作用。破解目标不仅限于登录系统,还可以针对FTP、HTTP认证、SSH等服务进行。
0x01 密码爆破攻击概述
1. 蛮力爆破(Brute Force)
野蛮爆破不依赖于常用密码列表,而是尝试所有可能的字符组合。例如,对于长度为4的密码,将测试从aaaa到zzzz的所有组合,即使仅使用小写英文字符,也有456,976种可能性。随着密码长度的增加,组合数急剧上升,使得野蛮爆破在实际操作中并不理想,尤其是在线爆破可能对服务器造成损害。
2. 字典爆破(Dictionary Attack)
字典爆破则利用已知的密码列表来猜测密码。如果有理由相信目标密码使用了合理的字符组合,此方法将非常有效。幸运的是,有大量密码列表可供使用,例如SecLists存储库中就包含了多种类型的攻击所用的单词列表。
0x02 Hydra工具介绍
Hydra是登录暴力破解的便捷工具,因为它涵盖了各种各样的攻击和服务,并且与其他攻击和服务相比相对较快。它可以测试任何一对凭据并验证它们是否成功,但数量巨大且速度非常快。
安装方法:
apt install hydra -y
或从Github存储库下载。
0x03 Hydra基本语法
查看帮助:
hydra -h
基本语法:
hydra [[[-l LOGIN|-L FILE] [-p PASS|-P FILE]] | [-C FILE]] [-e nsr] [-o FILE] [-t TASKS] [-M FILE [-T TASKS]] [-w TIME] [-W TIME] [-f] [-s PORT] [-x MIN:MAX:CHARSET] [-c TIME] [-ISOuvVd46] [-m MODULE_OPT] [service://server[:PORT][/OPT]]
0x04 主要参数详解
-R:恢复之前中止/崩溃的会话-I:忽略现有的恢复文件-S:执行SSL连接-s PORT:如果服务在不同的默认端口上,在此定义-l LOGIN或-L FILE:使用LOGIN名称登录,或从FILE加载多个登录名-p PASS或-P FILE:尝试密码PASS,或从FILE加载多个密码-x MIN:MAX:CHARSET:密码暴力生成,使用-x -h获取帮助-e nsr:尝试"n"空密码,"s"登录作为密码和/或"r"反向登录-u:循环用户,而不是密码-C FILE:冒号分隔的"login:pass"格式,替代-L/-P选项-M FILE:要攻击的服务器列表,每行一个条目,':'指定端口-o FILE:将找到的登录/密码对写入FILE而不是stdout-b FORMAT:指定-o FILE的格式:text(default), json, jsonv1-f / -F:找到登录/密码对时退出-t TASKS:每个目标并行运行的连接数(默认:16)-T TASKS:整体并行运行的连接数(对于-M,默认:64)-w / -W TIME:等待响应时间(32)/线程间连接间隔时间(0)-c TIME:所有线程每次登录尝试的等待时间(强制-t 1)-4 / -6:使用IPv4(默认)/IPv6地址-v / -V / -d:详细模式/显示每次尝试的登录+密码/调试模式-O:使用旧的SSL v2和v3-K:不重做失败的尝试(适用于-M大规模扫描)-q:不打印有关连接错误的消息-U:服务模块使用详情-m OPT:模块特定选项-h:更多命令行选项(完整帮助)
0x05 支持的服务
Hydra支持以下服务协议:
adam6500 asterisk cisco cisco-enable cobaltstrike cvs firebird ftp[s] http[s]-{head|get|post} http[s]-{get|post}-form http-proxy http-proxy-urlenum icq imap[s] irc ldap2[s] ldap3[-{cram|digest}md5][s] memcached mongodb mssql mysql nntp oracle-listener oracle-sid pcanywhere pcnfs pop3[s] postgres radmin2 rdp redis rexec rlogin rpcap rsh rtsp s7-300 sip smb smtp[s] smtp-enum snmp socks5 ssh sshkey svn teamspeak telnet[s] vmauthd vnc xmpp
0x06 使用示例
- 基本FTP暴力破解:
hydra -l user -P passlist.txt ftp://192.168.0.1
- 使用用户列表和默认密码:
hydra -L userlist.txt -p defaultpw imap://192.168.0.1/
- HTTP基本认证暴力破解:
hydra -L users.txt -P passwords.txt http-get://target.com
- HTTP表单暴力破解:
hydra -l admin -P pass.txt target.com http-post-form "/login.php:user=^USER^&pass=^PASS^:Invalid password"
- SSH暴力破解:
hydra -L users.txt -P passwords.txt ssh://192.168.1.1
- 生成密码并暴力破解:
hydra -l user -x 6:8:a1 192.168.1.1 ssh
0x07 高级技巧
-
创建个性化用户名和密码列表:
- 使用
-C选项指定"login:pass"格式的文件 - 使用
-x选项动态生成密码组合
- 使用
-
优化性能:
- 使用
-t参数调整并行任务数 - 使用
-w和-W调整超时和等待时间
- 使用
-
结果输出:
- 使用
-o将结果保存到文件 - 使用
-b指定输出格式(json, jsonv1)
- 使用
-
恢复会话:
- 使用
-R恢复中断的会话
- 使用
0x08 注意事项
-
法律和道德约束:Hydra明确声明不应将其用于军事或秘密服务组织,或用于非法目的。
-
服务器负载:暴力破解会对目标服务器造成较大负担,可能导致服务中断。
-
成功率:字典攻击的成功率高度依赖于所使用的密码列表质量。
-
防御措施:现代系统通常有防暴力破解机制,如账户锁定、验证码等。
-
代理设置:可以通过环境变量设置代理:
export HYDRA_PROXY=socks5://l:p@127.0.0.1:9150 export HYDRA_PROXY_HTTP=http://login:pass@proxy:8080
0x09 总结
Hydra是一款功能强大且灵活的暴力破解工具,支持多种协议和服务。通过合理配置参数和使用高质量的字典文件,可以显著提高破解效率。然而,使用此类工具时应始终遵守法律法规和道德准则。