Fileless persistence through a WMI subscription.
What gives it awayA filter registered alongside a consumer and a binding, triggering on a time or startup condition. Nothing is written to disk and no registry autorun key is touched.
ATT&CK T1546.003Nothing matches that yet. Tell us what you were looking for and it goes on the list.
Sysmon · Event 19
Something registered a WMI event filter — a rule that watches for a system condition. On its own that is harmless. Combined with events 20 and 21 it forms WMI persistence, which survives reboots, touches no startup folder, and leaves no file on disk.
Also written as Sysmon 19Sysmon Event ID 19WmiEventFilter activity detectedWMI persistence detection
Only present if you installed Sysmon. WMI is a Windows management system that ordinary users never interact with directly.
WMI persistence is a three-part construction: a filter that defines when to trigger (19), a consumer that defines what to run (20), and a binding that links them (21). All three are needed for it to work. Because it lives in the WMI repository rather than in the registry or the file system, it survives reboots and is invisible to autorun tools that only check the usual locations. The volume is low enough that alerting on all three is practical.
Sanitised. Addresses come from the RFC 5737 documentation ranges.
WmiEventFilter activity detected:
RuleName: T1546.003
EventType: WmiFilterEvent
UtcTime: 2026-08-28 09:18:02.441
Operation: Created
User: CORP\jbrooks
EventNamespace: "root\\cimv2"
Name: "WindowsUpdateFilter"
Query: "SELECT * FROM __InstanceModificationEvent WITHIN 60 WHERE TargetInstance ISA 'Win32_PerfFormattedData_PerfOS_System'" Everything else in the log line is context.
A query on Win32_LocalTime or __InstanceModificationEventTime-based triggering — the filter fires on a schedule. A query watching for process creationTriggers when a particular program starts. A query watching logon or startup conditionsTriggers at boot or sign-in, which is classic persistence. Most of the time it is one of these.
What gives it awayA filter registered alongside a consumer and a binding, triggering on a time or startup condition. Nothing is written to disk and no registry autorun key is touched.
ATT&CK T1546.003What gives it awayWMI subscriptions created during an intrusion, which remain after files are deleted and registry keys removed because they live in the WMI repository.
ATT&CK T1546.003What gives it awayA filter watching for process creation of a particular program, so the payload runs when someone opens it.
ATT&CK T1546.003Event | where Source == 'Microsoft-Windows-Sysmon' and EventID in (19, 20, 21) | project TimeGenerated, Computer, EventID, RenderedDescription | order by TimeGenerated desc Get-WmiObject -Namespace root\subscription -Class __EventFilter; Get-WmiObject -Namespace root\subscription -Class __EventConsumer; Get-WmiObject -Namespace root\subscription -Class __FilterToConsumerBinding detection:
selection:
EventID:
- 19
- 20
- 21
condition: selection A three-part construction: an event filter defining when to trigger, an event consumer defining what to run, and a binding linking the two. Once registered, the payload runs whenever the condition is met, across reboots. It lives in the WMI repository rather than on disk or in registry autorun keys, which is what makes it hard to find.
Because it leaves no file and no registry run key, so tools that check the usual autorun locations miss it entirely. Sysmon events 19, 20, and 21 catch the registration itself, and querying the root\subscription namespace directly finds what already exists. Without one of those, it is genuinely easy to overlook.
Delete all three parts from the root\subscription namespace — the filter, the consumer, and the binding. Removing only one leaves fragments behind. Enumerate them first with Get-WmiObject against __EventFilter, __EventConsumer, and __FilterToConsumerBinding so you know exactly what you are removing.
In most environments, yes, unfiltered to begin with. The volume is genuinely low, and the technique is specific enough that a legitimate subscription is memorable. Establish which of your management tools create subscriptions, exclude those by name, and alert on everything else.
Last reviewed 28 August 2026