hydra簡介
hydra(九頭蛇)是著名黑客組織thc的一款開源的暴力破解密碼工具,可以說是在市面上公開的工具中功能最強(qiáng)大的破解工具之一。
kali是默認(rèn)安裝了hydra的,hydra幾乎支持所有協(xié)議的在線破解。hydra在網(wǎng)絡(luò)安全滲透過程中是一款必備的測試工具。
hydra支持的服務(wù)有:POP3,SMB,RDP,SSH,F(xiàn)TP,POP3,Te.NET,MYSQ... ...
hydra支持的服務(wù)
hydra安裝
一般都是預(yù)裝在kali中的,這里就不介紹安裝方法了。
hydra參數(shù)講解
還是通過-h參數(shù)查看幫助文檔:
hydra -h
我只使用過一些常用參數(shù),有些沒用過的也只能將幫助文檔里的英文進(jìn)行翻譯。所以英文詞匯量足夠的,可以直接看幫助文檔,直接跳過這里的參數(shù)講解,看后面的實操演示。
-R:繼續(xù)上一次中止/崩潰的任務(wù)。
-I:(這個是i的大寫)忽略已經(jīng)修復(fù)的文件。
-S:指定爆破密碼時采用SSL連接。
-s:指定端口,適用于攻擊目標(biāo)端口非默認(rèn)的情況。例如:http服務(wù)使用非80端口。
-l:(這個是L的小寫)指定要爆破賬戶名,適合在知道用戶名爆破密碼時使用。
-L:指定賬戶名的字典文件。
-p:(小寫)指定單個密碼,適合在知道密碼爆破用戶名時使用。
-P:(大寫)指定賬戶密碼的字典文件。
-x:這個參數(shù)主要是在沒有合適的密碼字典文件時,讓hydra通過傳入的參數(shù)暴力破解密碼用的,用的比較少。
-y:在暴力破解時禁止使用指定的符號。
-r:在暴力破解時不適用隨機(jī)生成字符串的方式。
-e:可傳項nsr,n:空密碼試探,s:使用指定用戶和密碼相同,r:賬戶密碼反轉(zhuǎn)(比如賬戶root,密碼toor)。
-u:賬戶名循環(huán)使用,需要和-x一起使用才有效果。
-C:當(dāng)用戶名與密碼存儲到一個文件時使用此參數(shù),注意,文件(字典)存儲的格式必須為“用戶名:密碼”的格式。
-M:指定多個攻擊目標(biāo),此參數(shù)為存儲攻擊目標(biāo)的文件的路徑(建議為絕對路徑)。注意:列表文件存儲格式必須為“地址:端口”
-o:將找到用戶密碼對寫入文件中而不是輸出到控制臺。
-b:指定-o參數(shù)輸出文檔的格式。
-f:只要爆破成功一個賬戶就停止該主機(jī)的爆破,需要和-M一起使用。
-F:只要爆破成功一個賬戶就停止爆破,需要和-M一起使用。
-t:指定爆破時的任務(wù)數(shù)量(可以理解為線程數(shù)),默認(rèn)為16
-T:指定爆破時的任務(wù)數(shù)量,默認(rèn)64,需要和-M一起使用。
-w:每次請求等待響應(yīng)的時間。
-W:每個線程兩次請求之間的等待間隔。
-c:每次線程嘗試登錄的等待時間。
-4:使用IPv4的地址。
-6:使用IPv6的地址。
-v:詳情模式。
-V:顯示每次請求的賬戶名和密碼。
-d:debug調(diào)試模式。
-O:使用SSL的v2活著v3。
-K:不做失敗的重復(fù)請求,適用于-M批量掃描。
-q:不打印連接錯誤的信息。
-U:顯示服務(wù)端的詳細(xì)信息。
-m:需要和-U一起適用,用于指定模塊的特定選項
hydra實操演示-windows密碼破解
先檢查一下目標(biāo)主機(jī)的賬戶,并設(shè)置一個密碼,沒有密碼也不是不可以,但是就顯得后面破解的動作沒有意義了。
這里是要利用共享文件夾的smb協(xié)議訪問,所以也檢查一下是否進(jìn)行了共享:
net share
為了看到滲透的效果,這里提前將目標(biāo)的遠(yuǎn)程桌面打開:
打開遠(yuǎn)程連接
檢查一下遠(yuǎn)程連接打開后對應(yīng)端口是否打開:
netstat -nao
除了3389是遠(yuǎn)程桌面用的端口,還有445、139都是smb協(xié)議會用到的端口。
目標(biāo)主機(jī)的ip地址是192.168.218.131,公網(wǎng)中找目標(biāo)主機(jī)的話,可以用掃描工具隨機(jī)找,這里就直接在目標(biāo)主機(jī)上查看就行:
ipconfig
用攻擊機(jī)掃描一下目標(biāo)主機(jī)開放的端口:
目標(biāo)主機(jī)的端口開發(fā)狀態(tài)
看到這幾個端口被開放了,就表示攻擊目標(biāo)已經(jīng)準(zhǔn)備好了。
接下來就是要準(zhǔn)備一些字典文件了,可以從Kali中找現(xiàn)成的來用:
Kali中自帶的密碼字典
但是我準(zhǔn)備的機(jī)器密碼是自己隨意設(shè)置的,應(yīng)該不會出現(xiàn)在Kali中的密碼字典中,這里就手動添加一下。
之后就可以用hydra嘗試破解密碼了,命令如下:
hydra -l chen -P passwords_john.txt smb://192.168.218.130破解結(jié)果
這里準(zhǔn)備的目標(biāo)機(jī)器管理員賬戶是chen,一般品牌機(jī)可以使用一些默認(rèn)的管理員賬戶,例如administrator、admin。
前面利用的是smb協(xié)議,利用rdp協(xié)議也是一樣的,只要將命令中的協(xié)議換一下:
hydra -l chen -P passwords_john.txt rdp://192.168.218.130
執(zhí)行之后沒有獲取到密碼:
執(zhí)行結(jié)果
從返回的結(jié)果中可以看到出現(xiàn)了一些錯誤。主要是freerdp模塊無法和目標(biāo)主機(jī)建立連接導(dǎo)致的,這個無法連接不是賬戶名密碼不對,就是單純的無法連接,連密碼都還沒校驗。
遇到這種情況要耐心分析原因,不要輕易判定字典中沒有正確的密碼,可以嘗試根據(jù)報錯信息找找對應(yīng)的帖子,或者換一個爆破工具。我這里選擇躺平,因為無法在Kali使用xfreerdp命令連接上Windows的遠(yuǎn)程桌面,不清楚是freerdp工具有問題,還是目標(biāo)Windows有什么策略限制了。
hydra實操演示-linux ssh密碼破解
準(zhǔn)備一個Linux的目標(biāo)機(jī)器,檢查一下ssh的端口是否打開:
目標(biāo)主機(jī)的端口開發(fā)狀態(tài)
直接只用這個命令:
hydra -l root -P pass.lst ssh://192.168.218.129
執(zhí)行后得到結(jié)果:
執(zhí)行結(jié)果
現(xiàn)在應(yīng)該比較少了,但是平時最好都加個參數(shù)-e nsr,會嘗試空密碼、賬戶密碼相同、賬戶密碼反轉(zhuǎn),這些都是很低級的失誤,但是開發(fā)有時候就喜歡犯低級錯誤。
hydra實操演示-Linux ftp密碼破解
先查看一下有沒有ftp相關(guān)的端口被打開:
目標(biāo)主機(jī)的端口開發(fā)狀態(tài)
這里我們選擇攻擊2121端口,命令如下:
hydra -L user.txt -P pass.txt ftp://192.168.218.129 -s 2121 -e nsr -vV
需要準(zhǔn)備用戶名字典和密碼字典,按照比較常用的賬戶密碼就行,太多了就比較浪費時間。
執(zhí)行結(jié)果
hydra實操演示-HTTP登錄
找一個不需要驗證碼的登錄接口,使用hydra進(jìn)行爆破,命令如下:
hydra -l admin -P passwords_john.txt -f 192.168.218.129 http-post-form "/dvwa/login.php:username=^USER^&password=^PASS^&Login=Login:Login failed"
稍微解釋一下,參數(shù)-f的作用是找到一個有效賬戶后停止爆破。參數(shù)http-post-form表示請求方式和傳參類型,現(xiàn)在應(yīng)該不會有g(shù)et請求進(jìn)行登錄的,如果真遇到這類奇葩了,可以使用http-get作為參數(shù)。
后面一長串字符串第一個英文冒號前面是請求的地址,兩個冒號之間的是post的body數(shù)據(jù),username和password這兩個參數(shù)名可以通過頁面上提交請求看F12中的network記錄,也可以直接看頁面的源碼中對參數(shù)的定義。至于^USER^和^PASS^是固定寫法,就是從前面命令中傳入的用戶名和密碼。最后第二個冒號之后的內(nèi)容表示有這個字符串就是登錄失敗。
執(zhí)行結(jié)果
這里要提一下,命令中第二個冒號之后跟的默認(rèn)是失敗的依據(jù),但是也可以通過S指定成功的依據(jù),例如
hydra -l admin -P passwords_john.txt -f 192.168.218.129 http-post-form "/dvwa/login.php:username=^USER^&password=^PASS^&Login=Login:S=index.php"執(zhí)行結(jié)果
hydra實操演示-MySQL密碼破解
還是先檢查有沒有將MySQL的端口打開:
目標(biāo)主機(jī)的端口開發(fā)狀態(tài)
直接使用如下命令:
hydra -l root -P pass.txt mysql://192.168.218.129 -e nsr -vV執(zhí)行結(jié)果
hydra圖形化界面
可以通過命令xhydra打開hydra的圖形化控制臺:
hydra的圖形化控制臺
如果對hydra的參數(shù)有一定了解,基本都能將控制臺上的選項和參數(shù)對應(yīng)起來。
這里就不對圖形化控制臺進(jìn)行演示了,效果其實和命令行是完全一致的。
總結(jié)
hydra的功能非常強(qiáng)大,而且相對以前的版本,現(xiàn)在的hydra穩(wěn)定性已經(jīng)有了較明顯的提升。但是要想用hydra做好爆破工作,還是要多熟悉各個參數(shù)的作用,要積累各種爆破場景的經(jīng)驗。
提醒一下,密碼爆破的核心其實是字典,hydra這類工具只是起到檢驗字典內(nèi)容的作用。






