Recursive file deletion or secure-overwrite command line
Detects the command lines MITRE's AN0411 names for data destruction — recursive quiet deletes, cipher's free-space wipe, SDelete overwrites and forced recursive Remove-Item. Every selection matches on `CommandLine` alone so the rule is a single-field OR that all backends render, and the flag combinations use `contains|all` because operators reorder switches freely. The analytic's actual discriminator is volume — MITRE's VolumeThreshold and TimeWindow knobs count unique files destroyed by one process — which Sigma cannot express, so this rule fires on a single destructive invocation and the burst has to be judged by the analyst or a downstream aggregation. UNVERIFIED AS AUTHORED — derived from MITRE ATT&CK DET0146, not hand-written and not tested by its author. Any lab result is on this rule's own page.Full descriptionShow less
The detection
The 4 SIEM queries below are previews produced by Siemphony’s own translator, not pySigma, and none has been executed against a real backend — review before you deploy.
detection.yml
title: Recursive file deletion or secure-overwrite command lineid: 418d91f8-a952-46d8-b5ce-ecafe7b851dfstatus: experimentaldescription: | Detects the command lines MITRE's AN0411 names for data destruction — recursive quiet deletes, cipher's free-space wipe, SDelete overwrites and forced recursive Remove-Item. Every selection matches on `CommandLine` alone so the rule is a single-field OR that all backends render, and the flag combinations use `contains|all` because operators reorder switches freely. The analytic's actual discriminator is volume — MITRE's VolumeThreshold and TimeWindow knobs count unique files destroyed by one process — which Sigma cannot express, so this rule fires on a single destructive invocation and the burst has to be judged by the analyst or a downstream aggregation. UNVERIFIED AS AUTHORED — derived from MITRE ATT&CK DET0146, not hand-written and not tested by its author. Any lab result is on this rule's own page.references: - https://attack.mitre.org/techniques/T1485 - https://attack.mitre.org/detectionstrategies/DET0146author: Siemphony pipeline (machine-derived from MITRE ATT&CK v19.2)date: 2026-08-16tags: - attack.impact - attack.t1485logsource: category: process_creation product: windowsdetection: selection_del: CommandLine|contains|all: - 'del ' - '/s' - '/q' selection_rmdir: CommandLine|contains|all: - 'rmdir ' - '/s' - '/q' selection_cipher_wipe: CommandLine|contains|all: - 'cipher' - '/w' selection_sdelete: CommandLine|contains: - 'sdelete.exe' - 'sdelete64.exe' selection_powershell_purge: CommandLine|contains|all: - 'Remove-Item' - '-Recurse' - '-Force' condition: 1 of selection*falsepositives: - "Build, packaging and deployment scripts that clear an output directory with \\\"rmdir /s /q\\\" or \\\"Remove-Item -Recurse -Force\\\" on every run. These are the highest-volume match by a wide margin and are best separated by the TargetFilename thinking behind MITRE's tuning knob — scope the path, since a build tree is not %System32%, Documents or a database directory." - "Disk-hygiene and decommissioning routines — \\\"cipher /w\\\" run by an approved sanitisation job before a machine is reimaged or returned, and SDelete used by administrators to shred a specific file. Both are genuine secure-overwrite activity, which is why ProcessCommandLine alone cannot separate them from a wiper; the operator identity and the scheduled window are what distinguish them." - "Installer and uninstaller cleanup, which routinely issues quiet recursive deletes against %TEMP% and its own program directory during a normal software servicing window." - "Log and cache rotation tasks that call \\\"forfiles\\\" or a cmd one-liner ending in \\\"del /s /q\\\" against an application log directory on a fixed schedule."level: mediumSentinel · KQL
Run this as a search.
DeviceProcessEvents| where ((ProcessCommandLine contains "del " and ProcessCommandLine contains "/s" and ProcessCommandLine contains "/q") or (ProcessCommandLine contains "rmdir " and ProcessCommandLine contains "/s" and ProcessCommandLine contains "/q") or (ProcessCommandLine contains "cipher" and ProcessCommandLine contains "/w") or (ProcessCommandLine contains "sdelete.exe" or ProcessCommandLine contains "sdelete64.exe") or (ProcessCommandLine contains "Remove-Item" and ProcessCommandLine contains "-Recurse" and ProcessCommandLine contains "-Force"))
Splunk · SPL
Run this as a search.
index=* ((CommandLine="*del *" AND CommandLine="*/s*" AND CommandLine="*/q*") OR (CommandLine="*rmdir *" AND CommandLine="*/s*" AND CommandLine="*/q*") OR (CommandLine="*cipher*" AND CommandLine="*/w*") OR (CommandLine="*sdelete.exe*" OR CommandLine="*sdelete64.exe*") OR (CommandLine="*Remove-Item*" AND CommandLine="*-Recurse*" AND CommandLine="*-Force*"))Elastic · ES|QL
Run this as a search.
FROM logs-*| WHERE ((TO_LOWER(process.command_line) LIKE "*del *" AND TO_LOWER(process.command_line) LIKE "*/s*" AND TO_LOWER(process.command_line) LIKE "*/q*") OR (TO_LOWER(process.command_line) LIKE "*rmdir *" AND TO_LOWER(process.command_line) LIKE "*/s*" AND TO_LOWER(process.command_line) LIKE "*/q*") OR (TO_LOWER(process.command_line) LIKE "*cipher*" AND TO_LOWER(process.command_line) LIKE "*/w*") OR (TO_LOWER(process.command_line) LIKE "*sdelete.exe*" OR TO_LOWER(process.command_line) LIKE "*sdelete64.exe*") OR (TO_LOWER(process.command_line) LIKE "*remove-item*" AND TO_LOWER(process.command_line) LIKE "*-recurse*" AND TO_LOWER(process.command_line) LIKE "*-force*"))
Wazuh · XML rule
Deploy to your manager — this is a rule, not a search.
<group name="sigma,windows,process_creation,"> <!-- Rule ids must be unique on your manager; 100000+ is the user range. --> <rule id="100000" level="7"> <!-- Set <if_sid> to the decoder/base rule for windows so this only evaluates relevant events. --> <field name="CommandLine" type="pcre2">(?i)((?=.*(?:del ))(?=.*(?:/s))(?=.*(?:/q)).*|(?=.*(?:rmdir ))(?=.*(?:/s))(?=.*(?:/q)).*|(?=.*(?:cipher))(?=.*(?:/w)).*|(sdelete\.exe|sdelete64\.exe)|(?=.*(?:Remove-Item))(?=.*(?:-Recurse))(?=.*(?:-Force)).*)</field> <description>Recursive file deletion or secure-overwrite command line</description> <mitre> <id>T1485</id> </mitre> </rule></group>
Verdicts · reactions · comments
Community
Verdicts from engineers who actually deployed it, and the conversation around it.
Nobody has run this in a real environment and said what happened.
Verdicts from engineers who deployed it
0 castNo verdicts reported yet. The first one is worth more than the tenth — say what you ran it against.
Log in to report a verdict.
Log in to join the discussion.
No comments yet. Someone who deploys this will have something to say about it.