Detection rules › Elastic

Suspicious WMI Event Consumer Subscription

Source
github.com/elastic/protections-artifacts

WMI Event Consumers can be used by malware for file-less persistence, and are rare otherwise.

MITRE ATT&CK coverage

Rule body

[rule]
description = "WMI Event Consumers can be used by malware for file-less persistence, and are rare otherwise."
id = "3946dd5a-820d-4e5a-ad01-d2f00a6bb2e2"
license = "Elastic License v2"
name = "Suspicious WMI Event Consumer Subscription"
os_list = ["windows"]
reference = [
    "https://github.com/devonakerr/Presentations/blob/master/There%27s%20something%20about%20WMI%20-%20SANS%20DFIR%20Prague%202015.pdf",
]
version = "1.0.5"

query = '''
api where

process.Ext.api.summary like "IWbemServices::PutInstance*FilterToConsumerBinding*" and

not (
 process.code_signature.trusted == true and
 process.code_signature.subject_name in ("HP Inc.", "HP Inc") and
 process.Ext.api.parameters.consumer_type == "CommandLineEventConsumer"
)
'''

min_endpoint_version = "8.15.0"
optional_actions = []
[[actions]]
action = "kill_process"
field = "process.entity_id"
state = 0

[[threat]]
framework = "MITRE ATT&CK"
[[threat.technique]]
id = "T1546"
name = "Event Triggered Execution"
reference = "https://attack.mitre.org/techniques/T1546/"
[[threat.technique.subtechnique]]
id = "T1546.003"
name = "Windows Management Instrumentation Event Subscription"
reference = "https://attack.mitre.org/techniques/T1546/003/"



[threat.tactic]
id = "TA0003"
name = "Persistence"
reference = "https://attack.mitre.org/tactics/TA0003/"

[internal]
min_endpoint_version = "8.15.0"

Stages and Predicates

Stage 1: api

api where

process.Ext.api.summary like "IWbemServices::PutInstance*FilterToConsumerBinding*" and

not (
 process.code_signature.trusted == true and
 process.code_signature.subject_name in ("HP Inc.", "HP Inc") and
 process.Ext.api.parameters.consumer_type == "CommandLineEventConsumer"
)

Exclusions

The rule actively suppresses these predicates.

Indicators

These rows show field, operator, and value matches.