Detection rules › Elastic

Unusual Privilege Escalation to System

Time window
5m
Sequence by
process.entity_id, process.parent.entity_id
Source
github.com/elastic/protections-artifacts

Identifies the execution of a process as the SYSTEM account from a parent process not running as SYSTEM. This behavior is consistent with a successful exploit to escalate privileges and create a process with SYSTEM privileges.

MITRE ATT&CK coverage

Rule body

[rule]
description = """
Identifies the execution of a process as the SYSTEM account from a parent process not running as SYSTEM. This behavior
is consistent with a successful exploit to escalate privileges and create a process with SYSTEM privileges.
"""
id = "fc371c1e-8f08-44e7-aec7-8f462afe5262"
license = "Elastic License v2"
name = "Unusual Privilege Escalation to System"
os_list = ["windows"]
reference = [
    "https://bsodtutorials.wordpress.com/2014/07/31/windows-integrity-levels-process-explorer-and-windbg/",
]
version = "1.0.24"

query = '''
sequence with maxspan=5m
 [process where event.action == "start" and user.id like ("S-1-5-21*", "S-1-12-*")] by process.entity_id
 [process where event.action == "start" and
  process.Ext.token.integrity_level_name == "system" and user.id == "S-1-5-18" and
  process.Ext.effective_parent.name != null and
  process.parent.Ext.real.pid == null and
  not process.executable :
            ("?:\\Windows\\System32\\wermgr.exe",
             "?:\\Windows\\System32\\WerFault.exe",
             "?:\\Windows\\SysWOW64\\WerFault.exe",
             "?:\\Windows\\System32\\WerFaultSecure.exe",
             "?:\\Windows\\System32\\wbem\\WmiPrvSE.exe",
             "?:\\Windows\\SoftwareDistribution\\Download\\Install\\securityhealthsetup.exe") and
  not (process.name : "rundll32.exe" and
       process.args : ("?:\\windows\\system32\\davclnt.dll,DavSetCookie", "?:\\Windows\\SysWOW64\\davclnt.dll,DavSetCookie") and
       process.parent.executable : ("?:\\Windows\\System32\\svchost.exe", "?:\\Windows\\SysWOW64\\svchost.exe")) and

  not (process.code_signature.subject_name : "Secure By Design Inc." and process.code_signature.trusted == true)

  ] by process.parent.entity_id
'''

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

[[threat]]
framework = "MITRE ATT&CK"
[[threat.technique]]
id = "T1068"
name = "Exploitation for Privilege Escalation"
reference = "https://attack.mitre.org/techniques/T1068/"

[[threat.technique]]
id = "T1134"
name = "Access Token Manipulation"
reference = "https://attack.mitre.org/techniques/T1134/"
[[threat.technique.subtechnique]]
id = "T1134.002"
name = "Create Process with Token"
reference = "https://attack.mitre.org/techniques/T1134/002/"



[threat.tactic]
id = "TA0004"
name = "Privilege Escalation"
reference = "https://attack.mitre.org/tactics/TA0004/"

[internal]
min_endpoint_version = "8.4.0"

Stages and Predicates

Ordered sequence: each step below must occur in order within 5m, correlated by process.entity_id, process.parent.entity_id.

Stage 1: process

[process where event.action == "start" and user.id like ("S-1-5-21*", "S-1-12-*")] by process.entity_id

Stage 2: process

[process where event.action == "start" and
  process.Ext.token.integrity_level_name == "system" and user.id == "S-1-5-18" and
  process.Ext.effective_parent.name != null and
  process.parent.Ext.real.pid == null and
  not process.executable :
            ("?:\\Windows\\System32\\wermgr.exe",
             "?:\\Windows\\System32\\WerFault.exe",
             "?:\\Windows\\SysWOW64\\WerFault.exe",
             "?:\\Windows\\System32\\WerFaultSecure.exe",
             "?:\\Windows\\System32\\wbem\\WmiPrvSE.exe",
             "?:\\Windows\\SoftwareDistribution\\Download\\Install\\securityhealthsetup.exe") and
  not (process.name : "rundll32.exe" and
       process.args : ("?:\\windows\\system32\\davclnt.dll,DavSetCookie", "?:\\Windows\\SysWOW64\\davclnt.dll,DavSetCookie") and
       process.parent.executable : ("?:\\Windows\\System32\\svchost.exe", "?:\\Windows\\SysWOW64\\svchost.exe")) and

  not (process.code_signature.subject_name : "Secure By Design Inc." and process.code_signature.trusted == true)

  ] by process.parent.entity_id

Exclusions

The rule actively suppresses these predicates.

FieldKindExcluded valuesSearch
process.argseq?:\windows\system32\davclnt.dll,DavSetCookie, ?:\Windows\SysWOW64\davclnt.dll,DavSetCookieexcludes:process.args field:"process.args" value:"?:\windows\system32\davclnt.dll,DavSetCookie" field:"process.args" value:"?:\Windows\SysWOW64\davclnt.dll,DavSetCookie"
process.nameeqrundll32.exeexcludes:process.name field:"process.name" value:"rundll32.exe"
process.parent.executableeq?:\Windows\System32\svchost.exe, ?:\Windows\SysWOW64\svchost.exeexcludes:process.parent.executable field:"process.parent.executable" value:"?:\Windows\System32\svchost.exe" field:"process.parent.executable" value:"?:\Windows\SysWOW64\svchost.exe"
process.code_signature.subject_nameeqSecure By Design Inc.excludes:process.code_signature.subject_name field:"process.code_signature.subject_name" value:"Secure By Design Inc."
process.code_signature.trustedeqtrueexcludes:process.code_signature.trusted field:"process.code_signature.trusted" value:"true"
process.executableeq?:\Windows\System32\wermgr.exe, ?:\Windows\System32\WerFault.exe, ?:\Windows\SysWOW64\WerFault.exe, ?:\Windows\System32\WerFaultSecure.exe, ?:\Windows\System32\wbem\WmiPrvSE.exe, ?:\Windows\SoftwareDistribution\Download\Install\securityhealthsetup.exeexcludes:process.executable

Indicators

These rows show field, operator, and value matches.