Detection rules › Elastic
UAC Bypass via ICMLuaUtil Elevated COM Interface
Identifies User Account Control (UAC) bypass attempts via the ICMLuaUtil elevated COM interface. Attackers may attempt to bypass UAC to stealthily execute code with elevated permissions.
MITRE ATT&CK coverage
| Tactic | Techniques |
|---|---|
| Privilege Escalation |
Rule body
[rule]
description = """
Identifies User Account Control (UAC) bypass attempts via the ICMLuaUtil elevated COM interface. Attackers may attempt
to bypass UAC to stealthily execute code with elevated permissions.
"""
id = "13fab475-06e4-4ac9-87fc-2105c7441244"
license = "Elastic License v2"
name = "UAC Bypass via ICMLuaUtil Elevated COM Interface"
os_list = ["windows"]
reference = [
"https://github.com/hfiref0x/UACME",
"https://www.elastic.co/security-labs/dissecting-remcos-rat-part-four",
]
version = "1.0.32"
query = '''
process where event.action == "start" and
process.parent.name : "dllhost.exe" and
process.Ext.token.integrity_level_name == "high" and
process.parent.command_line : ("*3E5FC7F9-9A51-4367-9063-A120244FBEC7*", "*D2E7041B-2927-42FB-8E9F-7CE93B6DC937*") and
not process.executable :
("?:\\Windows\\System32\\WerFault.exe",
"?:\\Windows\\SysWOW64\\WerFault.exe",
"?:\\Windows\\System32\\wermgr.exe",
"?:\\Windows\\SysWOW64\\wermgr.exe",
"?:\\Windows\\System32\\dccw.exe") and
/* Issue #364 */
not (process.code_signature.subject_name == "WireGuard LLC" and process.code_signature.trusted == true)
'''
min_endpoint_version = "7.15.0"
[[actions]]
action = "kill_process"
field = "process.entity_id"
state = 0
[[optional_actions]]
action = "rollback"
field = "process.entity_id"
state = 0
[[threat]]
framework = "MITRE ATT&CK"
[[threat.technique]]
id = "T1548"
name = "Abuse Elevation Control Mechanism"
reference = "https://attack.mitre.org/techniques/T1548/"
[[threat.technique.subtechnique]]
id = "T1548.002"
name = "Bypass User Account Control"
reference = "https://attack.mitre.org/techniques/T1548/002/"
[threat.tactic]
id = "TA0004"
name = "Privilege Escalation"
reference = "https://attack.mitre.org/tactics/TA0004/"
[internal]
min_endpoint_version = "7.15.0"
Stages and Predicates
Stage 1: process
process where event.action == "start" and
process.parent.name : "dllhost.exe" and
process.Ext.token.integrity_level_name == "high" and
process.parent.command_line : ("*3E5FC7F9-9A51-4367-9063-A120244FBEC7*", "*D2E7041B-2927-42FB-8E9F-7CE93B6DC937*") and
not process.executable :
("?:\\Windows\\System32\\WerFault.exe",
"?:\\Windows\\SysWOW64\\WerFault.exe",
"?:\\Windows\\System32\\wermgr.exe",
"?:\\Windows\\SysWOW64\\wermgr.exe",
"?:\\Windows\\System32\\dccw.exe") and
not (process.code_signature.subject_name == "WireGuard LLC" and process.code_signature.trusted == true)
Exclusions
The rule actively suppresses these predicates.
| Field | Kind | Excluded values | Search |
|---|---|---|---|
process.code_signature.subject_name | eq | WireGuard LLC | excludes:process.code_signature.subject_name field:"process.code_signature.subject_name" value:"WireGuard LLC" |
process.code_signature.trusted | eq | true | excludes:process.code_signature.trusted field:"process.code_signature.trusted" value:"true" |
process.executable | eq | ?:\Windows\System32\WerFault.exe, ?:\Windows\SysWOW64\WerFault.exe, ?:\Windows\System32\wermgr.exe, ?:\Windows\SysWOW64\wermgr.exe, ?:\Windows\System32\dccw.exe | excludes:process.executable |
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
event.action | eq |
| field:"EventType" kind:eq value:"start" |
process.Ext.token.integrity_level_name | eq |
| field:"process.Ext.token.integrity_level_name" kind:eq value:"high" |
process.parent.command_line | wildcard |
| field:"ParentCommandLine" kind:wildcard |
process.parent.name | wildcard |
| field:"parent_process_name" kind:wildcard value:"dllhost.exe" |