Detection rules › Elastic

Suspicious MS Office Execution via DCOM

Time window
1m
Sequence by
user.id
Source
github.com/elastic/protections-artifacts

Identifies suspicious modification of the Microsoft Office AccessVBOM security setting followed by the execution of another Office process instance via DCOM. This may indicate an attempt to evade detection via suspicious process tree.

MITRE ATT&CK coverage

TacticTechniques
Initial Access
Persistence
Defense Impairment

Rule body

[rule]
description = """
Identifies suspicious modification of the Microsoft Office AccessVBOM security setting followed by the execution of
another Office process instance via DCOM. This may indicate an attempt to evade detection via suspicious process tree.
"""
id = "6a714747-2671-4523-b233-744f119949b6"
license = "Elastic License v2"
name = "Suspicious MS Office Execution via DCOM"
os_list = ["windows"]
reference = [
    "https://www.elastic.co/blog/playing-defense-against-gamaredon-group",
    "https://stigviewer.com/stig/microsoft_powerpoint_2007/2014-04-03/finding/V-17522",
]
version = "1.0.31"

query = '''
sequence by user.id with maxspan=1m
   [registry where event.type == "change" and
    registry.path :
          ("HKEY_USERS\\S-1-5-21-*\\SOFTWARE\\Microsoft\\Office\\*\\Security\\AccessVBOM",
           "HKEY_USERS\\S-1-12-1-*\\SOFTWARE\\Microsoft\\Office\\*\\Security\\AccessVBOM") and
    registry.data.strings == "1"]
   [process where event.action == "start" and
    (process.parent.name :("WINWORD.EXE", "EXCEL.EXE", "POWERPNT.EXE", "MSACCESS.EXE") and
     process.parent.args : "-Embedding") and
    not (process.executable : ("?:\\Windows\\System32\\WerFault.exe", "?:\\Windows\\SysWOW64\\WerFault.exe") and process.args : "-u" and process.args : "-p") and
    not (process.pe.original_file_name == "ItSukurti.exe" and process.executable : "?:\\SamExpert\\ItSukurti.exe") and
    not (process.executable : "?:\\WINDOWS\\splwow64.exe" and process.args : "8192") and
    not (process.executable : ("?:\\Program Files (x86)\\*.exe", "?:\\Program Files\\*.exe") and process.code_signature.trusted == true) and
    not (process.code_signature.subject_name : ("Essential Objects, Inc.", "REFINITIV US LLC") and process.code_signature.trusted == true)]
'''

min_endpoint_version = "7.15.0"
[[actions]]
action = "kill_process"
field = "process.entity_id"
state = 1

[[optional_actions]]
action = "rollback"
field = "process.entity_id"
state = 1

[[threat]]
framework = "MITRE ATT&CK"
[[threat.technique]]
id = "T1566"
name = "Phishing"
reference = "https://attack.mitre.org/techniques/T1566/"
[[threat.technique.subtechnique]]
id = "T1566.001"
name = "Spearphishing Attachment"
reference = "https://attack.mitre.org/techniques/T1566/001/"



[threat.tactic]
id = "TA0001"
name = "Initial Access"
reference = "https://attack.mitre.org/tactics/TA0001/"
[[threat]]
framework = "MITRE ATT&CK"
[[threat.technique]]
id = "T1112"
name = "Modify Registry"
reference = "https://attack.mitre.org/techniques/T1112/"


[threat.tactic]
id = "TA0005"
name = "Defense Evasion"
reference = "https://attack.mitre.org/tactics/TA0005/"

[internal]
min_endpoint_version = "7.15.0"

Stages and Predicates

Ordered sequence: each step below must occur in order within 1m, correlated by user.id.

Stage 1: registry

[registry where event.type == "change" and
    registry.path :
          ("HKEY_USERS\\S-1-5-21-*\\SOFTWARE\\Microsoft\\Office\\*\\Security\\AccessVBOM",
           "HKEY_USERS\\S-1-12-1-*\\SOFTWARE\\Microsoft\\Office\\*\\Security\\AccessVBOM") and
    registry.data.strings == "1"]

Stage 2: process

[process where event.action == "start" and
    (process.parent.name :("WINWORD.EXE", "EXCEL.EXE", "POWERPNT.EXE", "MSACCESS.EXE") and
     process.parent.args : "-Embedding") and
    not (process.executable : ("?:\\Windows\\System32\\WerFault.exe", "?:\\Windows\\SysWOW64\\WerFault.exe") and process.args : "-u" and process.args : "-p") and
    not (process.pe.original_file_name == "ItSukurti.exe" and process.executable : "?:\\SamExpert\\ItSukurti.exe") and
    not (process.executable : "?:\\WINDOWS\\splwow64.exe" and process.args : "8192") and
    not (process.executable : ("?:\\Program Files (x86)\\*.exe", "?:\\Program Files\\*.exe") and process.code_signature.trusted == true) and
    not (process.code_signature.subject_name : ("Essential Objects, Inc.", "REFINITIV US LLC") and process.code_signature.trusted == true)]

Exclusions

The rule actively suppresses these predicates.

FieldKindExcluded valuesSearch
process.argseq-pexcludes:process.args field:"process.args" value:"-p"
process.argseq-uexcludes:process.args field:"process.args" value:"-u"
process.executableeq?:\Windows\System32\WerFault.exe, ?:\Windows\SysWOW64\WerFault.exeexcludes:process.executable field:"process.executable" value:"?:\Windows\System32\WerFault.exe" field:"process.executable" value:"?:\Windows\SysWOW64\WerFault.exe"
process.argseq8192excludes:process.args field:"process.args" value:"8192"
process.executableeq?:\WINDOWS\splwow64.exeexcludes:process.executable field:"process.executable" value:"?:\WINDOWS\splwow64.exe"
process.code_signature.subject_nameeqEssential Objects, Inc., REFINITIV US LLCexcludes:process.code_signature.subject_name field:"process.code_signature.subject_name" value:"Essential Objects, Inc." field:"process.code_signature.subject_name" value:"REFINITIV US LLC"
process.code_signature.trustedeqtrueexcludes:process.code_signature.trusted field:"process.code_signature.trusted" value:"true"
process.executablewildcard?:\Program Files (x86)\*.exe, ?:\Program Files\*.exeexcludes:process.executable field:"process.executable" value:"?:\Program Files (x86)\*.exe" field:"process.executable" value:"?:\Program Files\*.exe"
process.executableeq?:\SamExpert\ItSukurti.exeexcludes:process.executable field:"process.executable" value:"?:\SamExpert\ItSukurti.exe"
process.pe.original_file_nameeqItSukurti.exeexcludes:process.pe.original_file_name field:"process.pe.original_file_name" value:"ItSukurti.exe"

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
event.actioneq
  • start corpus 391 (elastic 391)
field:"EventType" kind:eq value:"start"
event.typeeq
  • change corpus 94 (elastic 94)
field:"event.type" kind:eq value:"change"
process.parent.argswildcard
  • -Embedding corpus 7 (elastic 7)
field:"process.parent.args" kind:wildcard value:"-Embedding"
process.parent.namewildcard
  • EXCEL.EXE corpus 28 (elastic 27, splunk 1)
  • MSACCESS.EXE corpus 12 (elastic 12)
  • POWERPNT.EXE corpus 23 (elastic 23)
  • WINWORD.EXE corpus 26 (elastic 26)
field:"parent_process_name" kind:wildcard
registry.data.stringseq
  • 1 corpus 20 (elastic 16, splunk 2, kusto 2)
field:"Details" kind:eq value:"1"
registry.pathwildcard
  • HKEY_USERS\S-1-12-1-*\SOFTWARE\Microsoft\Office\*\Security\AccessVBOM
  • HKEY_USERS\S-1-5-21-*\SOFTWARE\Microsoft\Office\*\Security\AccessVBOM
field:"TargetObject" kind:wildcard