一、项目简介
THC-Hydra(常简称 Hydra)是由 van Hauser / THC(The Hacker's Choice)开发维护的在线密码破解工具,是安全研究和渗透测试中最常用的口令爆破工具之一。它支持并行连接、多协议模块,可对远程服务的登录口令进行字典或暴力猜解。
与离线哈希破解工具不同,Hydra 是"在线"工具——它通过真实的网络连接向目标服务提交用户名/密码对,根据服务返回判断是否登录成功。支持 FTP、SSH、Telnet、HTTP、MySQL、MSSQL、PostgreSQL、RDP、SMB、SMTP、POP3、IMAP、VNC、SNMP 等 50 余种协议。
作者明确声明:本工具仅用于合法安全研究和渗透测试,不得用于军事、情报机构或非法用途。
官方仓库:https://github.com/vanhauser-thc/thc-hydra
二、功能特点
- 协议覆盖广:支持 FTP、SSH、Telnet、HTTP-GET/POST/FORM、HTTPS、MySQL、MSSQL、PostgreSQL、Oracle、RDP、SMB、SMTP、POP3、IMAP、VNC、SNMP、LDAP、Redis、MongoDB 等 50+ 协议。
- 并行爆破:通过
-t参数指定并行任务数,充分利用带宽和目标性能。 - 灵活目标:支持单 IP、CIDR 网段、主机列表文件三种目标指定方式。
- IPv4/IPv6:默认 IPv4,加
-6参数切换 IPv6。 - GTK 图形界面:Linux 下提供
xhydra图形客户端,降低上手门槛。 - Docker 镜像:官方提供
vanhauser/hydraDocker 镜像,免编译直接用。
三、环境要求
- 操作系统:Linux(推荐 Ubuntu 22.04/24.04)、macOS、Windows(Cygwin)。
- 编译依赖:gcc、make、libssl-dev、libssh-dev、libidn11-dev、libpcre3-dev 等。
- 网络:能访问目标服务端口;爆破大量并发时需注意带宽。
- 字典:需自行准备用户名字典和密码字典(Hydra 不内置字典)。
四、安装部署步骤
4.1 方式一:Docker 运行(最快)
docker pull vanhauser/hydra
# 查看帮助
docker run --rm vanhauser/hydra hydra -h
# 示例:爆破 SSH
docker run --rm -v /path/to/wordlists:/wordlists vanhauser/hydra \
hydra -L /wordlists/users.txt -P /wordlists/passwords.txt ssh://192.168.1.104.2 方式二:包管理器安装
# Debian/Ubuntu
sudo apt update
sudo apt install -y hydra
# macOS
brew install hydra4.3 方式三:源码编译(最新版)
sudo apt install -y build-essential libssl-dev libssh-dev libidn11-dev \
libpcre3-dev libgtk-3-dev libmysqlclient-dev libpq-dev libsvn-dev \
firebird-dev libmemcached-dev libgpg-error-dev libgcrypt20-dev freetds-dev
git clone https://github.com/vanhauser-thc/thc-hydra.git
cd thc-hydra
./configure
make -j$(nproc)
sudo make install
hydra -h如需 SSH 模块,确保系统安装了 libssh(注意不是 libssh2)。macOS 上不要用 Homebrew 装 libssh,需手动编译。
五、基础使用
5.1 命令格式
# 新式 :// 风格
hydra [选项] PROTOCOL://TARGET:PORT/MODULE-OPTIONS
# 旧式风格(目标从文件读取时必须用)
hydra [选项] [-s PORT] TARGET PROTOCOL [MODULE-OPTIONS]5.2 常用参数
-L FILE:用户名字典文件-P FILE:密码字典文件-l USER:单个用户名-p PASS:单个密码-t TASKS:并行任务数(默认 16)-s PORT:指定端口-S:使用 SSL-f:找到一对成功凭据后立即停止-o FILE:结果写入文件-V:显示每次尝试的详细过程
5.3 常见爆破示例
# 爆破 SSH
hydra -L users.txt -P pass.txt ssh://192.168.1.10 -t 4 -f
# 爆破 FTP
hydra -L users.txt -P pass.txt ftp://192.168.1.10
# 爆破 MySQL
hydra -L users.txt -P pass.txt mysql://192.168.1.10
# 爆破 RDP(3389)
hydra -L users.txt -P pass.txt rdp://192.168.1.10 -t 1
# 爆破 HTTP 表单登录(POST)
hydra -L users.txt -P pass.txt 192.168.1.10 http-post-form \
"/login:username=^USER^&password=^PASS^:F=incorrect"
# 爆破 HTTPS 网站
hydra -L users.txt -P pass.txt -S 192.168.1.10 https-post-form \
"/login:user=^USER^&pass=^PASS^:S=302"
# 网段爆破
hydra -L users.txt -P pass.txt ssh://[192.168.1.0/24] -t 4
# 从文件读取目标列表
hydra -L users.txt -P pass.txt -M targets.txt ssh5.4 查看模块帮助
hydra -U smtp # 查看 SMTP 模块的可选参数
hydra -U http-post-form
5.5 生成默认密码字典
cd thc-hydra/tool
./dpl4hydra.sh # 生成默认密码列表 dpl4hydra.lst六、常见问题 FAQ
Q1:编译时缺少 libssh 导致 SSH 模块不可用
安装 libssh-dev:sudo apt install libssh-dev。注意 Hydra 用的是 libssh 不是 libssh2。macOS 需手动编译 libssh。
Q2:爆破时大量 "Error" 但不出结果
先用 -V 看每次尝试的细节;检查协议模块参数是否正确(尤其 HTTP 表单的失败标识);目标可能有 WAF 或账户锁定策略,降低并发 -t 1 重试。
Q3:并发数设多少合适?
SSH/RDP 等服务建议 -t 4 以下,过高会触发连接限制或账户锁定;HTTP 可适当提高到 16-32;务必先做小范围测试。
Q4:Hydra 和 Medusa、Ncrack 有什么区别?
三者都是在线爆破工具,协议覆盖和性能各有侧重。Hydra 社区最活跃、文档最全;Medusa 模块化设计;Ncrack 侧重网络服务。可根据目标协议选择。
Q5:法律风险
未经授权对他人系统进行口令爆破属于违法行为。仅在自有设备、授权渗透测试或 CTF 比赛中使用。作者明确反对用于军事和非法用途。
七、参考链接
- GitHub 仓库:https://github.com/vanhauser-thc/thc-hydra
- Releases:https://github.com/vanhauser-thc/thc-hydra/releases
- Docker 镜像:https://hub.docker.com/r/vanhauser/hydra
- libssh:https://www.libssh.org
- 许可证:AGPLv3