
摘要
本文探討利用 Windows 遠端管理(WinRM)外掛的進階橫向移動技術,聚焦於其隱形能力與檢測規避機制。透過逆向工程 WinRM 外掛架構並分析真實世界的攻擊向量,我們識別了企業環境中的關鍵漏洞。本研究結合外掛註冊過程的程式碼層級分析,並提出基於端點行為分析的緩解策略。

1. 簡介
橫向移動(Lateral movement)仍是進階持續性威脅(APTs)的核心,使攻擊者在初始入侵後得以擴展網路內的控制權。雖然像 Pass-the-Hash 和 RDP 漏洞攻擊等傳統方法已廣為人知,但近期研究顯示濫用 WinRM 外掛作為一種更隱形的方式。本文探討基於 WinRM 外掛的橫向移動技術基礎,聚焦於
CIM_LogicFile
類別濫用與 ShadowMove 等工具中觀察到的 socket 複製策略。
2. WinRM 外掛架構與漏洞攻擊
2.1 WinRM 外掛註冊機制
WinRM 外掛透過整合客制化 DLL(動態連結庫)並經由 XML 設定註冊,來擴展遠端管理功能。如近期攻擊所示,惡意外掛使用以下方式部署:
winrm create http://schemas.microsoft.com/wbem/wsman/1/config/plugin?name=MaliciousPlugin -file:malicious_config.xml
設定 XML 定義了關鍵參數,如:
-
ResourceURI
:指定外掛互動的端點(例如,
http://schemas.microsoft.com/wbem/wsman/1/wmi
用於 WMI 整合) -
Capability Types
:決定允許的操作(例如,
Shell
、Invoke
、Put
) -
DLL Path
:指向
System32
中的惡意 Payload。
2.2 外掛劫持的程式碼層級分析
WsmWmiPl.dll
是用於 WMI 操作的內建 WinRM 外掛,匯出未公開記錄的函數,如
WSManProvPut
和
WSManProvInvoke
。Threat actor 利用這些函數透過操作 WMI 類別實例執行任意程式碼。例如,
CIM_LogicFile
類別被濫用來寫入惡意檔案:
- // WSManProvPut 漏洞利用的簡化 pseudocode
- HRESULT WSManProvPut(...)
- {
- ParseXMLRequest(request);
- CimObject* target = GetCimObject("CIM_LogicFile");
- target->SetProperty("Content", malicious_payload); // 將 Payload 寫入磁碟
- return S_OK;
- }
此技術避免建立新的網路連線,規避依賴異常流量模式的檢測工具。
2.3 ShadowMove:隱形案例研究
ShadowMove 框架展示了進階橫向移動,透過劫持現有 TCP 連線(例如 FTP、SQL Server)。其主要功能包括:
- Socket 複製 :惡意程序從合法應用程式繼承 Handle,繞過防火牆規則。
- 零新認證(Zero New Authentication) :使用已認證 Session 的快取認證(Cached Credentials)。
- 避免程序注入 :完全透過 WinRM 外掛 API 運作。
3. 檢測挑戰與規避策略
3.1 傳統檢測的限制
-
基於簽章的工具
:無法識別偽裝成合法組件的惡意外掛 DLL(例如,重新命名的
WsmWmiPl.dll
變體)。 - 網路監控 :ShadowMove 重複使用已建立的連線,使基於網路的異常檢測失效。
- 端點記錄 :預設 Windows 事件日誌(例如,事件 ID 4688 用於程序建立)缺乏對 WinRM 外掛活動的可視性。
3.2 行為性危害指標
為解決這些差距,防禦者應優先考慮:
-
異常 WMI 活動
:監控透過 WinRM 的
Win32_Process
建立與意外的CIM_LogicFile
修改。 -
登錄異常
:檢測
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WSMAN
下的未授權外掛註冊。 -
DLL 載入異常
:追蹤
wsmprovhost.exe
載入的非標準 DLL。
4. 緩解策略
4.1 強化 WinRM 設定
-
停用未使用的外掛
:透過 PowerShell 移除非必要外掛,如
microsoft.powershell.workflow
:
Remove-Item -Path WSMan:\localhost\Plugin\LegacyPlugin -Recurse
- 強制外掛簽章 :限制外掛註冊為微軟簽署的 DLL。
4.2 網路分割與零信任
- 微分割 :使用 VLAN 隔離關鍵資產,限制橫向移動路徑。
- 即時存取 :為管理任務實施臨時權限提升。
4.3 進階檢測技術
-
WinRM Session 的 UEBA
:建立正常 WinRM 指令模式的基準(例如,
Invoke-Command
的頻率)並標記偏差。 -
記憶體鑑識
:使用 Volatility 等工具在
wsmprovhost.exe
程序記憶體中搜尋惡意 DLL。
5. 案例研究:SolarWinds 風格的橫向移動
在 2020 年的 SolarWinds 漏洞事件中,Threat actor 濫用可信應用程式,將惡意流量與合法的 WinRM 通訊混雜。使用 WinRM 外掛的假設重現將涉及:
-
外掛註冊
:部署偽裝成
Microsoft.PowerShell
外掛的惡意 DLL。 -
憑證竊取
:使用
Mimikatz
從 LSASS 提取 Session 密鑰。 -
資料外洩
:透過 WMI 的
Background Intelligent Transfer Service
(BITS)加密竊取的資料。
6. 結論
WinRM 外掛代表了一種強大的隱形橫向移動向量,利用了傳統檢測框架的漏洞。防禦需要多層次方法,結合協議強化、行為分析和記憶體鑑識。未來研究應探索基於 WinRM API 呼叫序列訓練的機器學習模型,以提高檢測準確性。
參考資料
- Stealthy Lateral Movement Techniques with WinRM ( Practical Security Analytics LLC 20205 )
- ShadowMove: A Stealthy Lateral Movement Strategy (USENIX Security 2020)
- Exploring WinRM Plugins for Lateral Movement (FalconForce, 2025)
- Lateral Movement in Cyber Attacks: Key Protocols and Detection Methods (Medium, 2023)
- Detecting Lateral Movement: A Systematic Survey (Heliyon, 2024)
- MITRE ATT&CK Framework: Lateral Movement (TA0008)