Component Object Model Hijackingedit

Identifies Component Object Model (COM) hijacking via registry modification. Adversaries may establish persistence by executing malicious content triggered by hijacked references to COM objects.

Rule type: eql

Rule indices:

  • logs-endpoint.events.*

Severity: medium

Risk score: 47

Runs every: 5 minutes

Searches indices from: now-9m (Date Math format, see also Additional look-back time)

Maximum alerts per execution: 100

References:

Tags:

  • Elastic
  • Host
  • Windows
  • Threat Detection
  • Persistence

Version: 6 (version history)

Added (Elastic Stack release): 7.11.0

Last modified (Elastic Stack release): 8.1.0

Rule authors: Elastic

Rule license: Elastic License v2

Rule queryedit

registry where /* uncomment once length is stable
length(bytes_written_string) > 0 and */ (registry.path :
"HK*}\\InprocServer32\\" and registry.data.strings: ("scrobj.dll",
"C:\\*\\scrobj.dll") and not registry.path :
"*\\{06290BD*-48AA-11D2-8432-006008C3FBFC}\\*") or /* in general
COM Registry changes on Users Hive is less noisy and worth alerting */
(registry.path : ("HKEY_USERS\\*Classes\\*\\InprocServer32\\",
"HKEY_USERS\\*Classes\\*\\LocalServer32\\",
"HKEY_USERS\\*Classes\\*\\DelegateExecute\\",
"HKEY_USERS\\*Classes\\*\\TreatAs\\",
"HKEY_USERS\\*Classes\\CLSID\\*\\ScriptletURL\\") and not
(process.executable : "?:\\Program Files*\\Veeam\\Backup and
Replication\\Console\\veeam.backup.shell.exe" and registry.path
: "HKEY_USERS\\S-1-5-21-*_Classes\\CLSID\\*\\LocalServer32\\") and /*
not necessary but good for filtering privileged installations */
user.domain != "NT AUTHORITY")

Threat mappingedit

Framework: MITRE ATT&CKTM

Rule version historyedit

Version 6 (8.1.0 release)
  • Formatting only
Version 5 (8.0.0 release)
  • Updated query, changed from:

    registry where /* uncomment once length is stable
    length(bytes_written_string) > 0 and */ (registry.path :
    "HK*}\\InprocServer32\\" and registry.data.strings: ("scrobj.dll",
    "C:\\*\\scrobj.dll") and not registry.path :
    "*\\{06290BD*-48AA-11D2-8432-006008C3FBFC}\\*") or /* in general
    COM Registry changes on Users Hive is less noisy and worth alerting */
    (registry.path : ("HKEY_USERS\\*Classes\\*\\InprocServer32\\",
    "HKEY_USERS\\*Classes\\*\\LocalServer32\\",
    "HKEY_USERS\\*Classes\\*\\DelegateExecute\\",
    "HKEY_USERS\\*Classes\\*\\TreatAs\\",
    "HKEY_USERS\\*Classes\\CLSID\\*\\ScriptletURL\\") and /* not
    necessary but good for filtering privileged installations */
    user.domain != "NT AUTHORITY")
Version 4 (7.14.0 release)
  • Updated query, changed from:

    registry where /* uncomment once length is stable
    length(bytes_written_string) > 0 and */ (registry.path :
    "HK*}\\InprocServer32\\" and registry.data.strings: ("scrobj.dll",
    "C:\\*\\scrobj.dll") and not registry.path :
    "*\\{06290BD*-48AA-11D2-8432-006008C3FBFC}\\*") or /* in general
    COM Registry changes on Users Hive is less noisy and worth alerting */
    (registry.path : ("HKEY_USERS\\*Classes\\*\\InprocXServer32\\",
    "HKEY_USERS\\*Classes\\*\\LocalServer32\\",
    "HKEY_USERS\\*Classes\\*\\DelegateExecute\\",
    "HKEY_USERS\\*Classes\\*\\TreatAs\\",
    "HKEY_USERS\\*Classes\\CLSID\\*\\ScriptletURL\\") and /* not
    necessary but good for filtering privileged installations */
    user.domain != "NT AUTHORITY")
Version 3 (7.12.0 release)
  • Formatting only
Version 2 (7.11.2 release)
  • Formatting only