摘要

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

揭秘 WinRM 外掛的隱形橫向移動與防禦策略 | 資訊安全新聞

1. 簡介

橫向移動(Lateral movement)仍是進階持續性威脅(APTs)的核心,使攻擊者在初始入侵後得以擴展網路內的控制權。雖然像 Pass-the-HashRDP 漏洞攻擊等傳統方法已廣為人知,但近期研究顯示濫用 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 類別被濫用來寫入惡意檔案:

  1. // WSManProvPut 漏洞利用的簡化 pseudocode
  2. HRESULT WSManProvPut(...)
  3. {
  4. ParseXMLRequest(request);
  5. CimObject* target = GetCimObject("CIM_LogicFile");
  6. target->SetProperty("Content", malicious_payload); // 將 Payload 寫入磁碟
  7. return S_OK;
  8. }

此技術避免建立新的網路連線,規避依賴異常流量模式的檢測工具。

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 外掛的假設重現將涉及:

  1. 外掛註冊 :部署偽裝成 Microsoft.PowerShell 外掛的惡意 DLL。
  2. 憑證竊取 :使用 Mimikatz 從 LSASS 提取 Session 密鑰。
  3. 資料外洩 :透過 WMI 的 Background Intelligent Transfer Service (BITS)加密竊取的資料。

6. 結論

WinRM 外掛代表了一種強大的隱形橫向移動向量,利用了傳統檢測框架的漏洞。防禦需要多層次方法,結合協議強化、行為分析和記憶體鑑識。未來研究應探索基於 WinRM API 呼叫序列訓練的機器學習模型,以提高檢測準確性。

Copyright © 2025 版權所有 翊天科技有限公司