ETW Bypass - Blinding Windows Telemetry
What is ETW and Why it Matters
ETW Architecture
┌─────────────────────────────────────────────────────────────────────┐
│ ETW Architecture — Overview │
│ │
│ ┌────────────────────────────────────────────────────┐ │
│ │ KERNEL SPACE │ │
│ │ ┌─────────────────┐ ┌────────────────────────┐ │ │
│ │ │ ETW Kernel │ │ WMI / Security │ │ │
│ │ │ Providers │ │ Audit Providers │ │ │
│ │ └────────┬────────┘ └───────────┬────────────┘ │ │
│ │ │ │ │ │
│ │ ▼ ▼ │ │
│ │ ┌──────────────────────────────────┐ │ │
│ │ │ ETW Session (kernel) │ │ │
│ │ └──────────────────┬───────────────┘ │ │
│ └─────────────────────────│────────────────────────── ┘ │
│ │ │
│ ┌─────────────────────────│────────────────────────────┐ │
│ │ USER SPACE│ │ │
│ │ ┌──────────────────────▼───────────────────────────┐│ │
│ │ │ ntdll!NtTraceEvent / EtwEventWrite ││ │
│ │ └──────────────────────┬───────────────────────────┘│ │
│ │ │ │ │
│ │ ┌──────────────────────▼───────────────────────────┐│ │
│ │ │ Userland Providers (CLR, PowerShell, AMSI...) ││ │
│ │ └───────────────────────────────────────────────── ┘│ │
│ │ │ │
│ │ Consumers: EDR, WEF, Sysmon, Defender │ │
│ └───────────────────────────────────────────────────── ┘ │
└─────────────────────────────────────────────────────────────────────┘Technique 1: EtwEventWrite Patch in ntdll
Identifying the Prologue
Implementation in C
Technique 2: Patch via Direct Syscall (avoiding VirtualProtect hooks)
Technique 3: Disabling a Specific Provider via ETW Session Registration
Technique 4: Neutralize CLR (.NET) Provider via Environment Variable
Technique 5: Thread-Specific ETW Suppression via NtSetInformationThread
Operational Impact and Limitations
References
PreviousAMSI Bypass - Neutralizing the Microsoft Antimalware Scan InterfaceNextIndirect Syscalls — Preserving a Legitimate Stack Trace
Last updated