Glossar
Event Consumer (__EventConsumer)
Das WMI-Objekt, das festlegt, was bei einem Filter-Treffer geschieht: Befehlszeile oder Skript ausführen, Protokollzeile, Ereignis oder E-Mail schreiben.
Ein Event Consumer ist das Was einer WMI Event Subscription: eine Instanz einer Klasse, die von der Systemklasse __EventConsumer abgeleitet ist. Trifft der Event-Filter, an den er gebunden ist, auf ein Ereignis zu, übergibt WMI das Ereignis an den Consumer, der dann seine Aktion ausführt. Windows liefert in root\subscription fünf Standard-Consumer-Klassen mit:
CommandLineEventConsumerstartet einen Prozess.ActiveScriptEventConsumerführt VBScript oder JScript inscrcons.exeaus.LogFileEventConsumerhängt eine Textzeile an eine Datei an.NTEventLogEventConsumerschreibt einen Eintrag in das Windows-Ereignisprotokoll.SMTPEventConsumerversendet eine E-Mail.
Warum das für Untersuchungen wichtig ist
Permanente Consumer laufen als SYSTEM und überstehen Neustarts. Die ersten beiden führen beliebigen Code aus, weshalb nahezu jede WMI-Persistenz sie verwendet; die anderen drei können zwar Daten abfließen lassen oder missbraucht werden, führen aber selbst keine Nutzlast aus. Ein Consumer handelt nur, wenn ein __FilterToConsumerBinding ihn mit einem Filter verbindet. Ein Consumer ohne Binding ist also wirkungslos, zeigt aber trotzdem, was jemand vorbereitet oder zurückgelassen hat.
Software kann auch eigene Consumer-Klassen definieren. Endpoint-Agenten und Verwaltungswerkzeuge tun das, und das ist ein Grund, warum eine Subscription, die kein Windows-Standard ist, nicht automatisch bösartig ist. Eigene Klassen lassen sich ohne die Klassendefinitionen des Repositorys schwerer dekodieren; sichern Sie daher das gesamte Repository, nicht nur OBJECTS.DATA.
Beispiel
Windows selbst installiert ab Vista einen Consumer, den harmlosen SCM Event Log Consumer:
NTEventLogEventConsumer.Name="SCM Event Log Consumer"
SourceName = "Service Control Manager"
NameOfUserSIDProperty = "sid"
Er ist an den SCM Event Log Filter gebunden und schreibt nur Einträge in das Ereignisprotokoll. Derselbe Name auf einer anderen Klasse, etwa einem CommandLineEventConsumer, wäre ein Warnsignal.
Verwandte Begriffe
- CommandLineEventConsumer
- ActiveScriptEventConsumer
- __EventFilter
- __FilterToConsumerBinding
- WMI-Namespace
WMI Parser listet jeden Consumer eines gesicherten Repositorys mit Klasse, Eigenschaften und Bindings auf. Wie die drei Objekte zusammenwirken, lesen Sie in WMI-Persistenz über Event Subscriptions erklärt.