一、介绍
hydra是一款用于合法授权的密码强度测试和账户安全审计的开源工具,可以对多种网络协议进行登录验证测试。常用于渗透测试和安全评估。
二、安装
bash
yum install hydra -y
三、使用方法
hydra [选项] -l 用户名 -P 密码字典 目标 协议
bash
hydra [[[-l LOGIN|-L FILE] [-p PASS|-P FILE]] | [-C FILE]] [-e nsr] [-o FILE] [-t TASKS] [-M FILE [-T TASKS]] [-w TIME] [-W TIME] [-f] [-s PORT] [-x MIN:MAX:CHARSET] [-SOuvVd46] [service://server[:PORT][/OPT]]
支持的协议
asterisk cisco cisco-enable cvs firebird ftp ftps https-{head|get|post} https-{get|post}-form http-proxy http-proxy-urlenum icq imaps irc ldap2s ldap3-{cram\|digest}md5s mssql mysql nntp oracle-listener oracle-sid pcanywhere pcnfs pop3s postgres rdp redis rexec rlogin rsh rtsp s7-300 sip smb smtps smtp-enum snmp socks5 ssh sshkey svn teamspeak telnets vmauthd vnc xmpp
常用参数
| 参数 | 中文说明 |
|---|---|
-R |
恢复之前中断或崩溃的会话。 |
-S |
使用 SSL 加密连接。 |
-s PORT |
指定服务端口(当目标服务使用非默认端口时)。 |
-l LOGIN |
使用单个用户名。 |
-L FILE |
从文件中读取多个用户名。 |
-p PASS |
使用单个密码。 |
-P FILE |
从文件中读取多个密码。 |
-x MIN:MAX:CHARSET |
自动生成密码进行尝试,密码长度范围为 MIN~MAX,字符集由 CHARSET 指定。输入 hydra -x -h 查看详细说明。 |
-e nsr |
尝试特殊密码:n(空密码)、s(用户名作为密码)、r(反转用户名作为密码)。 |
-u |
按用户循环而不是按密码循环(使用 -x 时自动启用)。 |
-C FILE |
从文件读取 用户名:密码 格式的数据,代替 -L/-P。 |
-M FILE |
从文件读取目标服务器列表,每行一个目标,可使用 主机:端口 指定端口。 |
-o FILE |
将成功的用户名/密码组合写入文件,而不是输出到屏幕。 |
-f |
对每个目标主机,找到有效组合后停止。 |
-F |
在所有目标中,只要找到一个有效组合就停止。 |
-t TASKS |
设置每个主机的并发连接数,默认值为 16。 |
-w TIME |
设置响应超时时间(默认 32 秒)。 |
-W TIME |
设置每个线程两次连接之间的等待时间(默认 0 秒)。 |
-4 |
使用 IPv4(默认)。 |
-6 |
使用 IPv6(地址需使用 [] 包围)。 |
-v |
详细模式。 |
-V |
显示每次尝试的用户名和密码。 |
-d |
调试模式。 |
-O |
使用旧版 SSL v2 和 SSL v3。 |
-q |
不显示连接错误信息。 |
-U |
显示指定服务模块的详细用法。 |
server |
目标主机,可以是域名、IP 地址或网段(如 192.168.0.0/24),也可通过 -M 指定多个目标。 |
service |
要测试的服务类型(协议)。 |
OPT |
某些服务模块支持额外参数,可通过 hydra -U 服务名 查看。 |
特殊参数说明
| 参数 | 含义 |
|---|---|
-e n |
尝试空密码 |
-e s |
尝试密码与用户名相同 |
-e r |
尝试反转用户名作为密码 |
-f |
每个主机找到成功组合后停止 |
-F |
全局找到一个成功组合后停止 |
-v |
输出详细信息 |
-V |
输出每次用户名/密码尝试 |
-d |
输出调试信息 |
常用命令
hydra -l user -P passlist.txt ftp://192.168.0.1
hydra -L userlist.txt -p defaultpw imap://192.168.0.1/PLAIN
hydra -C defaults.txt -6 pop3s://2001:db8::1:143/TLS:DIGEST-MD5
hydra -l admin -p password ftp://192.168.0.0/24/
hydra -L logins.txt -P pws.txt -M targets.txt ssh
bash
hydra 192.168.1.101 rdp -l Administrator -P rockyou.txt -t 1 -W 1 -o result.txt -V
**解释:**连接192.168.1.101的远程桌面Administrator账号及rockyou.txt密码字典,使用并发1线程,间隔1秒,结果输出到result.txt中