Hydra 弱口令暴力破解实战:SSH 爆破与防御配置指南

适用场景

Hydra 弱口令暴力破解是企业安全测试与等保自查的常用手段。适用场景包括:对自建服务器或授权目标进行弱口令风险评估、验证账号锁定策略是否生效、检查 SSH/RDP 等远程服务是否暴露在公网并被字典攻击命中。操作前必须取得目标系统书面授权,未授权测试属于违法行为。

前置条件

  • Kali Linux 或任意 Linux 发行版,已安装 hydracurl
  • 目标服务器对外开放 SSH(22)、RDP(3389)或 Web 登录接口
  • 准备用户名列表与密码字典文件,如 users.txtpass.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、账号锁定与密钥认证等防御措施,形成「测试—发现—整改—复测」的闭环,才能有效降低弱口令被利用的风险。