Detection: Windows Privilege Escalation System Process Without System Parent
Description
The following analytic detects any system integrity level process spawned by a non-system account. It leverages Sysmon EventID 1, focusing on process integrity and parent user data. This behavior is significant as it often indicates successful privilege escalation to SYSTEM from a user-controlled process or service. If confirmed malicious, this activity could allow an attacker to gain full control over the system, execute arbitrary code, and potentially compromise the entire environment.
Search
1`sysmon` EventCode=1 IntegrityLevel="system" ParentUser=* NOT ParentUser IN ("*SYSTEM","*LOCAL SERVICE","*NETWORK SERVICE","*DWM-*","*$","-")
2| eval src_user = replace(ParentUser,"^[^\\\]+\\\\","")
3| stats count min(_time) as firstTime max(_time) as lastTime by action dest original_file_name parent_process parent_process_exec parent_process_guid parent_process_id parent_process_name parent_process_path process process_exec process_guid process_hash process_id process_integrity_level process_name process_path user user_id vendor_product src_user
4| `security_content_ctime(firstTime)`
5| `security_content_ctime(lastTime)`
6| `windows_privilege_escalation_system_process_without_system_parent_filter`
Data Source
| Name |
Platform |
Sourcetype |
Source |
| Sysmon EventID 1 |
Windows |
'XmlWinEventLog' |
'XmlWinEventLog:Microsoft-Windows-Sysmon/Operational' |
Macros Used
| Name |
Value |
| sysmon |
(source=WinEventLog:Microsoft-Windows-Sysmon/Operational OR source=XmlWinEventLog:Microsoft-Windows-Sysmon/Operational OR source=Syslog:Linux-Sysmon/Operational) |
| windows_privilege_escalation_system_process_without_system_parent_filter |
search * |
windows_privilege_escalation_system_process_without_system_parent_filter is an empty macro by default. It allows the user to filter out any results (false positives) without editing the SPL.
Annotations
| ID |
Technique |
Tactic |
| T1068 |
Exploitation for Privilege Escalation |
Privilege Escalation |
| T1134 |
Access Token Manipulation |
Privilege Escalation |
| T1548 |
Abuse Elevation Control Mechanism |
Stealth |
Default Configuration
This detection is configured by default in Splunk Enterprise Security to run with the following settings:
| Setting |
Value |
| Disabled |
true |
| Cron Schedule |
0 * * * * |
| Earliest Time |
-70m@m |
| Latest Time |
-10m@m |
| Schedule Window |
auto |
| Creates Finding (Notable) |
Yes |
| Rule Title |
%name% |
| Rule Description |
%description% |
| Notable Event Fields |
user, dest |
| Creates Intermediate Finding (Risk Event) |
Yes |
TTP detections generate a Finding (Notable) and may generate Intermediate Findings (Risk Events) for associated entities.
Implementation
Target environment must ingest sysmon data, specifically Event ID 1 with process integrity and parent user data.
Known False Positives
No false positives have been identified at this time.
Associated Analytic Story
Finding
| Title |
Entity Field |
Entity Type |
Risk Score |
| The process [$process_name$] on $dest$ was launched with system level integrity by $src_user$. |
src_user |
user |
50 |
| Message |
Entity Field |
Entity Type |
Risk Score |
| The process [$process_name$] on $dest$ was launched with system level integrity by $src_user$. |
dest |
system |
50 |
Threat Objects
| Field |
Type |
| process_name |
process_name |
References
Detection Testing
| Test Type |
Status |
Dataset |
Source |
Sourcetype |
| Validation |
✅ Passing |
N/A |
N/A |
N/A |
| Unit |
✅ Passing |
Dataset |
XmlWinEventLog:Microsoft-Windows-Sysmon/Operational |
XmlWinEventLog |
| Integration |
✅ Passing |
Dataset |
XmlWinEventLog:Microsoft-Windows-Sysmon/Operational |
XmlWinEventLog |
Replay any dataset to Splunk Enterprise by using our replay.py tool or the UI.
Alternatively you can replay a dataset into a Splunk Attack Range
Source: GitHub |
Version: 10