Detection rules › Splunk
Windows Downdate Registry Activity
Detects the setting of a pending.xml file associated with the Windows Downdate attack which forces a Windows downgrade to enable exploitation. Looks for uses of a pending.xml outside of typical locations.
Known false positives
- Legitimate system updates or rollback processes may create or modify pending.xml files in non-standard locations. Verify with IT change management to reduce false alerts.
MITRE ATT&CK coverage
| Tactic | Techniques |
|---|---|
| Persistence | |
| Defense Impairment |
Telemetry coverage
Rule body
name: Windows Downdate Registry Activity
id: d984fca1-ba3a-4f89-aa58-800e235fdf53
version: 2
creation_date: '2022-09-08'
modification_date: '2026-05-13'
author: Raven Tait, Splunk
status: production
type: Anomaly
description: |-
Detects the setting of a pending.xml file associated with the Windows Downdate attack which forces a Windows downgrade to enable exploitation.
Looks for uses of a pending.xml outside of typical locations.
data_source:
- Sysmon EventID 12
- Sysmon EventID 13
- Sysmon EventID 14
search: |-
`sysmon`
EventID IN (
12,
13,
14
)
TargetObject IN (
"*PoqexecCmdline",
"*COMPONENTS\\PendingXmlIdentifier"
)
NOT ProcessPath="*:\\Windows\\WinSxS\\*"
| fillnull
| stats count min(_time) as firstTime
max(_time) as lastTime
by EventID TargetObject ProcessPath Computer action process_guid process_id
registry_hive registry_path registry_key_name registry_value_data registry_value_name
status user vendor_product
| rename Computer as dest
| `security_content_ctime(firstTime)`
| `security_content_ctime(lastTime)`
| `windows_downdate_registry_activity_filter`
how_to_implement: The detection is based on data that originates from Endpoint Detection and Response (EDR) agents. These agents are designed to provide security-related telemetry from the endpoints where the agent is installed. To implement this search, you must ingest logs that contain the process GUID, process name, and parent process. Additionally, you must ingest complete command-line executions. These logs must be processed using the appropriate Splunk Technology Add-ons that are specific to the EDR product. The logs must also be mapped to the `Processes` node of the `Endpoint` data model. Use the Splunk Common Information Model (CIM) to normalize the field names and speed up the data modeling process.
known_false_positives: Legitimate system updates or rollback processes may create or modify pending.xml files in non-standard locations. Verify with IT change management to reduce false alerts.
references:
- https://www.safebreach.com/blog/downgrade-attacks-using-windows-updates/
intermediate_findings:
entities:
- field: dest
type: system
score: 50
message: Potential Downdate registry activity observed on $dest$ via $TargetObject$.
analytic_story:
- Windows Persistence Techniques
asset_type: Endpoint
mitre_attack_id:
- T1112
- T1689
product:
- Splunk Enterprise
- Splunk Enterprise Security
- Splunk Cloud
category: endpoint
security_domain: endpoint
Stages and Predicates
Stage 1: search
`sysmon`
EventID IN (
12,
13,
14
)
TargetObject IN (
"*PoqexecCmdline",
"*COMPONENTS\\PendingXmlIdentifier"
)
NOT ProcessPath="*:\\Windows\\WinSxS\\*"
Stage 2: fillnull
| fillnull
Stage 3: stats
| stats count min(_time) as firstTime
max(_time) as lastTime
by EventID TargetObject ProcessPath Computer action process_guid process_id
registry_hive registry_path registry_key_name registry_value_data registry_value_name
status user vendor_product
Stage 4: rename
| rename Computer as dest
Stage 5: search
| `security_content_ctime(firstTime)`
Stage 6: search
| `security_content_ctime(lastTime)`
Stage 7: search
| `windows_downdate_registry_activity_filter`
Exclusions
The rule actively suppresses these predicates.
| Field | Kind | Excluded values | Search |
|---|---|---|---|
ProcessPath | eq | "*:\\Windows\\WinSxS\\*" | excludes:ProcessPath |
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
EventID | in |
| field:"EventID" kind:in |
TargetObject | in |
| field:"TargetObject" kind:in |