Detection rules › Splunk
Windows Wermgr Spawning System Integrity Process
The following analytic detects WerMgr.exe (Windows Error Reporting) spawning a child process running at SYSTEM integrity level. WerMgr.exe normally runs at the integrity level of the reporting user or as a background SYSTEM-owned service that does not launch interactive children. In the ShieldBreak exploit, WerMgr.exe is manually triggered via the QueueReporting scheduled task and loads an attacker-planted phantom DLL (phoneinfo.dll), which then spawns an elevated shell. If confirmed malicious, this activity indicates successful local privilege escalation to SYSTEM.
Known false positives
- No false positives have been identified at this time. WerMgr.exe spawning a SYSTEM-integrity child process is not expected under normal Windows Error Reporting operation.
MITRE ATT&CK coverage
| Tactic | Techniques |
|---|---|
| Privilege Escalation | |
| Stealth |
Telemetry coverage
| Provider | Record / event type |
|---|---|
| Sysmon | Event ID 1: Process creation |
| Security-Auditing | Event ID 4688: A new process has been created. |
Rule body
name: Windows Wermgr Spawning System Integrity Process
id: d39634c8-7ce7-4503-a5da-73ca3c758fb9
version: 1
creation_date: '2026-08-17'
modification_date: '2026-08-18'
author: Onur Mustafa Erdogan, Splunk
status: production
type: TTP
description: |-
The following analytic detects WerMgr.exe (Windows Error Reporting) spawning a child process running at SYSTEM integrity level.
WerMgr.exe normally runs at the integrity level of the reporting user or as a background SYSTEM-owned service that does not launch interactive children.
In the ShieldBreak exploit, WerMgr.exe is manually triggered via the QueueReporting scheduled task and loads an attacker-planted phantom DLL (phoneinfo.dll), which then spawns an elevated shell.
If confirmed malicious, this activity indicates successful local privilege escalation to SYSTEM.
data_source:
- Sysmon EventID 1
- Windows Event Log Security 4688
- CrowdStrike ProcessRollup2
search: |-
| tstats `security_content_summariesonly`
count min(_time) as firstTime
max(_time) as lastTime
from datamodel=Endpoint.Processes where
Processes.parent_process_name="WerMgr.exe"
(
Processes.process_integrity_level="System"
OR
Processes.user IN ("*$", "System")
)
by Processes.action Processes.dest Processes.parent_process_name Processes.parent_process_path
Processes.parent_process Processes.parent_process_id Processes.process_name
Processes.process_path Processes.process Processes.process_id Processes.process_hash
Processes.process_integrity_level Processes.user Processes.vendor_product
| `drop_dm_object_name(Processes)`
| `security_content_ctime(firstTime)`
| `security_content_ctime(lastTime)`
| `windows_wermgr_spawning_system_integrity_process_filter`
how_to_implement: |-
This detection is based on Process creation events. Make sure you are ingesting logs that contain parent process details and fields that indicate privilege level, such as user name or integrity level. If you are using Sysmon, make sure to enable logging of child processes of WerMgr.exe.
known_false_positives: |-
No false positives have been identified at this time.
WerMgr.exe spawning a SYSTEM-integrity child process is not expected under normal Windows Error Reporting operation.
references:
- https://www.cyderes.com/howler-cell/rogueplanet-windows-zero-day
- https://www.threatlocker.com/blog/nightmareeclipse-releases-new-poc-shieldbreak-exploits-same-weakness-as-rogueplanet
- https://isc.sans.edu/diary/22536
finding:
title: The [$parent_process_name$] process spawned [$process_name$] running at SYSTEM integrity level on $dest$
entity:
field: dest
type: system
score: 50
threat_objects:
- field: process
type: process
- field: process_name
type: process_name
analytic_story:
- RoguePlanet
- Windows Privilege Escalation
- Windows Error Reporting Service Elevation of Privilege Vulnerability
asset_type: Endpoint
mitre_attack_id:
- T1068
- T1134.001
product:
- Splunk Enterprise
- Splunk Enterprise Security
- Splunk Cloud
category: endpoint
security_domain: endpoint
Stages and Predicates
Stage 1: tstats
| tstats `security_content_summariesonly`
count min(_time) as firstTime
max(_time) as lastTime
from datamodel=Endpoint.Processes where
Processes.parent_process_name="WerMgr.exe"
(
Processes.process_integrity_level="System"
OR
Processes.user IN ("*$", "System")
)
by Processes.action Processes.dest Processes.parent_process_name Processes.parent_process_path
Processes.parent_process Processes.parent_process_id Processes.process_name
Processes.process_path Processes.process Processes.process_id Processes.process_hash
Processes.process_integrity_level Processes.user Processes.vendor_product
Stage 2: search
| `drop_dm_object_name(Processes)`
Stage 3: search
| `security_content_ctime(firstTime)`
Stage 4: search
| `security_content_ctime(lastTime)`
Stage 5: search
| `windows_wermgr_spawning_system_integrity_process_filter`
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
Processes.parent_process_name | eq |
| field:"parent_process_name" kind:eq |
Processes.process_integrity_level | eq |
| field:"IntegrityLevel" kind:eq |
Processes.user | in |
| field:"user" kind:in |