适用场景
Hydra 弱口令暴力破解是企业安全测试与等保自查的常用手段。适用场景包括:对自建服务器或授权目标进行弱口令风险评估、验证账号锁定策略是否生效、检查 SSH/RDP 等远程服务是否暴露在公网并被字典攻击命中。操作前必须取得目标系统书面授权,未授权测试属于违法行为。
前置条件
- Kali Linux 或任意 Linux 发行版,已安装 hydra 与 curl
- 目标服务器对外开放 SSH(22)、RDP(3389)或 Web 登录接口
- 准备用户名列表与密码字典文件,如 users.txt、pass.txt
- 确认目标为授权测试对象,保留测试授权书备查
原理说明
Hydra 的核心原理是协议复用并发尝试:它从字典中逐行取出用户名和密码组合,通过目标协议(SSH、RDP、HTTP 等)发起认证请求,再根据协议回显或返回码判断登录是否成功。爆破效率取决于三个因素:字典质量、并发线程数(-t 参数)以及目标是否启用失败锁定与速率限制。未加固的服务器面对高质量字典,弱口令往往在几分钟内被命中,因此爆破测试结果直接反映口令策略的强度。
操作步骤
1. 安装 Hydra
apt update && apt install -y hydra
hydra -h
2. 生成密码字典
# 生成 8 位纯数字密码
crunch 8 8 0123456789 -o pass.txt
# 基于社工信息组合(姓名+生日)
john --wordlist=/usr/share/wordlists/rockyou.txt --rules --stdout > pass.txt
wc -l pass.txt
3. 爆破 SSH 登录
hydra -L users.txt -P pass.txt ssh://192.168.1.10 -t 4 -f -o result.txt
-t 4 控制并发线程避免触发系统告警,-f 命中即停止,结果写入 result.txt。
4. 爆破 Web 表单登录
hydra -l admin -P pass.txt 192.168.1.10 http-post-form "/login.php:user=^USER^&pass=^PASS^:F=Login failed"
三个字段分别表示表单地址、POST 参数(^USER^/^PASS^ 为占位符)与失败特征字符串 F=。
5. 爆破 RDP 与防御联动
# RDP 爆破(并发建议 1)
hydra -L users.txt -P pass.txt rdp://192.168.1.10 -t 1
# 服务端防御:fail2ban 拦截连续失败
apt install -y fail2ban
cat > /etc/fail2ban/jail.local <<'EOF'
[sshd]
enabled = true
port = ssh
maxretry = 5
bantime = 3600
EOF
systemctl restart fail2ban
配置验证
- 查看 /var/log/auth.log,确认爆破来源 IP 在 maxretry=5 次失败后被 fail2ban 封禁
- 执行
fail2ban-client status sshd查看封禁列表 - 使用弱口令测试账号,确认账号锁定策略(如
pam_tally2)按预期生效 - 验证 result.txt 中的命中项已在生产环境修改为强口令
常见问题
FAQ 1:Hydra 爆破会不会被目标检测到?
会。高并发连续登录会留下大量认证失败日志,fail2ban、WAF 与 IDS 均可识别。建议在授权环境中使用,并优先采用 -t 1 低并发模拟真实攻击行为,同时保留测试日志用于复盘。
FAQ 2:密码策略已经很复杂,为什么还能爆破成功?
常见原因是账号未启用失败锁定、字典包含历史泄露密码(rockyou 等),或同一密码被多个账号复用。防御应三管齐下:强密码策略 + 锁定策略 + 密钥认证(SSH 禁用密码登录)。
总结
Hydra 弱口令暴力破解是检验服务器口令安全水平的直接手段。管理员应定期在授权范围内开展爆破测试,并配套 fail2ban、账号锁定与密钥认证等防御措施,形成「测试—发现—整改—复测」的闭环,才能有效降低弱口令被利用的风险。