medusa 和 hydra 都是常見的暴力破解工具,廣泛用於滲透測試與安全評估中。它們的主要用途是針對遠端服務進行帳號密碼爆破(如:SSH、FTP、HTTP、RDP、MySQL 等)
medusa
Medusa 是一款快速、模組化、並行的Brute-Force Tool(暴力破解工具),專門設計用來對各種服務進行帳號密碼的爆破測試。它是開源的,支援多種協議,常被用於滲透測試與密碼強度檢查。
語法格式
Syntax: Medusa [-h host|-H file] [-u username|-U file] [-p password|-P file] [-C file] -M module [OPT]
refer:
https://www.kali.org/tools/medusa/
主要語法
Medusa [-h host|-H file] [-u username|-U file] [-p password|-P file] [-M modue name] [-O logfile]
-M 模組名稱 ,可用 medusa -d 查看有哪些模組可用
-O 日志輸出位置
使用範例:目標主機192.168.1.1,ssh密碼爆破,帳號root,密碼字典檔 pass.txt
medusa -h 192.168.1.1 -u root -P pass.txt -M ssh
效能調整
-t:在一台主機上,同時密碼爆破數量
-T:同時爆破主機數量
-f:如果找到密碼就停止這台主機的掃描, 但其他線程的掃描仍然繼續
日志觀察
-v :Verbose Mode
0.EXIT APPLICATION
1.MESSAGE WITHOUT TAG
2.LOG MESSAGE WITHOUT TAG
3.IMPORTANT MESSAGE
4.ACCOUNT FOUND
5.ACCOUNT CHECK ,The default level
6.GENERAL MESSAGE ,這個選項可以看到嘗試密碼的過程
-w : Error Debug level
0: FATAL
1: ALERT
2: CRITICAL
3: ERROR
4: WARNING
5: NOTICE ,The default level
6: INFO
7: DEBUG
8: DEBUG-AUDIT
9: DEBUG- SERVER
10: DEBUG – MODULE
refer
https://www.hackingarticles.in/a-detailed-guide-on-medusa/
https://jmk-foofus.github.io/medusa/medusa.html
hydra
Hydra是一個功能強大的密碼破解軟體,適用於各種測試場景,能夠支援多種協定和服務,如SSH、FTP、HTTP、RDP、Telnet、SMTP等。主要用於檢測和評估電腦系統的安全性。它廣泛應用於測試網絡、應用程式和服務的安全性,以確保其不易受到未經授權的訪問或攻擊。
語法格式
Syntax: hydra [[[-l LOGIN|-L FILE] [-p PASS|-P FILE]] | [-C FILE]] [-e nsr] [-o FILE] [-t TASKS] [-M FILE [-T TASKS]] [-w TIME] [-W TIME] [-f] [-s PORT] [-x MIN:MAX:CHARSET] [-c TIME] [-ISOuvVd46] [-m MODULE_OPT] [service://server[:PORT][/OPT]]
refer
https://www.kali.org/tools/hydra/
基本參數
-l:指定帳號
-L:帳號檔路徑
-P:密碼檔路徑
-M:指定目標清單
指定不同的協定
ssh://<target>
smb://<target>
rdp://<target>
<web target> http-post-form <payload> 爆破web表單
指定目標主機例子
以帳號root+pwlist.txt密碼檔,對單一目標 SSH 伺服器執行暴力破解攻擊。hydra –l root –P pwlist.txt ssh://<ssh_IP>
以user.txt帳號清單+pwlist.txt密碼檔,對單一目標 SMB 伺服器執行暴力破解攻擊。hydra -L user.txt -P pwlist.txt smb://<smb_IP>
單一帳號admin用pwlist.txt密碼字典檔破解web的<target>登入頁面hydra -l admin -P pwlist.txt -s 80 <target> http-post-form "/admin/login.php:username=^USER^&password=^PASS^&submit=login"
指定目標清單例子:
指定 root帳號 +pwlist.txt密碼檔,對<ssh list>清單內的ssh爆力密碼破解hydra -l root -P pwlist.txt -M <ssh_list> ssh
ps:
<ssh list>主機清單,一台一行,格式:IP 或 IP:PORT
運行模式
-u:使用一組密碼 Try 所有帳號後,在 Try 下一組密碼,避免同一個帳號短時間錯太多次(容易被鎖)。
-K : 不會對失敗的嘗試再次重試(通常是網路不通、目標拒絕連線等造成的失敗)
-s:指定端口
調整效率
-t: 指定每個目標的連線數(default: 16)
-T :指定總共的目標連線數 (default: 64)
指定ssh密碼爆破,但每個目標最多4個連線,但總連線數不超過16個
hydra -l root -P <passwords.txt> -M < ssh list> ssh -t 4 -T 16
輸出調整
-o: 將爆破成功的使用者密碼,儲存到文件
-vV: 顯示詳細的結果
-q: 不要顯示連線錯誤的訊息
常見錯誤訊息
does not support password authentication (method reply 4)
目標服務器不支援密碼驗證。可能原因是目標服務器的配置(如 SSH 的 /etc/ssh/sshd_config)設置了禁用密碼驗證( PasswordAuthentication no)。
socket error : disconnected
可能次數太多被安全設備擋住,或是網路連線問題
socketpair creation failed: Too many open files
系統的file descriptor(檔案描述符)數量達到上限,導致無法創建新的 socketpair。這通常發生在高並行性爆破時,工具開啟了過多連接,系統預設的descriptor上限通常為 1024 或 4096被耗盡