Detection rules › Splunk

Windows Wermgr Alternate Data Stream in Temp Dir

Status
production
Severity
low
Group by
Contents, dest, dvc, file_hash, file_name, process_guid, process_id, process_name, signature, signature_id, target_filename, user_id, vendor_product
Author
Teoderick Contreras, Splunk
Source
github.com/splunk/security_content

The following analytic detects the wermgr.exe process creating an alternate stream in the temp directory. It leverages Sysmon EventID 15 to identify these actions. This activity is significant because wermgr.exe is typically associated with error reporting, not file creation. Such activity is significant as it may indicate RoguePlanet malware, which creates an alternate stream in the temp directory to execute malicious code. If confirmed malicious, this could lead to further malware infections, data exfiltration, or system compromise.

Known false positives

  • No false positives have been identified at this time.

MITRE ATT&CK coverage

Telemetry coverage

ProviderRecord / event type
SysmonEvent ID 15: FileCreateStreamHash

Rule body

name: Windows Wermgr Alternate Data Stream in Temp Dir
id: 65222e9b-9d0b-4bfe-8da1-199b98e1d44a
version: 1
creation_date: '2026-06-11'
modification_date: '2026-06-11'
author: Teoderick Contreras, Splunk
status: production
type: Anomaly
description: |-
    The following analytic detects the wermgr.exe process creating an alternate stream in the temp directory. It leverages Sysmon EventID 15 to identify these actions.
    This activity is significant because wermgr.exe is typically associated with error reporting, not file creation. Such activity is significant as it may indicate RoguePlanet malware, which creates an alternate stream in the temp directory to execute malicious code.
    If confirmed malicious, this could lead to further malware infections, data exfiltration, or system compromise.
data_source:
    - Sysmon EventID 15
search: |-
    `sysmon`
    EventCode=15
    TargetFilename = "*\\Temp\\*"
    TargetFilename = "*\\wermgr.exe:*"
    
    | stats count min(_time) as firstTime
                  max(_time) as lastTime
    by dest dvc file_hash file_name file_path process_exec
       process_guid process_id process_name process_path
       signature signature_id user_id vendor_product Contents Image
    
    | `security_content_ctime(firstTime)`
    | `security_content_ctime(lastTime)`
    | `windows_wermgr_alternate_data_stream_in_temp_dir_filter`
how_to_implement: |-
    To successfully implement this search, you need to be ingesting logs with the process name, parent process, and command-line executions from your endpoints. If you are using Sysmon, you must have at least version 6.0.4 of the Sysmon TA. Tune and filter known instances of wermgr.exe may be used.
known_false_positives: |-
    No false positives have been identified at this time.
references:
    - https://github.com/MSNightmare/RoguePlanet/tree/main
intermediate_findings:
    entities:
        - field: dest
          type: system
          score: 20
          message: A [$process_name$] created a wermgr.exe alternate stream in the temp directory on $dest$ by $user$
analytic_story:
    - RoguePlanet
asset_type: Endpoint
mitre_attack_id:
    - T1564.004
product:
    - Splunk Enterprise
    - Splunk Enterprise Security
    - Splunk Cloud
category: endpoint
security_domain: endpoint

Stages and Predicates

Stage 1: search

`sysmon`
EventCode=15
TargetFilename = "*\\Temp\\*"
TargetFilename = "*\\wermgr.exe:*"

Stage 2: stats

| stats count min(_time) as firstTime
              max(_time) as lastTime
by dest dvc file_hash file_name file_path process_exec
   process_guid process_id process_name process_path
   signature signature_id user_id vendor_product Contents Image

Stage 3: search

| `security_content_ctime(firstTime)`

Stage 4: search

| `security_content_ctime(lastTime)`

Stage 5: search

| `windows_wermgr_alternate_data_stream_in_temp_dir_filter`

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
EventCodeeq
  • 15 corpus 6 (splunk 6)
field:"EventID" kind:eq value:"15"
TargetFilenameeq
  • "*\\Temp\\*" corpus 5 (splunk 5)
  • "*\\wermgr.exe:*"
field:"TargetFilename" kind:eq