Detection rules › Splunk
Windows Privilege Escalation User Process Spawn System Process
The following analytic detects when a process with low, medium, or high integrity spawns a system integrity process from a user-controlled location. This behavior is indicative of privilege escalation attempts where attackers elevate their privileges to SYSTEM level from a user-controlled process or service. The detection leverages Sysmon data, specifically Event ID 15, to identify such transitions. Monitoring this activity is crucial as it can signify an attacker gaining SYSTEM-level access, potentially leading to full control over the affected system, unauthorized access to sensitive data, and further malicious activities.
MITRE ATT&CK coverage
| Tactic | Techniques |
|---|---|
| Privilege Escalation | T1068 Exploitation for Privilege Escalation, T1134 Access Token Manipulation, T1548 Abuse Elevation Control Mechanism |
| Defense Evasion | T1134 Access Token Manipulation, T1548 Abuse Elevation Control Mechanism |
Event coverage
| Provider | Event ID | Title |
|---|---|---|
| Sysmon | 1 | Process creation |
Stages and Predicates
Stage 1: tstats
tstats WHERE NOT Processes.user IN ("*$", "*LOCAL SERVICE", "*NETWORK SERVICE", "*SYSTEM", "DWM-*") Processes.process_integrity_level IN ("high", "low", "medium") Processes.process_path IN ("*\\ProgramData\\*", "*\\Temp\\*", "*\\Users\\*", "*\\\\*") BY Processes.action, Processes.dest, Processes.original_file_name, Processes.parent_process, Processes.parent_process_exec, Processes.parent_process_guid, Processes.parent_process_id, Processes.parent_process_name, Processes.parent_process_path, Processes.process, Processes.process_exec, Processes.process_guid, Processes.process_hash, Processes.process_id, Processes.process_integrity_level, Processes.process_name, Processes.process_path, Processes.user, Processes.user_id, Processes.vendor_product
Stage 2: search
search
Stage 3: eval
eval ... using (process_guid)
Stage 4: join
join type=inner (...)
Stage 5: fields
fields count, dest, firstTime, lastTime, parent_process, parent_process_guid, parent_process_name, process, process_current_directory, process_guid, process_integrity_level, process_name, process_path, system_process, system_process_current_directory, system_process_integrity_level, system_process_name, system_process_path, system_user, user
Stage 6: search
search
Stage 7: search
search
Stage 8: search
search `macro`
Exclusions
Top-level NOT(...) conjuncts — predicates this rule actively suppresses.
| Stage | Field | Kind | Excluded values |
|---|---|---|---|
| 1 | user | in | "*$", "*LOCAL SERVICE", "*NETWORK SERVICE", "*SYSTEM", "DWM-*" |
Indicators
Each row is a field, operator, and value that the rule matches. The corpus column counts how many other rules in the catalog look for the same combination: high numbers point to widely-used, community-vetted indicators. Blank or 1 shows that the indicator is specific to this rule.
| Field | Kind | Values |
|---|---|---|
Processes.parent_process_path | in |
|
Processes.process_integrity_level | eq |
|
Processes.process_integrity_level | in |
|
Processes.process_path | in |
|
Neighbors
Broader alternatives (more inclusive than this rule)
These rules match a superset of what this rule catches. They cover the same events plus more. Use them if you want wider coverage and can absorb more false positives.
- Windows Privilege Escalation Suspicious Process Elevation (drops 1 filter this rule applies)