T1021.003

Distributed Component Object Model

Adversaries may use Valid Accounts to interact with remote machines by taking advantage of Distributed Component Object Model (DCOM). DCOM extends Windows COM (Component Object Model) beyond local machines using RPC, allowing remote method calls on COM objects. Adversaries with Administrator privileges can remotely obtain code execution through Office applications (Excel, Outlook), MMC20.Application, ShellWindows, and other insecure COM objects. Tools like Empire's Invoke-DCOM, Cobalt Strike, and SILENTTRINITY have built-in DCOM lateral movement capabilities. DCOM communicates over TCP port 135 (RPC endpoint mapper) and dynamically assigned high ports.

Microsoft Sentinel / Defender
kusto
// Detect DCOM lateral movement via process spawning from COM host processes
let DcomLaunchParents = dynamic(["mmc.exe", "excel.exe", "winword.exe", "outlook.exe", "powerpnt.exe", "visio.exe"]);
let SuspiciousChildren = dynamic(["cmd.exe", "powershell.exe", "wscript.exe", "cscript.exe", "mshta.exe", "rundll32.exe", "regsvr32.exe", "certutil.exe"]);
DeviceProcessEvents
| where Timestamp > ago(24h)
// Pattern 1: Suspicious child processes from DCOM/COM hosts
| where InitiatingProcessFileName has_any (DcomLaunchParents)
| where FileName has_any (SuspiciousChildren)
| extend Pattern = "COM_SuspiciousChild"
| project Timestamp, DeviceName, AccountName, FileName, ProcessCommandLine,
         InitiatingProcessFileName, InitiatingProcessCommandLine, Pattern
| union (
    // Pattern 2: MMC20 DCOM lateral movement (shellexecute via MMC)
    DeviceProcessEvents
    | where Timestamp > ago(24h)
    | where InitiatingProcessFileName =~ "mmc.exe"
    | where FileName =~ "cmd.exe" or FileName =~ "powershell.exe"
    | extend Pattern = "MMC20_DCOM"
    | project Timestamp, DeviceName, AccountName, FileName, ProcessCommandLine,
             InitiatingProcessFileName, InitiatingProcessCommandLine, Pattern
)
| union (
    // Pattern 3: dcomcnfg.exe execution (DCOM config tool)
    DeviceProcessEvents
    | where Timestamp > ago(24h)
    | where FileName =~ "dcomcnfg.exe"
    | extend Pattern = "DCOM_ConfigTool"
    | project Timestamp, DeviceName, AccountName, FileName, ProcessCommandLine,
             InitiatingProcessFileName, InitiatingProcessCommandLine, Pattern
)
| sort by Timestamp desc
high severity medium confidence

Data Sources

Process: Process Creation Network Traffic: Network Connection Creation Microsoft Defender for Endpoint

Required Tables

DeviceProcessEvents DeviceNetworkEvents

False Positives

  • Legitimate administrative scripts using DCOM to manage remote systems via WMI (IT automation tools like Ansible, SCCM)
  • Office applications launching helper processes during document processing or macro execution for legitimate business use
  • MMC snap-ins spawning cmd.exe for legitimate administrative tasks by IT staff
  • Software developers testing DCOM-based applications or COM server registration
  • Monitoring tools that use COM automation to collect system information

Unlock Pro Content

Get the full detection package for T1021.003 including response playbook, investigation guide, and atomic red team tests.

Response PlaybookInvestigation GuideHunting QueriesAtomic Red Team TestsTuning Guidance

Related Detections