Persistence via TelemetryController Scheduled Task Hijack
Detects the successful hijack of Microsoft Compatibility Appraiser scheduled task to establish persistence with an integrity level of system.
Elastic rule (View on GitHub)
1[metadata]
2creation_date = "2020/08/17"
3integration = ["endpoint", "windows", "system"]
4maturity = "production"
5updated_date = "2024/05/21"
6
7[rule]
8author = ["Elastic"]
9description = """
10Detects the successful hijack of Microsoft Compatibility Appraiser scheduled task to establish persistence with an
11integrity level of system.
12"""
13from = "now-9m"
14index = [
15 "winlogbeat-*",
16 "logs-endpoint.events.process-*",
17 "logs-windows.*",
18 "endgame-*",
19 "logs-system.security*",
20]
21language = "eql"
22license = "Elastic License v2"
23name = "Persistence via TelemetryController Scheduled Task Hijack"
24references = ["https://www.trustedsec.com/blog/abusing-windows-telemetry-for-persistence"]
25risk_score = 73
26rule_id = "68921d85-d0dc-48b3-865f-43291ca2c4f2"
27setup = """## Setup
28
29If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2,
30events will not define `event.ingested` and default fallback for EQL rules was not added until version 8.2.
31Hence for this rule to work effectively, users will need to add a custom ingest pipeline to populate
32`event.ingested` to @timestamp.
33For more details on adding a custom ingest pipeline refer - https://www.elastic.co/guide/en/fleet/current/data-streams-pipeline-tutorial.html
34"""
35severity = "high"
36tags = [
37 "Domain: Endpoint",
38 "OS: Windows",
39 "Use Case: Threat Detection",
40 "Tactic: Persistence",
41 "Tactic: Privilege Escalation",
42 "Data Source: Elastic Endgame",
43 "Data Source: Elastic Defend",
44]
45timestamp_override = "event.ingested"
46type = "eql"
47
48query = '''
49process where host.os.type == "windows" and event.type == "start" and
50 process.parent.name : "CompatTelRunner.exe" and process.args : "-cv*" and
51 not process.name : ("conhost.exe",
52 "DeviceCensus.exe",
53 "CompatTelRunner.exe",
54 "DismHost.exe",
55 "rundll32.exe",
56 "powershell.exe")
57'''
58
59
60[[rule.threat]]
61framework = "MITRE ATT&CK"
62[[rule.threat.technique]]
63id = "T1053"
64name = "Scheduled Task/Job"
65reference = "https://attack.mitre.org/techniques/T1053/"
66[[rule.threat.technique.subtechnique]]
67id = "T1053.005"
68name = "Scheduled Task"
69reference = "https://attack.mitre.org/techniques/T1053/005/"
70
71
72[[rule.threat.technique]]
73id = "T1574"
74name = "Hijack Execution Flow"
75reference = "https://attack.mitre.org/techniques/T1574/"
76
77
78[rule.threat.tactic]
79id = "TA0003"
80name = "Persistence"
81reference = "https://attack.mitre.org/tactics/TA0003/"
82[[rule.threat]]
83framework = "MITRE ATT&CK"
84[[rule.threat.technique]]
85id = "T1053"
86name = "Scheduled Task/Job"
87reference = "https://attack.mitre.org/techniques/T1053/"
88[[rule.threat.technique.subtechnique]]
89id = "T1053.005"
90name = "Scheduled Task"
91reference = "https://attack.mitre.org/techniques/T1053/005/"
92
93
94[[rule.threat.technique]]
95id = "T1574"
96name = "Hijack Execution Flow"
97reference = "https://attack.mitre.org/techniques/T1574/"
98
99
100[rule.threat.tactic]
101id = "TA0004"
102name = "Privilege Escalation"
103reference = "https://attack.mitre.org/tactics/TA0004/"
References
Related rules
- Component Object Model Hijacking
- Persistence via PowerShell profile
- Persistence via Update Orchestrator Service Hijack
- Potential Persistence via Time Provider Modification
- Adding Hidden File Attribute via Attrib