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
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 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
Required Tables
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
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.
- 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.
- 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.
- 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.
References (5)
- https://attack.mitre.org/techniques/T1546/015/
- https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1546.015/T1546.015.md
- https://www.cyberbit.com/blog/endpoint-security/com-hijacking-windows-overlooked-security-vulnerability/
- https://bohops.com/2018/08/18/abusing-the-com-registry-structure-part-2-loading-techniques-for-evasion-and-persistence/
- https://threatexpress.com/blogs/2021/02/living-off-the-com-land/
Unlock Pro Content
Get the full detection package for T1546.015 including response playbook, investigation guide, and atomic red team tests.