Suspicious Print Spooler File Deletion
Detects deletion of print driver files by an unusual process. This may indicate a clean up attempt post successful privilege escalation via Print Spooler service related vulnerabilities.
Elastic rule (View on GitHub)
1[metadata]
2creation_date = "2021/07/06"
3integration = ["endpoint", "windows"]
4maturity = "production"
5min_stack_comments = "New fields added: required_fields, related_integrations, setup"
6min_stack_version = "8.3.0"
7updated_date = "2023/06/22"
8
9[rule]
10author = ["Elastic"]
11description = """
12Detects deletion of print driver files by an unusual process. This may indicate a clean up attempt post successful
13privilege escalation via Print Spooler service related vulnerabilities.
14"""
15false_positives = [
16 """
17 Uninstall or manual deletion of a legitimate printing driver files. Verify the printer file metadata such as
18 manufacturer and signature information.
19 """,
20]
21from = "now-9m"
22index = ["winlogbeat-*", "logs-endpoint.events.*", "logs-windows.*", "endgame-*"]
23language = "eql"
24license = "Elastic License v2"
25name = "Suspicious Print Spooler File Deletion"
26note = """## Setup
27
28If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work.
29"""
30references = ["https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-34527"]
31risk_score = 47
32rule_id = "c4818812-d44f-47be-aaef-4cfb2f9cc799"
33severity = "medium"
34tags = ["Domain: Endpoint", "OS: Windows", "Use Case: Threat Detection", "Tactic: Privilege Escalation", "Data Source: Elastic Endgame", "Use Case: Vulnerability", "Data Source: Elastic Defend"]
35timestamp_override = "event.ingested"
36type = "eql"
37
38query = '''
39file where host.os.type == "windows" and event.type : "deletion" and
40 not process.name : ("spoolsv.exe", "dllhost.exe", "explorer.exe") and
41 file.path : "?:\\Windows\\System32\\spool\\drivers\\x64\\3\\*.dll"
42'''
43
44
45[[rule.threat]]
46framework = "MITRE ATT&CK"
47[[rule.threat.technique]]
48id = "T1068"
49name = "Exploitation for Privilege Escalation"
50reference = "https://attack.mitre.org/techniques/T1068/"
51
52
53[rule.threat.tactic]
54id = "TA0004"
55name = "Privilege Escalation"
56reference = "https://attack.mitre.org/tactics/TA0004/"
Setup
If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define event.ingested
and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate event.ingested
to @timestamp for this rule to work.
References
Related rules
- Suspicious Print Spooler Point and Print DLL
- Suspicious Print Spooler SPL File Created
- Suspicious PrintSpooler Service Executable File Creation
- Bypass UAC via Event Viewer
- Disabling User Account Control via Registry Modification