Windows滲透測試中wmi的利用


0x01 關於WMI

WMI可以描述為一組管理Windows系統的方法和功能。我們可以把它當作API來與Windows系統進行相互交流。WMI在滲透測試中的價值在於它不需要下載和安裝, 因為WMI是Windows系統自帶功能。而且整個運行過程都在計算機內存中發生,不會留下任何痕跡。這一點是其它滲透測試工具所不能相比的。

 

 

 

0x02 WMI信息收集

1. 檢索系統已安裝的軟件

wmic product list brief |more

 

2.  搜索系統運行服務

wmic service list brief |more

 

 

2.  搜索運行中的程序

wmic process list brief |more

 

4. 搜索啟動程序

wmic startup list brief |more

 

5. 搜索共享驅動盤

wmic netuse list brief |more

 

6.  搜索時區

wmic timezone list brief |more

 

 

7. 搜索用戶帳戶

wmic useraccount list brief |more

 

 

 

8. 搜索計算機域控制器

wmic ntdomain list brief

 

9.  搜索登錄用戶

wmic logon list brief |more

 

 

 

 

9.  搜索已安裝的安全更新

wmic qfe list brief |more

 

0x03 WMI執行任務

 

WMIC不僅僅只是用於檢索系統信息。在滲透測試中, 使用適當的命令,它也可以執行各種有用的任務。

 

 

1. 卸載和重新安裝程序

在滲透測試中, 我們經常遇到反病毒程序阻止payload運行。 這時候我們可以通過WMIC命令來卸載反病毒程序。

 

 

Wmic product where "name like '%forit%' " get name

 

 第二步, 通過WMIC命令來停止運行反病毒服務

Wmic process where name=“XXX.exe” call terminate

 

 

 

 

0x04  PowerShell

 

 

 

自從PowerShell的出現,WMI功能已經被完全整合到了PowerShell里面。在PowerShell中, WMI擁有多個類型的,每個都代表一個內部組件Win32_proces代表當前系統所運行程序。 Win32_Service代表當前系統所運行服務等等。每個都有它自己的屬性,我們可以使用WQL語言來進行查詢。它的語法與SQL語言非常接近。那么要在Windows環境中列出所有 我們可以使用PowerShell Get-WmiObject cmdlet來實現。

 

 

 

 

 

類型被分組在namespaces or aliases中。以上我們得到的所有資源列表都屬於CIMV2 namespaces,包含大多數系統命令。還有其它可由第三方產品提供或注冊的其他產品。我們可以用以下命令查找:

 

 

 

 

 

 

0x05代碼執行

使用WQLWMI相互交流只能提供只讀訪問,除此之外, 我們可以使用Windows上的WMIC實用程序, 向我們提供一個CMD.EXE端口。

 

 

正如前面提到的,WMI的真正優勢在於能夠遠程控制這些系統。因此,為了在另一個系統上產生新的CMD.EXE端口,我們可以發布以下命令:

 

 

 

需要注意的是: 當遠程執行代碼時,請務必使用不受UAC限制的帳戶。 比如說administrator帳戶和具有本地管理權限的域帳戶等等。

 

 

 

 

使用WMIC進行遠程命令執行的主要挑戰是將輸出返回。解決這個問題的一個便捷快速的方法是將文件重定向。也就是說, 我們可以將命令輸出存入共享網絡驅動盤。然后再復制到本地驅動盤。

  • 第一步, 設置共享網絡驅動盤

 

 

 

 

  • ·第二步, 再復制到本地驅動盤

 

  • 第三步, 查看結果

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM