Potential Evasion via Boot Time Removal Tool
Identifies creation of a ":changelist" NTFS alternate data stream or a Windows service Args registry value pointing to a ":changelist" path. Microsoft Defender's Boot-Time Removal (BTR.sys) driver reads an RC4-encrypted transaction blob from a driver ADS named ":changelist", referenced by HKLM\SYSTEM*ControlSet*\Services*\Args. Adversaries can reproduce this staging outside Defender to abuse BTR.sys as a signed kernel primitive for arbitrary file and registry operations. This rule focuses on non-System writers and excludes Microsoft-signed MRT.exe running as SYSTEM, which may perform related remediation staging.
Elastic rule (View on GitHub)
1[metadata]
2creation_date = "2026/08/21"
3integration = ["endpoint"]
4maturity = "production"
5updated_date = "2026/08/21"
6
7[rule]
8author = ["Elastic"]
9description = """
10Identifies creation of a ":changelist" NTFS alternate data stream or a Windows service Args registry value pointing to
11a ":changelist" path. Microsoft Defender's Boot-Time Removal (BTR.sys) driver reads an RC4-encrypted transaction blob
12from a driver ADS named ":changelist", referenced by HKLM\\SYSTEM\\*ControlSet*\\Services\\*\\Args. Adversaries can
13reproduce this staging outside Defender to abuse BTR.sys as a signed kernel primitive for arbitrary file and registry
14operations. This rule focuses on non-System writers and excludes Microsoft-signed MRT.exe running as SYSTEM, which may
15perform related remediation staging.
16"""
17from = "now-9m"
18language = "esql"
19license = "Elastic License v2"
20name = "Potential Evasion via Boot Time Removal Tool"
21note = """## Triage and analysis
22
23### Investigating Potential Evasion via Boot Time Removal Tool
24
25Windows Defender's Boot-Time Removal driver (`BTR.sys`) is instructed via an encrypted configuration stored in an
26Alternate Data Stream named `:changelist` on a `.sys` image. The service `Args` value under
27`HKLM\\SYSTEM\\*ControlSet*\\Services\\<name>\\Args` points at that ADS path. Check Point Research (BTR Reforged)
28showed that the same staging can be performed by non-Defender tooling (for example BTR_CLI) to drive Ring-0 file and
29registry actions, including neutralization of security products during early boot.
30
31#### Possible investigation steps
32
33- Identify whether the alert is a file ADS creation or a service `Args` registry write using `event.category`,
34 `file.name` / `file.path`, and `registry.path` / `registry.data.strings`.
35- Review `process.executable`, `process.name`, `process.pid`, `process.parent.executable`, and `user.id` to determine
36 whether a Defender component, MRT, or an unexpected user-mode binary staged the `:changelist` artifact.
37- For file events, inspect the base `.sys` path (strip `:changelist`), size, hash, and code signature. Confirm whether
38 the driver was recently dropped under a user-writable path (Downloads, Temp, Desktop) versus a Defender-managed path.
39- For registry events, note the service key name under `Services\\*` and check sibling values (`ImagePath`, `Type`,
40 `Group`). Abuse tooling often sets `Group` to `Boot Bus Extender` and may create the service via direct registry
41 writes / `NtLoadDriver` without a corresponding SCM service-install event (7045).
42- Hunt on the same `host.id` for related activity: creation of `*.sys:*.dat` feedback ADS, load of a Microsoft-signed
43 driver matching BTR, creation/deletion of `\\\\SystemRoot\\\\Temp\\\\BootClean.log` by PID 4, and deletions of security
44 binaries attributed to System.
45- Correlate with other alerts for the same `user.id` and `host.id` in the prior 48 hours for privilege escalation,
46 driver load, or Defender tampering.
47
48### False positive analysis
49
50- Legitimate Defender or MRT reboot remediation may create `:changelist` ADS and related service Args values. This rule
51 excludes PID 4 and Microsoft-signed `MRT.exe` as SYSTEM; unsigned or differently signed `MRT.exe` still alerts. Rare
52 Defender paths (for example `MsMpEng.exe`) may still match and should be validated before exceptioning.
53- Security research labs intentionally exercising BTR_CLI or similar PoCs will generate true-positive-looking events;
54 confirm host cohort and change windows.
55
56### Response and remediation
57
58- If activity is unexplained: isolate the host, preserve the `.sys` file and `:changelist` stream, export the service
59 registry key, and capture the staging process tree before cleanup.
60- Search the estate for the same `file.name` / ADS pattern, service `Args` values containing `:changelist`, and related
61 driver hashes.
62- Remove unauthorized service keys and staged drivers, restore any deleted security components from known-good media,
63 and rotate credentials for accounts that held `SeLoadDriverPrivilege` on the host.
64- Restrict and monitor assignment/use of `SeLoadDriverPrivilege`; treat signed remediation drivers as LOLDrivers that
65 require lineage and ADS context monitoring, not signature blocking alone.
66"""
67
68setup = """## Setup
69
70This rule is designed for data generated by [Elastic Defend](https://www.elastic.co/security/endpoint-security), which provides native endpoint detection and response, along with event enrichments designed to work with our detection rules.
71
72Setup instructions: https://ela.st/install-elastic-defend
73"""
74
75references = [
76 "https://research.checkpoint.com/2026/btr-reforged-weaponizing-defenders-remediation-driver-as-a-kernel-operation-primitive/",
77 "https://github.com/Dump-GUY/BTR_CLI",
78]
79risk_score = 73
80rule_id = "942c8f59-f01c-4dc0-a05f-2f5bba836ad8"
81severity = "high"
82tags = [
83 "Domain: Endpoint",
84 "OS: Windows",
85 "Use Case: Threat Detection",
86 "Tactic: Defense Evasion",
87 "Tactic: Persistence",
88 "Resources: Investigation Guide",
89 "Data Source: Elastic Defend",
90]
91timestamp_override = "event.ingested"
92type = "esql"
93
94query = '''
95from logs-endpoint.events.file-*, logs-endpoint.events.registry-* metadata _id, _version, _index
96| where host.os.type == "windows"
97 and process.pid != 4
98 and not (
99 user.id == "S-1-5-18"
100 and to_lower(process.executable) like """?:\\windows\\system32\\mrt.exe"""
101 and process.code_signature.subject_name in ("Microsoft Windows", "Microsoft Corporation")
102 and process.code_signature.trusted == true
103 )
104 and (
105 (
106 event.category == "file"
107 and event.type == "creation"
108 and ends_with(to_lower(file.name), ":changelist")
109 )
110 or (
111 event.category == "registry"
112 and event.type == "change"
113 and to_lower(registry.path) like """*\\system\\*controlset*\\services\\*\\args"""
114 and to_lower(registry.data.strings) like "*:changelist"
115 )
116 )
117| keep
118 @timestamp,
119 host.id,
120 host.name,
121 user.id,
122 user.name,
123 process.pid,
124 process.name,
125 process.executable,
126 process.code_signature.subject_name,
127 event.category,
128 event.type,
129 file.path,
130 file.name,
131 file.size,
132 registry.path,
133 registry.value,
134 registry.data.strings,
135 data_stream.namespace,
136 _id,
137 _version,
138 _index
139| limit 100
140'''
141
142[rule.investigation_fields]
143field_names = [
144 "@timestamp",
145 "host.id",
146 "host.name",
147 "user.id",
148 "user.name",
149 "process.pid",
150 "process.name",
151 "process.executable",
152 "process.code_signature.subject_name",
153 "event.category",
154 "file.path",
155 "file.name",
156 "file.size",
157 "registry.path",
158 "registry.value",
159 "registry.data.strings",
160]
161
162[[rule.threat]]
163framework = "MITRE ATT&CK"
164
165[[rule.threat.technique]]
166id = "T1564"
167name = "Hide Artifacts"
168reference = "https://attack.mitre.org/techniques/T1564/"
169
170[[rule.threat.technique.subtechnique]]
171id = "T1564.004"
172name = "NTFS File Attributes"
173reference = "https://attack.mitre.org/techniques/T1564/004/"
174
175[[rule.threat.technique]]
176id = "T1112"
177name = "Modify Registry"
178reference = "https://attack.mitre.org/techniques/T1112/"
179
180[[rule.threat.technique]]
181id = "T1562"
182name = "Impair Defenses"
183reference = "https://attack.mitre.org/techniques/T1562/"
184
185[[rule.threat.technique.subtechnique]]
186id = "T1562.001"
187name = "Disable or Modify Tools"
188reference = "https://attack.mitre.org/techniques/T1562/001/"
189
190[rule.threat.tactic]
191id = "TA0005"
192name = "Defense Evasion"
193reference = "https://attack.mitre.org/tactics/TA0005/"
194
195[[rule.threat]]
196framework = "MITRE ATT&CK"
197
198[[rule.threat.technique]]
199id = "T1543"
200name = "Create or Modify System Process"
201reference = "https://attack.mitre.org/techniques/T1543/"
202
203[[rule.threat.technique.subtechnique]]
204id = "T1543.003"
205name = "Windows Service"
206reference = "https://attack.mitre.org/techniques/T1543/003/"
207
208[rule.threat.tactic]
209id = "TA0003"
210name = "Persistence"
211reference = "https://attack.mitre.org/tactics/TA0003/"
Triage and analysis
Investigating Potential Evasion via Boot Time Removal Tool
Windows Defender's Boot-Time Removal driver (BTR.sys) is instructed via an encrypted configuration stored in an
Alternate Data Stream named :changelist on a .sys image. The service Args value under
HKLM\SYSTEM\*ControlSet*\Services\<name>\Args points at that ADS path. Check Point Research (BTR Reforged)
showed that the same staging can be performed by non-Defender tooling (for example BTR_CLI) to drive Ring-0 file and
registry actions, including neutralization of security products during early boot.
Possible investigation steps
- Identify whether the alert is a file ADS creation or a service
Argsregistry write usingevent.category,file.name/file.path, andregistry.path/registry.data.strings. - Review
process.executable,process.name,process.pid,process.parent.executable, anduser.idto determine whether a Defender component, MRT, or an unexpected user-mode binary staged the:changelistartifact. - For file events, inspect the base
.syspath (strip:changelist), size, hash, and code signature. Confirm whether the driver was recently dropped under a user-writable path (Downloads, Temp, Desktop) versus a Defender-managed path. - For registry events, note the service key name under
Services\*and check sibling values (ImagePath,Type,Group). Abuse tooling often setsGrouptoBoot Bus Extenderand may create the service via direct registry writes /NtLoadDriverwithout a corresponding SCM service-install event (7045). - Hunt on the same
host.idfor related activity: creation of*.sys:*.datfeedback ADS, load of a Microsoft-signed driver matching BTR, creation/deletion of\\SystemRoot\\Temp\\BootClean.logby PID 4, and deletions of security binaries attributed to System. - Correlate with other alerts for the same
user.idandhost.idin the prior 48 hours for privilege escalation, driver load, or Defender tampering.
False positive analysis
- Legitimate Defender or MRT reboot remediation may create
:changelistADS and related service Args values. This rule excludes PID 4 and Microsoft-signedMRT.exeas SYSTEM; unsigned or differently signedMRT.exestill alerts. Rare Defender paths (for exampleMsMpEng.exe) may still match and should be validated before exceptioning. - Security research labs intentionally exercising BTR_CLI or similar PoCs will generate true-positive-looking events; confirm host cohort and change windows.
Response and remediation
- If activity is unexplained: isolate the host, preserve the
.sysfile and:changeliststream, export the service registry key, and capture the staging process tree before cleanup. - Search the estate for the same
file.name/ ADS pattern, serviceArgsvalues containing:changelist, and related driver hashes. - Remove unauthorized service keys and staged drivers, restore any deleted security components from known-good media,
and rotate credentials for accounts that held
SeLoadDriverPrivilegeon the host. - Restrict and monitor assignment/use of
SeLoadDriverPrivilege; treat signed remediation drivers as LOLDrivers that require lineage and ADS context monitoring, not signature blocking alone.
References
Related rules
- Component Object Model Hijacking
- Unusual Process Modifying GenAI Configuration File
- Potential Masquerading as System32 DLL
- Adding Hidden File Attribute via Attrib
- Image File Execution Options Injection