Potential Evasion via Boot Time Removal Tool

Last updated 6 days ago on 2026-08-21
Created 6 days ago on 2026-08-21

About

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.
Tags
Domain: EndpointOS: WindowsUse Case: Threat DetectionTactic: Defense EvasionTactic: PersistenceData Source: Elastic DefendLanguage: esql
Severity
high
Risk Score
73
MITRE ATT&CK™

Defense Evasion (TA0005)(external, opens in a new tab or window)

Persistence (TA0003)(external, opens in a new tab or window)

License
Elastic License v2(external, opens in a new tab or window)

Definition

Integration Pack
Prebuilt Security Detection Rules
Related Integrations

endpoint(external, opens in a new tab or window)

Query
text code block:
from logs-endpoint.events.file-*, logs-endpoint.events.registry-* metadata _id, _version, _index | where host.os.type == "windows" and process.pid != 4 and not ( user.id == "S-1-5-18" and to_lower(process.executable) like """?:\\windows\\system32\\mrt.exe""" and process.code_signature.subject_name in ("Microsoft Windows", "Microsoft Corporation") and process.code_signature.trusted == true ) and ( ( event.category == "file" and event.type == "creation" and ends_with(to_lower(file.name), ":changelist") ) or ( event.category == "registry" and event.type == "change" and to_lower(registry.path) like """*\\system\\*controlset*\\services\\*\\args""" and to_lower(registry.data.strings) like "*:changelist" ) ) | keep @timestamp, host.id, host.name, user.id, user.name, process.pid, process.name, process.executable, process.code_signature.subject_name, event.category, event.type, file.path, file.name, file.size, registry.path, registry.value, registry.data.strings, data_stream.namespace, _id, _version, _index | limit 100

Install detection rules in Elastic Security

Detect Potential Evasion via Boot Time Removal Tool in the Elastic Security detection engine by installing this rule into your Elastic Stack.

To setup this rule, check out the installation guide for Prebuilt Security Detection Rules(external, opens in a new tab or window).