跳到主要內容

DCOM 技術深度解析:Windows 跨網路元件通訊與橫向移動攻擊面剖析

DCOM 是微軟將 COM 技術延伸至網路層的核心機制,允許跨主機呼叫遠端元件。它在 Windows 企業環境中無所不在,也因此成為攻擊者實施橫向移動的隱蔽管道。

DCOM 的運作核心

DCOM 透過 RPC(Remote Procedure Call) 在 TCP 135 埠完成初始交握,後續通訊隨機指派高位埠(1024–65535)。每個可遠端存取的元件以 CLSID(Class Identifier) 唯一標識,並透過 DCOMCNFG 或登錄機碼 HKLM\SOFTWARE\Classes\CLSID 管理存取權限。驗證層面採用 Windows 整合驗證(Kerberos / NTLM),意味著持有合法憑證的攻擊者可直接觸發遠端 COM 物件,而無需部署任何額外工具。整個呼叫鏈在 Windows 事件日誌中留下的跡象極少,是其隱蔽性的核心來源。

橫向移動攻擊面剖析

攻擊者常濫用特定高風險 CLSID 實現橫向移動。MMC20.Application(Shell.Execute 方法)與 ShellWindows / ShellBrowserWindow 是最廣為人知的三個攻擊向量,均已被記錄於 MITRE ATT&CK T1021.003。攻擊者在取得目標主機的本地管理員憑證後,透過 PowerShell 的 [activator]::CreateInstance()GetTypeFromProgID() 在遠端主機實例化 COM 物件,進而執行任意命令。相較於 PsExec 或 WMI,DCOM 橫向移動的落地文件(artifact)極少,傳統端點偵測規則往往無法有效攔截。

# PowerShell DCOM 橫向移動概念示範(僅供研究)
$target = "192.168.1.50"
$com = [activator]::CreateInstance(
    [type]::GetTypeFromProgID("MMC20.Application", $target)
)
$com.Document.ActiveView.ExecuteShellCommand(
    "cmd.exe", $null, "/c whoami > C:\out.txt", "7"
)

💡 重點整理

  • 初始埠 TCP 135 是 DCOM 流量的必要條件,封鎖可有效阻斷外部觸發。
  • MITRE T1021.003 記錄三大高風險 CLSID:MMC20、ShellWindows、ShellBrowserWindow。
  • 最小權限原則:透過 DCOMCNFG 限制遠端啟動與存取權限,移除非必要帳號授權。
  • 偵測重點:監控 mmc.exe / explorer.exe 產生異常子程序,以及非預期的高位埠對外連線。

DCOM 的強大與危險並存。防禦方應優先強化 DCOM 元件的存取控制,並建立針對異常 COM 呼叫的偵測規則,才能有效壓縮攻擊者的橫向移動空間。

📚 參考文獻

  1. MITRE ATT&CK — T1021.003: Distributed Component Object Model,攻擊技術官方分類與緩解說明。
  2. Microsoft Docs —