T1546.015 Microsoft Sentinel · KQL

Detect Component Object Model Hijacking in Microsoft Sentinel

Adversaries may establish persistence by executing malicious content triggered by hijacked references to Component Object Model (COM) objects. COM is a system within Windows to enable interaction between software components through the operating system. References to various COM objects are stored in the Registry. Adversaries can use the COM system to insert malicious code that can be executed in place of legitimate software through hijacking the COM references and relationships as a means for persistence. Hijacking a COM object requires a change in the Windows Registry to replace a reference to a legitimate system component which may cause the execution of the adversary's code instead of the intended COM component.

MITRE ATT&CK

Tactic
Privilege Escalation Persistence
Technique
T1546 Event Triggered Execution
Sub-technique
T1546.015 Component Object Model Hijacking
Canonical reference
https://attack.mitre.org/techniques/T1546/015/

KQL Detection Query

Microsoft Sentinel (KQL)
kusto
let SuspiciousComPaths = dynamic([
    "AppData", "Temp", "ProgramData", "Users\\Public",
    "powershell", "cmd.exe", "wscript", "cscript", "mshta",
    "rundll32", "regsvr32"
  ]);
DeviceRegistryEvents
| where Timestamp > ago(24h)
| where (
    (RegistryKey has "HKCU\\SOFTWARE\\Classes\\CLSID"
     or RegistryKey has "SOFTWARE\\Classes\\CLSID")
    and RegistryValueName in~ ("InprocServer32", "LocalServer32", "InprocServer", "LocalServer",
                               "TreatAs", "ProgID")
  )
| where ActionType in ("RegistryValueSet", "RegistryKeyCreated")
| extend ClsidGuid = extract(@"CLSID\\(\{[0-9A-Fa-f-]+\})", 1, RegistryKey)
| extend IsHkcuOverride = RegistryKey has "HKCU"
| extend IsSuspiciousPayload = RegistryValueData has_any (SuspiciousComPaths)
| extend IsSystemPath = RegistryValueData has_any (
    "C:\\Windows\\system32\\",
    "C:\\Windows\\SysWOW64\\",
    "C:\\Program Files\\",
    "C:\\Program Files (x86)\\"
  )
| where IsSuspiciousPayload or (IsHkcuOverride and not IsSystemPath)
| project Timestamp, DeviceName, AccountName, ActionType, RegistryKey,
         ClsidGuid, RegistryValueName, RegistryValueData,
         IsHkcuOverride, IsSuspiciousPayload,
         InitiatingProcessFileName, InitiatingProcessCommandLine
| sort by Timestamp desc
high severity medium confidence

Detects COM object hijacking by monitoring HKCU\SOFTWARE\Classes\CLSID registry modifications — the primary HKCU-based hijacking mechanism that requires no admin rights. Also monitors HKLM CLSID entries for suspicious payload paths. Flags InprocServer32, LocalServer32, and related values being set to non-system paths or LOLBin/scripting engine paths. HKCU overrides are particularly suspicious as they allow unprivileged users to redirect COM object lookups for any registered CLSID.

Data Sources

Windows Registry: Registry Key ModificationMicrosoft Defender for Endpoint

Required Tables

DeviceRegistryEvents

False Positives & Tuning

  • Software installations that register COM servers in HKLM\SOFTWARE\Classes\CLSID with legitimate DLL or EXE paths
  • ClickOnce and XCOPY application deployments that register COM objects in HKCU for per-user installation
  • Office add-ins and third-party software plugins that register COM objects in the user hive for per-user functionality
  • Developer environments and test builds that register experimental or debug COM servers
Download portable Sigma rule (.yml)

Other platforms for T1546.015


Testing Methodology

Validate this detection against 3 adversary techniques from Atomic Red Team. Each test below lists the behaviour to exercise and the telemetry you should expect to see. Executable commands and cleanup steps are available with Pro.

  1. Test 1COM Hijack via HKCU InprocServer32

    Expected signal: Sysmon Event ID 13: TargetObject=HKCU\SOFTWARE\Classes\CLSID\{BCDE0395-E52F-467C-8E3D-C4579291692E}\InprocServer32, Details=AppData path. IsHkcuOverride=true, IsNotSystemPath=true. Process creation for reg.exe.

  2. Test 2COM Hijack Targeting Explorer Shell Extension CLSID

    Expected signal: Sysmon Event ID 13 for HKCU CLSID registration with Temp directory DLL path. The Temp path is the high-risk indicator.

  3. Test 3Enumerate COM Hijacking Opportunities

    Expected signal: Process creation for powershell.exe with registry enumeration command. Read-only registry access to HKLM and HKCU CLSID trees. Output reveals count of potential hijacking candidates.

Unlock Pro Content

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

Response PlaybookInvestigation GuideHunting QueriesAtomic Red Team TestsTuning Guidance

Related Detections