The payload half of fileless WMI persistence.
What gives it awayA CommandLineEventConsumer or ActiveScriptEventConsumer whose destination runs a shell, a scripting engine, or an encoded command.
ATT&CK T1546.003Nothing matches that yet. Tell us what you were looking for and it goes on the list.
Sysmon · Event 20
Something registered what to run when a WMI condition fires. This is the payload half of WMI persistence, and unlike the filter it names the actual command — which makes it the most directly useful of the three WMI events.
Also written as Sysmon 20Sysmon Event ID 20WmiEventConsumer activity detectedwmi consumer persistence
The Destination field holds the payload — a command line for a CommandLineEventConsumer, or a script body for an ActiveScriptEventConsumer. Those two consumer types are the ones used offensively; the logging and SMTP consumers are far less interesting. A consumer without a binding does nothing, but its presence alone is worth investigating.
Sanitised. Addresses come from the RFC 5737 documentation ranges.
WmiEventConsumer activity detected:
RuleName: T1546.003
EventType: WmiConsumerEvent
UtcTime: 2026-08-28 09:18:04.117
Operation: Created
User: CORP\jbrooks
Name: "WindowsUpdateConsumer"
Type: Command Line
Destination: "powershell.exe -nop -w hidden -enc SQBFAFgAIAAoAE4AZQB3..." Everything else in the log line is context.
CommandLineEventConsumerRuns a command line. The most common in attacks. ActiveScriptEventConsumerRuns VBScript or JScript inline, with no file on disk. LogFileEventConsumerWrites to a log file. Rarely used offensively. NTEventLogEventConsumerWrites an event log entry. Benign. Most of the time it is one of these.
What gives it awayA CommandLineEventConsumer or ActiveScriptEventConsumer whose destination runs a shell, a scripting engine, or an encoded command.
ATT&CK T1546.003What gives it awayAn ActiveScriptEventConsumer with the script body stored inline in the WMI repository.
ATT&CK T1546.003What gives it awayA name imitating a Microsoft feature with a destination that does not match it.
ATT&CK T1036.005Event | where Source == 'Microsoft-Windows-Sysmon' and EventID == 20 | project TimeGenerated, Computer, RenderedDescription | order by TimeGenerated desc Get-WmiObject -Namespace root\subscription -Class __EventConsumer | Select-Object __CLASS, Name, CommandLineTemplate, ScriptText The part of a WMI subscription that defines what happens when the trigger condition is met. A CommandLineEventConsumer runs a command; an ActiveScriptEventConsumer runs a script stored inline in the WMI repository, with nothing written to disk. It is the payload half of the technique.
Event 20, because it names the payload. The filter tells you when something fires and the binding tells you the two are linked, but the consumer tells you what actually runs — which is usually the answer you need.
Last reviewed 28 August 2026