Skip to content

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:

  • CommandLineEventConsumer startet einen Prozess.
  • ActiveScriptEventConsumer führt VBScript oder JScript in scrcons.exe aus.
  • LogFileEventConsumer hängt eine Textzeile an eine Datei an.
  • NTEventLogEventConsumer schreibt einen Eintrag in das Windows-Ereignisprotokoll.
  • SMTPEventConsumer versendet 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

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.