Detection rules › Splunk

Windows Data Destruction Recursive Exec Files Deletion

Status
production
Severity
medium
Group by
action, dest, dvc, signature, signature_id, user, user_id, vendor_product
Author
Teoderick Contreras, Splunk, Steven Dick
Source
github.com/splunk/security_content

The following analytic identifies a suspicious process that is recursively deleting executable files on a compromised host. It leverages Sysmon Event Codes 23 and 26 to detect this activity by monitoring for a high volume of deletions or overwrites of files with extensions like .exe, .sys, and .dll. This behavior is significant as it is commonly associated with destructive malware such as CaddyWiper, DoubleZero, and SwiftSlicer, which aim to make file recovery impossible. If confirmed malicious, this activity could lead to significant data loss and system instability, severely impacting business operations.

Known false positives

  • The uninstallation of a large software application or the use of cleanmgr.exe may trigger this detection. A filter is necessary to reduce false positives.

MITRE ATT&CK coverage

TacticTechniques
Impact

Telemetry coverage

Rule body

name: Windows Data Destruction Recursive Exec Files Deletion
id: 3596a799-6320-4a2f-8772-a9e98ddb2960
version: 13
creation_date: '2023-02-03'
modification_date: '2026-05-13'
author: Teoderick Contreras, Splunk, Steven Dick
status: production
type: TTP
description: The following analytic identifies a suspicious process that is recursively deleting executable files on a compromised host. It leverages Sysmon Event Codes 23 and 26 to detect this activity by monitoring for a high volume of deletions or overwrites of files with extensions like .exe, .sys, and .dll. This behavior is significant as it is commonly associated with destructive malware such as CaddyWiper, DoubleZero, and SwiftSlicer, which aim to make file recovery impossible. If confirmed malicious, this activity could lead to significant data loss and system instability, severely impacting business operations.
data_source:
    - Sysmon EventID 23
    - Sysmon EventID 26
search: |-
    `sysmon` EventCode IN ("23","26") TargetFilename IN ("*.exe", "*.sys", "*.dll")
      | bin _time span=2m
      | stats count min(_time) as firstTime, max(_time) as lastTime values(file_path) as file_path values(file_hash) as file_hash values(file_name) as file_name values(file_modify_time) as file_modify_time values(process_name) as process_name values(process_path) as process_path values(process_guid) as process_guid values(process_id) as process_id values(process_exec) as process_exec
        BY action dest dvc
           signature signature_id user
           user_id vendor_product
      | where count >=100
      | `security_content_ctime(firstTime)`
      | `security_content_ctime(lastTime)`
      | `windows_data_destruction_recursive_exec_files_deletion_filter`
how_to_implement: To successfully implement this search, you need to ingest logs that include the process name, TargetFilename, and ProcessID executions from your endpoints. If you are using Sysmon, ensure you have at least version 2.0 of the Sysmon TA installed.
known_false_positives: The uninstallation of a large software application or the use of cleanmgr.exe may trigger this detection. A filter is necessary to reduce false positives.
references:
    - https://www.welivesecurity.com/2023/01/27/swiftslicer-new-destructive-wiper-malware-ukraine/
finding:
    title: The process $process_name$ has removed a significant quantity of executable files, totaling [$count$], from the destination $dest$.
    entity:
        field: user
        type: user
        score: 50
intermediate_findings:
    entities:
        - field: dest
          type: system
          score: 50
          message: The process $process_name$ has removed a significant quantity of executable files, totaling [$count$], from the destination $dest$.
analytic_story:
    - Swift Slicer
    - Data Destruction
    - Handala Wiper
    - Disk Wiper
    - Void Manticore
asset_type: Endpoint
mitre_attack_id:
    - T1485
product:
    - Splunk Enterprise
    - Splunk Enterprise Security
    - Splunk Cloud
category: endpoint
security_domain: endpoint

Stages and Predicates

Stage 1: search

`sysmon` EventCode IN ("23","26") TargetFilename IN ("*.exe", "*.sys", "*.dll")

Stage 2: bucket

| bin _time span=2m

Stage 3: stats

| stats count min(_time) as firstTime, max(_time) as lastTime values(file_path) as file_path values(file_hash) as file_hash values(file_name) as file_name values(file_modify_time) as file_modify_time values(process_name) as process_name values(process_path) as process_path values(process_guid) as process_guid values(process_id) as process_id values(process_exec) as process_exec
    BY action dest dvc
       signature signature_id user
       user_id vendor_product

Stage 4: where

| where count >=100

Stage 5: search

| `security_content_ctime(firstTime)`

Stage 6: search

| `security_content_ctime(lastTime)`

Stage 7: search

| `windows_data_destruction_recursive_exec_files_deletion_filter`

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
EventCodein
  • "23"
  • "26"
field:"EventID" kind:in
TargetFilenamein
  • "*.dll" corpus 24 (sigma 24)
  • "*.exe" corpus 21 (sigma 20, splunk 1)
  • "*.sys" corpus 6 (sigma 6)
field:"TargetFilename" kind:in
countge
  • 100 corpus 2 (splunk 2)
field:"count" kind:ge value:"100"