Detection rules › Elastic
File or Directory Deletion Command
This rule identifies the execution of commands that can be used to delete files and directories. Adversaries may delete files and directories on a host system, such as logs, browser history, or malware.
MITRE ATT&CK coverage
| Tactic | Techniques |
|---|---|
| Persistence | |
| Stealth | |
| Defense Impairment |
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
[metadata]
creation_date = "2023/07/13"
integration = ["endpoint"]
maturity = "production"
updated_date = "2026/03/24"
[rule]
author = ["Elastic"]
building_block_type = "default"
description = """
This rule identifies the execution of commands that can be used to delete files and directories. Adversaries may delete
files and directories on a host system, such as logs, browser history, or malware.
"""
from = "now-119m"
index = ["logs-endpoint.events.process-*"]
interval = "60m"
language = "eql"
license = "Elastic License v2"
name = "File or Directory Deletion Command"
risk_score = 21
rule_id = "5919988c-29e1-4908-83aa-1f087a838f63"
severity = "low"
tags = [
"Domain: Endpoint",
"OS: Windows",
"Use Case: Threat Detection",
"Tactic: Defense Evasion",
"Rule Type: BBR",
"Data Source: Elastic Defend",
]
timestamp_override = "event.ingested"
type = "eql"
query = '''
process where host.os.type == "windows" and event.type == "start" and
(
((process.name : "rundll32.exe" or ?process.pe.original_file_name : "RUNDLL32.EXE") and process.args : "*InetCpl.cpl,Clear*") or
((process.name : "reg.exe" or ?process.pe.original_file_name : "reg.exe") and process.args : "delete") or
(
(process.name : "cmd.exe" or ?process.pe.original_file_name : "Cmd.Exe") and
process.args : ("*rmdir*", "*rm *", "rm", "*del *", "del", "*erase *", "erase") and
not process.args : (
"*\\AppData\\Local\\Microsoft\\OneDrive\\*",
"*\\AppData\\Local\\Temp\\DockerDesktop\\*",
"*\\AppData\\Local\\Temp\\Report.*",
"*\\AppData\\Local\\Temp\\*.PackageExtraction"
)
) or
((process.name : "powershell.exe" or ?process.pe.original_file_name : "PowerShell.EXE") and
process.args : ("*rmdir", "rm", "rd", "*Remove-Item*", "del", "*]::Delete(*"))
) and not user.id : "S-1-5-18"
'''
[[rule.threat]]
framework = "MITRE ATT&CK"
[[rule.threat.technique]]
id = "T1070"
name = "Indicator Removal"
reference = "https://attack.mitre.org/techniques/T1070/"
[[rule.threat.technique.subtechnique]]
id = "T1070.004"
name = "File Deletion"
reference = "https://attack.mitre.org/techniques/T1070/004/"
[[rule.threat.technique]]
id = "T1112"
name = "Modify Registry"
reference = "https://attack.mitre.org/techniques/T1112/"
[[rule.threat.technique]]
id = "T1218"
name = "System Binary Proxy Execution"
reference = "https://attack.mitre.org/techniques/T1218/"
[[rule.threat.technique.subtechnique]]
id = "T1218.011"
name = "Rundll32"
reference = "https://attack.mitre.org/techniques/T1218/011/"
[rule.threat.tactic]
id = "TA0005"
name = "Defense Evasion"
reference = "https://attack.mitre.org/tactics/TA0005/"
Stages and Predicates
Stage 1: process
process where host.os.type == "windows" and event.type == "start" and
(
((process.name : "rundll32.exe" or ?process.pe.original_file_name : "RUNDLL32.EXE") and process.args : "*InetCpl.cpl,Clear*") or
((process.name : "reg.exe" or ?process.pe.original_file_name : "reg.exe") and process.args : "delete") or
(
(process.name : "cmd.exe" or ?process.pe.original_file_name : "Cmd.Exe") and
process.args : ("*rmdir*", "*rm *", "rm", "*del *", "del", "*erase *", "erase") and
not process.args : (
"*\\AppData\\Local\\Microsoft\\OneDrive\\*",
"*\\AppData\\Local\\Temp\\DockerDesktop\\*",
"*\\AppData\\Local\\Temp\\Report.*",
"*\\AppData\\Local\\Temp\\*.PackageExtraction"
)
) or
((process.name : "powershell.exe" or ?process.pe.original_file_name : "PowerShell.EXE") and
process.args : ("*rmdir", "rm", "rd", "*Remove-Item*", "del", "*]::Delete(*"))
) and not user.id : "S-1-5-18"
Exclusions
The rule actively suppresses these predicates.
| Field | Kind | Excluded values | Search |
|---|---|---|---|
user.id | eq | S-1-5-18 | excludes:user.id field:"user.id" value:"S-1-5-18" |
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
event.type | eq |
| field:"event.type" kind:eq value:"start" |
process.args | wildcard |
| field:"process.args" kind:wildcard |
process.name | wildcard |
| field:"process_name" kind:wildcard |
process.pe.original_file_name | wildcard |
| field:"OriginalFileName" kind:wildcard |