Jump to content
  • Entries

    16114
  • Comments

    7952
  • Views

    86376010

Contributors to this blog

  • HireHackking 16114

About this blog

Hacking techniques include penetration testing, network security, reverse cracking, malware analysis, vulnerability exploitation, encryption cracking, social engineering, etc., used to identify and fix security flaws in systems.

0x00 前言WMI(Windows Management Instrumentation)是一種管理功能,提供了一個統一的環境來訪問Windows系統組件,支持本地和遠程訪問。在之前的文章《WMI Attacks》 、《WMI Backdoor》 、《WMI Defense》 和《Study Notes of WMI Persistence using wmic.exe》 介紹過相關內容,本文將要在信息收集和橫向移動的角度,分析wmic的常用方法,結合利用思路,給出防禦建議。

0x01 簡介本文將要介紹以下內容:

wbemtest用法

通過wmic查詢主機信息

通過wmic修改註冊表

通過wmic執行程序

本地和遠程訪問WMI服務

0x02 wbemtest用法參考資料:

https://docs.microsoft.com/en-us/mem/configmgr/develop/core/understand/introduction-to-wbemtest

Windows系統默認安裝,可以用於連接WMI命名空間,訪問WMI服務

借助wbemtest,我們可以獲得WMI完整的功能細節和使用方法

界面如下圖

173584b19168096ba15863a0e9c14b9.png

點擊Connect.輸入WMI命名空間root\cimv2,連接到root\cimv2後,可進入主頁面,如下圖

常用功能示例如下:

(1)Enum Classes…

枚舉類,可以用來枚舉所有的對象,查詢每個類的定義

這里以查詢Win32_Process對象為例:

依次選中Enum Classes. - Recursive - OK,選中Win32_Process,雙擊進入對象編輯器,如下圖

Properities欄可以查看屬性,例如這裡有Handle,可以通過後文的Query.進行查詢

Methods欄可以查看方法,例如這裡有Create,可以通過後文的Execute Method.進行調用

(2)Query…

查詢屬性,需要輸入WMI Query Language (WQL)

參考資料:

https://docs.microsoft.com/en-us/windows/win32/wmisdk/wql-sql-for-wmi

語法示例:

SELECTHandleFROMWin32_Process查詢結果如下圖

這條查詢語句換成wmic的命令如下:

wmic/namespace:'\\root\cimv2'PATHWin32_ProcessgetHandle(3)Execute Method…

調用方法,這里以調用Win32_Process對象的Create方法為例

設置Object Path為Win32_Process,點擊OK

在彈出的界面設置設置Method為Create

點擊Edit in Parameters.在彈出的界面中依次選擇CommandLine - Edit Property

設置Valve為calc,如下圖

點擊Save Object - Execute!彈出計算器

以上操作換成wmic的完整命令如下:

wmic/namespace:'\\root\cimv2'PATHWin32_Processcallcreate'calc'簡寫命令如下:

wmicprocesscallcreate'calc'0x03 本地和遠程訪問WMI服務1.查詢主機名稱本地:

wmic/namespace:'\\root\cimv2'PATHWin32_ComputerSystemgetName遠程:

wmic/node:192.168.1.1/user:'administrator'/password:'123456'/namespace:'\\root\cimv2'PATHWin32_ComputerSystemgetName2.註冊表操作具體細節可參考《Study Notes of WMI Persistence using wmic.exe》

這裡列出幾個常用命令:

(1)獲得當前用戶的遠程桌面連接歷史記錄

枚舉註冊表鍵值HKCU:\Software\Microsoft\Terminal Server Client\Servers,命令如下:

wmic/namespace:'\\root\cimv2'pathstdregprovcallEnumKey^h80000001,'Software\Microsoft\TerminalServerClient\Servers'(2)遠程查詢和修改Restricted Admin Mode

關於Restricted Admin Mode的內容可參考《渗透技巧——Pass the Hash with Remote Desktop(Restricted Admin mode)》

遠程查詢和修改Restricted Admin Mode的C Sharp實現可參考:

https://github.com/GhostPack/RestrictedAdmin

https://github.com/airzero24/WMIReg

遠程查詢Restricted Admin Mode的wmic命令如下:

wmic/node:192.168.1.1/user:'administrator'/password:'123456'/namespace:'\\root\cimv2'pathstdregprovcallGetDWORDValue^H80000002,'System\CurrentControlSet\Control\Lsa','DisableRestrictedAdmin'遠程開啟Restricted Admin Mode的wmic命令如下:

wmic/node:192.168.1.1/user:'administrator'/password:'123456'/namespace:'\\root\cimv2'pathstdregprovcallSetDWORDValue^H80000002,'System\CurrentControlSet\Control\Lsa','DisableRestrictedAdmin','0'遠程關閉Restricted Admin Mode的wmic命令如下:

wmic/node:192.168.1.1/user:'administrator'/password:'123456'/namespace:'\\root\cimv2'pathstdregprovcallSetDWORDValue^H80000002,'System\CurrentControlSet\Control\Lsa','DisableRestrictedAdmin','1'3.執行程序本地:

wmicprocesscallcreate'calc'遠程:

wmic/node:192.168.1.1/user:'administrator'/password:'123456'processcallcreate'calc'4.進程操作查詢本地所有進程:

wmic/namespace:'\\root\cimv2'PATHWin32_Processgetname,processid,commandline/FORMAT:list查詢遠程主機所有進程:

wmic/node:192.168.1.1/user:'administrator'/password:'123456'/namespace:'\\root\cimv2'PATHWin32_Processgetname,processid,commandline/FORMAT:list其他用法還可參考:https://docs.microsoft.com/en-us/archive/blogs/jhoward/wmic-samples

0x04 防禦檢測需要注意的是,默認配置下WMI的日誌記錄很少,無法記錄WMI的命令細節

WMI-Activity的Trace日誌能夠記錄簡單的日誌,但也無法記錄WMI的命令細節,開啟方法如下:

打開Event Viewer,選擇View - Show Analytic and Debug Logs

依次選擇Applications and Services Logs - Microsoft - Windows - WMI-Activity - Trace,點擊Enable Log

使用wmic命令時,默認啟動進程c:\windows\system32\wbem\wmic.exe,這裡可以選擇Sysmon記錄進程創建的細節,查看CommandLine獲得WMI的命令細節

詳細日誌細節可參考:https://jpcertcc.github.io/ToolAnalysisResultSheet/details/wmic.htm

也可以選擇開源的數字取證工具Velociraptor,能夠記錄進程創建的細節,包括CommandLine

0x05 小結本文介紹了wmic的相關基礎知識,結合利用思路,給出防禦建議。