Hydra 这东西,力破第一次用的解下人多半会愣一下——命令行敲完 hydra -l admin -P pass.txt 192.168.1.1 ssh,屏幕就开始疯狂刷尝试记录,力破每秒几十条,解下密码对了就停。力破快得有点不真实。解下它不像某些扫描器那样花哨,力破界面朴素得像上世纪的解下工具,但就是力破这种直接,让它在渗透测试圈里活了二十多年。解下
我最早接触 Hydra 是力破在一个内网靶场里。目标是解下一台开了 SSH 的 Linux 机器,密码是力破弱口令。当时手动试了七八个常见组合没进去,解下换成 Hydra 挂上 rockyou.txt 字典,力破不到十秒就出了结果。那台机器密码是 password123,字典里排前几千位。这事让我意识到一个很朴素的道理:大多数被攻破的系统,问题不在加密算法,而在人懒得改默认密码。
Hydra 支持的服务类型多到有点离谱。SSH、FTP、HTTP 表单、MySQL、RDP、SMB、Telnet,甚至 Redis 和 MongoDB 这种通常被认为"不该暴露在公网"的数据库。它的模块化设计让每种协议都有独立的处理逻辑,但调用方式几乎一致。-l 指定单个用户名,-L 读用户名字典,-p 和 -P 对应密码。想同时爆破用户名和密码就两个大写一起上,组合数直接爆炸。
Kali 和 Parrot 这类渗透测试发行版自带 Hydra,开箱即用。其他系统上装也不麻烦。Debian/Ubuntu 系直接 apt install hydra,macOS 用 Homebrew 也能搞到,Windows 用户要么走 WSL,要么找编译好的二进制。源码在 GitHub 上挂着,./configure && make && make install 三连基本能搞定,除非缺了 libssh 或 libssl 的开发头文件。
有个细节值得提:Hydra 官方早就停止维护了,最后一个稳定版是 9.5,2019 年的事。但社区还在用,因为替代品要么太新不稳定,要么功能没它全。有人 fork 了继续修 bug,不过大多数场景下 9.5 够用。真遇到问题,翻翻 GitHub issue 通常能找到答案。
Hydra 默认并发是 16 个任务,调高 -t 参数能压榨更多性能。我在本地虚拟机测试时试过 -t 64,SSH 爆破速度从每秒 30 次跳到接近 200 次。但代价是目标机器可能触发防护机制——fail2ban 一类的工具会直接封 IP,或者 SSH 服务自己限流。有次我忘了调低并发,对着一个线上测试环境猛跑,结果五分钟后整个网段被防火墙拉黑,还得找运维解封。尴尬。
HTTP 表单爆破更微妙。Hydra 的 http-post-form 模块需要你手动抓包分析登录请求的字段名和失败特征。写错一个参数,它可能把所有响应都当成成功,或者全部判失败。我见过有人对着一个带 CSRF token 的登录页硬爆,跑了一晚上没结果——token 每次请求都变,Hydra 又不会自动提取刷新,纯粹白费功夫。
说到实际案例,2019 年有个新闻:某安全研究员用 Hydra 对一家小公司的 VPN 网关做授权测试,字典里包含公司名加年份的组合,两小时拿到管理员权限。事后报告里写,那台设备用的是出厂默认密码,从没改过。这种故事在圈内不算新鲜,但每次听到还是觉得离谱。
从防守方角度看 Hydra 的行为特征其实很明显。短时间内大量失败登录、同一 IP 对多个账户尝试、请求间隔过于规律——这些都是自动化工具的指纹。部署 fail2ban 或者自定义的速率限制规则,能把大部分 Hydra 爆破挡在门外。更彻底的做法是禁用密码登录,改用密钥认证。SSH 密钥对暴力破解的难度,和猜中一个 2048 位 RSA 私钥差不多。
不过话说回来,Hydra 本身只是个工具。它不判断目标是否授权,不关心法律边界。下载下来对着自己搭的靶机练手没问题,对着别人的服务器跑就是另一回事了。国内《网络安全法》和《刑法》第 285 条对这类行为有明确规定,未授权渗透测试的后果不是闹着玩的。
工具没有善恶,用工具的人才有。Hydra 的下载链接到处都能找到,GitHub、各大安全论坛、甚至一些 CTF 资源站。但拿到之后干什么,才是真正需要想清楚的事。