Detection rules › Elastic
Privilege Escalation via EXTENDED STARTUPINFO
Identifies the creation of an elevated process running as SYSTEM and with a spoofed parent process. Adversaries use this technique to escalate privileges and bypass access controls.
MITRE ATT&CK coverage
| Tactic | Techniques |
|---|---|
| Privilege Escalation |
Rule body
[rule]
description = """
Identifies the creation of an elevated process running as SYSTEM and with a spoofed parent process. Adversaries use this
technique to escalate privileges and bypass access controls.
"""
id = "2afd9e7f-99e0-4a4d-a6e3-9e9db730f63b"
license = "Elastic License v2"
name = "Privilege Escalation via EXTENDED STARTUPINFO"
os_list = ["windows"]
reference = [
"https://gist.github.com/xpn/a057a26ec81e736518ee50848b9c2cd6",
"https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1134.002/T1134.002.md",
"https://learn.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-updateprocthreadattribute",
"https://www.elastic.co/security-labs/elastic-security-labs-steps-through-the-r77-rootkit",
]
version = "1.0.44"
query = '''
process where event.action == "start" and
/* process creation via seclogon */
process.parent.Ext.real.pid > 0 and process.parent.executable != null and
/* PrivEsc to SYSTEM */
user.id == "S-1-5-18" and
/* Common FPs - evasion via hollowing is possible, should be covered by code injection */
not process.executable : ("?:\\Windows\\System32\\WerFault.exe",
"?:\\Windows\\SysWOW64\\WerFault.exe",
"?:\\Windows\\System32\\WerFaultSecure.exe",
"?:\\Windows\\SysWOW64\\WerFaultSecure.exe",
"\\\\?\\Volume{*}\\Windows\\Sys*\\WerFault.exe",
"?:\\Windows\\System32\\Wermgr.exe",
"?:\\Windows\\SysWOW64\\Wermgr.exe",
"?:\\Windows\\SoftwareDistribution\\Download\\Install\\securityhealthsetup.exe",
"?:\\Program Files\\*.exe",
"?:\\Program Files (x86)\\*.exe",
"?:\\Windows\\System32\\osk.exe",
"?:\\Windows\\System32\\Narrator.exe",
"?:\\Windows\\System32\\MpSigStub.exe",
"\\Device\\HarddiskVolume?\\Windows\\SysWOW64\\*.exe",
"\\Device\\HarddiskVolume?\\Windows\\System32\\*.exe") and
not process.parent.executable : ("?:\\Windows\\System32\\AtBroker.exe", "?:\\Windows\\System32\\Utilman.exe") and
not (process.pe.original_file_name == "SecurityHealthSetup.exe" and process.code_signature.trusted == true and
process.code_signature.subject_name == "Microsoft Windows" and process.Ext.effective_parent.executable : "C:\\Windows\\servicing\\TrustedInstaller.exe") and
not (process.code_signature.subject_name in
("philandro Software GmbH", "Freedom Scientific Inc.", "TeamViewer Germany GmbH", "Projector.is, Inc.",
"TeamViewer GmbH", "Cisco WebEx LLC", "Dell Inc", "Netwrix Corporation",
"Samsung Electronics CO., LTD.", "TeamViewer", "POINT B LTD", "IMPERO SOLUTIONS LIMITED",
"AnyDesk Software GmbH", "Shanghai Best Oray Information S&T Co. Ltd.", "Zhou Huabing",
"PURSLANE", "Remote Utilities LLC", "ZOHO Corporation Private Limited", "PTC Inc.", "ITE Tech. Inc.",
"vast limits GmbH", "RG Systèmes SAS", "Bayside Computer Systems Inc") and
process.code_signature.trusted == true) and
not (process.name : "powershell.exe" and process.parent.name : "powershell.exe" and
process.args : "CgAgACAAIAAg*" and process.parent.args : "JgBjAGgAYwBwAC4AYwBvAG0AIAA2ADUAMAAwADEAIAA+ACAA*") and
not process.hash.sha256 :
("3e541100c869dba06ee62252a9661e5a06c2e685a7ddd5288ea1358703412385",
"29c977845e4822efe15cc0e44ede3a03e30030d108d2ae9932e34a1c3840283a",
"1e07a7a91451303d5cdac0a1673d581f5f7198fcc08fc79e4332aba6400f55a8",
"f3607f433952cb23d9eb0fc5e31fd0c4079cad3133dc79d149022900d208876c",
"79e1e068196a7447eb7ec8b4fc2d8ba4e818ad4d94829c0151170e639f480b9e") and
not (process.name : "rundll32.exe" and process.command_line : "*winethc*ForceProxyDetectionOnNextRun*" and
process.parent.args : "WdiServiceHost" and process.parent.executable : "?:\\Windows\\System32\\svchost.exe") and
not (process.executable : "?:\\Windows\\System32\\browser_broker.exe" and
process.parent.executable : "?:\\Windows\\System32\\svchost.exe" and process.parent.args : "PlugPlay") and
not (process.name : "cmd.exe" and
process.parent.executable : "?:\\Windows\\System32\\svchost.exe" and process.parent.args : "DcomLaunch" and
process.args : "?:\\Windows\\System32\\wscript.exe ?:\\windows\\system32\\gathernetworkinfo.vbs") and
not (process.parent.executable : "?:\\Program Files (x86)\\SubPrint\\subprint_temp\\nircmdc.exe" and
process.name : "cmd.exe" and process.args : "?:\\Program Files (x86)\\SubPrint/subprint_temp/configure.bat") and
not process.parent.executable : "?:\\Program Files (x86)\\VisualCron\\VisualCronService.exe" and
not (process.name : "powershell.exe" and process.parent.executable : "C:\\Windows\\System32\\wsmprovhost.exe" and
process.command_line : "powershell.exe -NonInteractive -NoProfile -ExecutionPolicy Bypass -EncodedCommand CgA*") and
not (process.parent.name : "cmd.exe" and process.name : "powershell.exe" and process.args : "$execWrapper.Split(@(\"`0`0`0`0\"),") and
not (process.executable : "?:\\WINDOWS\\SysWOW64\\svchost.exe" and process.parent.executable : "?:\\Windows\\System32\\svchost.exe" and
process.parent.command_line : "?:\\WINDOWS\\system32\\svchost.exe -k DcomLaunch -p -s PlugPlay") and
not (process.executable : "?:\\$WINDOWS.~BT\\NewOS\\Windows\\System32\\ie4ushowIE.exe" and
process.parent.executable : "?:\\$WINDOWS.~BT\\Sources\\mighost.exe") and
not process.parent.executable :
("C:\\Program Files\\Veeam\\Backup and Replication\\Backup\\Veeam.Backup.Manager.exe",
"\\Device\\HarddiskVolume?\\Windows\\SoftwareDistribution\\Download\\Install\\SecurityHealthSetup.exe") and
/* AM_Delta_Patch Windows Update */
not (process.executable :
("?:\\Windows\\System32\\MpSigStub.exe",
"?:\\Windows\\SysWOW64\\MpSigStub.exe",
"\\Device\\HarddiskVolume*\\Windows\\System32\\MpSigStub.exe",
"\\Device\\HarddiskVolume*\\Windows\\SysWOW64\\MpSigStub.exe") and
process.parent.name : ("wuauclt.exe", "wuaucltcore.exe")) and
not (process.executable : "C:\\ProgramData\\Microsoft\\Windows Defender\\Scans\\MpPayloadData\\mpengine.exe" and
process.parent.executable : "C:\\ProgramData\\Microsoft\\Windows Defender\\Scans\\MpPayloadData\\mpengine.exe" and user.id == "S-1-5-18")
'''
min_endpoint_version = "8.4.0"
optional_actions = []
[[actions]]
action = "kill_process"
field = "process.entity_id"
state = 0
[[threat]]
framework = "MITRE ATT&CK"
[[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.technique.subtechnique]]
id = "T1134.004"
name = "Parent PID Spoofing"
reference = "https://attack.mitre.org/techniques/T1134/004/"
[threat.tactic]
id = "TA0004"
name = "Privilege Escalation"
reference = "https://attack.mitre.org/tactics/TA0004/"
[internal]
min_endpoint_version = "8.4.0"
Stages and Predicates
Stage 1: process
process where event.action == "start" and
process.parent.Ext.real.pid > 0 and process.parent.executable != null and
user.id == "S-1-5-18" and
not process.executable : ("?:\\Windows\\System32\\WerFault.exe",
"?:\\Windows\\SysWOW64\\WerFault.exe",
"?:\\Windows\\System32\\WerFaultSecure.exe",
"?:\\Windows\\SysWOW64\\WerFaultSecure.exe",
"\\\\?\\Volume{*}\\Windows\\Sys*\\WerFault.exe",
"?:\\Windows\\System32\\Wermgr.exe",
"?:\\Windows\\SysWOW64\\Wermgr.exe",
"?:\\Windows\\SoftwareDistribution\\Download\\Install\\securityhealthsetup.exe",
"?:\\Program Files\\*.exe",
"?:\\Program Files (x86)\\*.exe",
"?:\\Windows\\System32\\osk.exe",
"?:\\Windows\\System32\\Narrator.exe",
"?:\\Windows\\System32\\MpSigStub.exe",
"\\Device\\HarddiskVolume?\\Windows\\SysWOW64\\*.exe",
"\\Device\\HarddiskVolume?\\Windows\\System32\\*.exe") and
not process.parent.executable : ("?:\\Windows\\System32\\AtBroker.exe", "?:\\Windows\\System32\\Utilman.exe") and
not (process.pe.original_file_name == "SecurityHealthSetup.exe" and process.code_signature.trusted == true and
process.code_signature.subject_name == "Microsoft Windows" and process.Ext.effective_parent.executable : "C:\\Windows\\servicing\\TrustedInstaller.exe") and
not (process.code_signature.subject_name in
("philandro Software GmbH", "Freedom Scientific Inc.", "TeamViewer Germany GmbH", "Projector.is, Inc.",
"TeamViewer GmbH", "Cisco WebEx LLC", "Dell Inc", "Netwrix Corporation",
"Samsung Electronics CO., LTD.", "TeamViewer", "POINT B LTD", "IMPERO SOLUTIONS LIMITED",
"AnyDesk Software GmbH", "Shanghai Best Oray Information S&T Co. Ltd.", "Zhou Huabing",
"PURSLANE", "Remote Utilities LLC", "ZOHO Corporation Private Limited", "PTC Inc.", "ITE Tech. Inc.",
"vast limits GmbH", "RG Systèmes SAS", "Bayside Computer Systems Inc") and
process.code_signature.trusted == true) and
not (process.name : "powershell.exe" and process.parent.name : "powershell.exe" and
process.args : "CgAgACAAIAAg*" and process.parent.args : "JgBjAGgAYwBwAC4AYwBvAG0AIAA2ADUAMAAwADEAIAA+ACAA*") and
not process.hash.sha256 :
("3e541100c869dba06ee62252a9661e5a06c2e685a7ddd5288ea1358703412385",
"29c977845e4822efe15cc0e44ede3a03e30030d108d2ae9932e34a1c3840283a",
"1e07a7a91451303d5cdac0a1673d581f5f7198fcc08fc79e4332aba6400f55a8",
"f3607f433952cb23d9eb0fc5e31fd0c4079cad3133dc79d149022900d208876c",
"79e1e068196a7447eb7ec8b4fc2d8ba4e818ad4d94829c0151170e639f480b9e") and
not (process.name : "rundll32.exe" and process.command_line : "*winethc*ForceProxyDetectionOnNextRun*" and
process.parent.args : "WdiServiceHost" and process.parent.executable : "?:\\Windows\\System32\\svchost.exe") and
not (process.executable : "?:\\Windows\\System32\\browser_broker.exe" and
process.parent.executable : "?:\\Windows\\System32\\svchost.exe" and process.parent.args : "PlugPlay") and
not (process.name : "cmd.exe" and
process.parent.executable : "?:\\Windows\\System32\\svchost.exe" and process.parent.args : "DcomLaunch" and
process.args : "?:\\Windows\\System32\\wscript.exe ?:\\windows\\system32\\gathernetworkinfo.vbs") and
not (process.parent.executable : "?:\\Program Files (x86)\\SubPrint\\subprint_temp\\nircmdc.exe" and
process.name : "cmd.exe" and process.args : "?:\\Program Files (x86)\\SubPrint/subprint_temp/configure.bat") and
not process.parent.executable : "?:\\Program Files (x86)\\VisualCron\\VisualCronService.exe" and
not (process.name : "powershell.exe" and process.parent.executable : "C:\\Windows\\System32\\wsmprovhost.exe" and
process.command_line : "powershell.exe -NonInteractive -NoProfile -ExecutionPolicy Bypass -EncodedCommand CgA*") and
not (process.parent.name : "cmd.exe" and process.name : "powershell.exe" and process.args : "$execWrapper.Split(@(\"`0`0`0`0\"),") and
not (process.executable : "?:\\WINDOWS\\SysWOW64\\svchost.exe" and process.parent.executable : "?:\\Windows\\System32\\svchost.exe" and
process.parent.command_line : "?:\\WINDOWS\\system32\\svchost.exe -k DcomLaunch -p -s PlugPlay") and
not (process.executable : "?:\\$WINDOWS.~BT\\NewOS\\Windows\\System32\\ie4ushowIE.exe" and
process.parent.executable : "?:\\$WINDOWS.~BT\\Sources\\mighost.exe") and
not process.parent.executable :
("C:\\Program Files\\Veeam\\Backup and Replication\\Backup\\Veeam.Backup.Manager.exe",
"\\Device\\HarddiskVolume?\\Windows\\SoftwareDistribution\\Download\\Install\\SecurityHealthSetup.exe") and
not (process.executable :
("?:\\Windows\\System32\\MpSigStub.exe",
"?:\\Windows\\SysWOW64\\MpSigStub.exe",
"\\Device\\HarddiskVolume*\\Windows\\System32\\MpSigStub.exe",
"\\Device\\HarddiskVolume*\\Windows\\SysWOW64\\MpSigStub.exe") and
process.parent.name : ("wuauclt.exe", "wuaucltcore.exe")) and
not (process.executable : "C:\\ProgramData\\Microsoft\\Windows Defender\\Scans\\MpPayloadData\\mpengine.exe" and
process.parent.executable : "C:\\ProgramData\\Microsoft\\Windows Defender\\Scans\\MpPayloadData\\mpengine.exe" and user.id == "S-1-5-18")
Exclusions
The rule actively suppresses these predicates.
| Field | Kind | Excluded values | Search |
|---|---|---|---|
process.Ext.effective_parent.executable | eq | C:\Windows\servicing\TrustedInstaller.exe | excludes:process.Ext.effective_parent.executable field:"process.Ext.effective_parent.executable" value:"C:\Windows\servicing\TrustedInstaller.exe" |
process.code_signature.subject_name | eq | Microsoft Windows | excludes:process.code_signature.subject_name field:"process.code_signature.subject_name" value:"Microsoft Windows" |
process.code_signature.trusted | eq | true | excludes:process.code_signature.trusted field:"process.code_signature.trusted" value:"true" |
process.pe.original_file_name | eq | SecurityHealthSetup.exe | excludes:process.pe.original_file_name field:"process.pe.original_file_name" value:"SecurityHealthSetup.exe" |
process.args | eq | $execWrapper.Split(@("`0`0`0`0"), | excludes:process.args |
process.name | eq | powershell.exe | excludes:process.name field:"process.name" value:"powershell.exe" |
process.parent.name | eq | cmd.exe | excludes:process.parent.name field:"process.parent.name" value:"cmd.exe" |
process.args | eq | ?:\Program Files (x86)\SubPrint/subprint_temp/configure.bat | excludes:process.args field:"process.args" value:"?:\Program Files (x86)\SubPrint/subprint_temp/configure.bat" |
process.name | eq | cmd.exe | excludes:process.name field:"process.name" value:"cmd.exe" |
process.parent.executable | eq | ?:\Program Files (x86)\SubPrint\subprint_temp\nircmdc.exe | excludes:process.parent.executable field:"process.parent.executable" value:"?:\Program Files (x86)\SubPrint\subprint_temp\nircmdc.exe" |
process.args | eq | ?:\Windows\System32\wscript.exe ?:\windows\system32\gathernetworkinfo.vbs | excludes:process.args field:"process.args" value:"?:\Windows\System32\wscript.exe ?:\windows\system32\gathernetworkinfo.vbs" |
process.parent.args | eq | DcomLaunch | excludes:process.parent.args field:"process.parent.args" value:"DcomLaunch" |
process.parent.executable | eq | ?:\Windows\System32\svchost.exe | excludes:process.parent.executable field:"process.parent.executable" value:"?:\Windows\System32\svchost.exe" |
process.args | starts_with | CgAgACAAIAAg | excludes:process.args field:"process.args" value:"CgAgACAAIAAg" |
process.parent.args | starts_with | JgBjAGgAYwBwAC4AYwBvAG0AIAA2ADUAMAAwADEAIAA+ACAA | excludes:process.parent.args field:"process.parent.args" value:"JgBjAGgAYwBwAC4AYwBvAG0AIAA2ADUAMAAwADEAIAA+ACAA" |
process.parent.name | eq | powershell.exe | excludes:process.parent.name field:"process.parent.name" value:"powershell.exe" |
process.code_signature.subject_name | in | AnyDesk Software GmbH, Bayside Computer Systems Inc, Cisco WebEx LLC, Dell Inc, Freedom Scientific Inc., IMPERO SOLUTIONS LIMITED, ITE Tech. Inc., Netwrix Corporation, POINT B LTD, PTC Inc., PURSLANE, Projector.is, Inc., RG Systèmes SAS, Remote Utilities LLC, Samsung Electronics CO., LTD., Shanghai Best Oray Information S&T Co. Ltd., TeamViewer, TeamViewer Germany GmbH, TeamViewer GmbH, ZOHO Corporation Private Limited, Zhou Huabing, philandro Software GmbH, vast limits GmbH | excludes:process.code_signature.subject_name |
process.command_line | starts_with | powershell.exe -NonInteractive -NoProfile -ExecutionPolicy Bypass -EncodedCommand CgA | excludes:process.command_line field:"process.command_line" value:"powershell.exe -NonInteractive -NoProfile -ExecutionPolicy Bypass -EncodedCommand CgA" |
process.parent.executable | eq | C:\Windows\System32\wsmprovhost.exe | excludes:process.parent.executable field:"process.parent.executable" value:"C:\Windows\System32\wsmprovhost.exe" |
process.command_line | wildcard | *winethc*ForceProxyDetectionOnNextRun* | excludes:process.command_line field:"process.command_line" value:"*winethc*ForceProxyDetectionOnNextRun*" |
process.name | eq | rundll32.exe | excludes:process.name field:"process.name" value:"rundll32.exe" |
process.parent.args | eq | WdiServiceHost | excludes:process.parent.args field:"process.parent.args" value:"WdiServiceHost" |
process.executable | eq | ?:\$WINDOWS.~BT\NewOS\Windows\System32\ie4ushowIE.exe | excludes:process.executable field:"process.executable" value:"?:\$WINDOWS.~BT\NewOS\Windows\System32\ie4ushowIE.exe" |
process.parent.executable | eq | ?:\$WINDOWS.~BT\Sources\mighost.exe | excludes:process.parent.executable field:"process.parent.executable" value:"?:\$WINDOWS.~BT\Sources\mighost.exe" |
process.executable | eq | ?:\WINDOWS\SysWOW64\svchost.exe | excludes:process.executable field:"process.executable" value:"?:\WINDOWS\SysWOW64\svchost.exe" |
process.parent.command_line | eq | ?:\WINDOWS\system32\svchost.exe -k DcomLaunch -p -s PlugPlay | excludes:process.parent.command_line field:"process.parent.command_line" value:"?:\WINDOWS\system32\svchost.exe -k DcomLaunch -p -s PlugPlay" |
process.executable | eq | ?:\Windows\System32\browser_broker.exe | excludes:process.executable field:"process.executable" value:"?:\Windows\System32\browser_broker.exe" |
process.parent.args | eq | PlugPlay | excludes:process.parent.args field:"process.parent.args" value:"PlugPlay" |
process.executable | eq | C:\ProgramData\Microsoft\Windows Defender\Scans\MpPayloadData\mpengine.exe | excludes:process.executable field:"process.executable" value:"C:\ProgramData\Microsoft\Windows Defender\Scans\MpPayloadData\mpengine.exe" |
process.parent.executable | eq | C:\ProgramData\Microsoft\Windows Defender\Scans\MpPayloadData\mpengine.exe | excludes:process.parent.executable field:"process.parent.executable" value:"C:\ProgramData\Microsoft\Windows Defender\Scans\MpPayloadData\mpengine.exe" |
user.id | eq | S-1-5-18 | excludes:user.id field:"user.id" value:"S-1-5-18" |
process.executable | wildcard | ?:\Windows\System32\MpSigStub.exe, ?:\Windows\SysWOW64\MpSigStub.exe, \Device\HarddiskVolume*\Windows\System32\MpSigStub.exe, \Device\HarddiskVolume*\Windows\SysWOW64\MpSigStub.exe | excludes:process.executable |
process.parent.name | eq | wuauclt.exe, wuaucltcore.exe | excludes:process.parent.name field:"process.parent.name" value:"wuauclt.exe" field:"process.parent.name" value:"wuaucltcore.exe" |
process.executable | wildcard | ?:\Windows\System32\WerFault.exe, ?:\Windows\SysWOW64\WerFault.exe, ?:\Windows\System32\WerFaultSecure.exe, ?:\Windows\SysWOW64\WerFaultSecure.exe, \\?\Volume{*}\Windows\Sys*\WerFault.exe, ?:\Windows\System32\Wermgr.exe, ?:\Windows\SysWOW64\Wermgr.exe, ?:\Windows\SoftwareDistribution\Download\Install\securityhealthsetup.exe, ?:\Program Files\*.exe, ?:\Program Files (x86)\*.exe, ?:\Windows\System32\osk.exe, ?:\Windows\System32\Narrator.exe, ?:\Windows\System32\MpSigStub.exe, \Device\HarddiskVolume?\Windows\SysWOW64\*.exe, \Device\HarddiskVolume?\Windows\System32\*.exe | excludes:process.executable |
process.hash.sha256 | eq | 3e541100c869dba06ee62252a9661e5a06c2e685a7ddd5288ea1358703412385, 29c977845e4822efe15cc0e44ede3a03e30030d108d2ae9932e34a1c3840283a, 1e07a7a91451303d5cdac0a1673d581f5f7198fcc08fc79e4332aba6400f55a8, f3607f433952cb23d9eb0fc5e31fd0c4079cad3133dc79d149022900d208876c, 79e1e068196a7447eb7ec8b4fc2d8ba4e818ad4d94829c0151170e639f480b9e | excludes:process.hash.sha256 |
process.parent.executable | eq | ?:\Program Files (x86)\VisualCron\VisualCronService.exe | excludes:process.parent.executable field:"process.parent.executable" value:"?:\Program Files (x86)\VisualCron\VisualCronService.exe" |
process.parent.executable | eq | ?:\Windows\System32\AtBroker.exe, ?:\Windows\System32\Utilman.exe | excludes:process.parent.executable field:"process.parent.executable" value:"?:\Windows\System32\AtBroker.exe" field:"process.parent.executable" value:"?:\Windows\System32\Utilman.exe" |
process.parent.executable | eq | C:\Program Files\Veeam\Backup and Replication\Backup\Veeam.Backup.Manager.exe, \Device\HarddiskVolume?\Windows\SoftwareDistribution\Download\Install\SecurityHealthSetup.exe | excludes:process.parent.executable field:"process.parent.executable" value:"C:\Program Files\Veeam\Backup and Replication\Backup\Veeam.Backup.Manager.exe" field:"process.parent.executable" value:"\Device\HarddiskVolume?\Windows\SoftwareDistribution\Download\Install\SecurityHealthSetup.exe" |
Indicators
These rows show field, operator, and value matches.