Skip to content

Glossar

__FilterToConsumerBinding

Das WMI-Objekt, das einen Event-Filter mit einem Event Consumer verknüpft. Ohne es löst keiner aus; mit ihm läuft der Consumer bei jedem Filter-Treffer.

Eine __FilterToConsumerBinding-Instanz verbindet einen __EventFilter mit einem Event Consumer. Sie ist das dritte Objekt einer WMI Event Subscription und dasjenige, das sie scharf schaltet: Sobald das Binding existiert, führt WMI den Consumer bei jedem Treffer des Filters aus. Ihre Eigenschaften Filter und Consumer sind Objektpfade wie __EventFilter.Name="BVTFilter" und CommandLineEventConsumer.Name="BVTConsumer". Außerdem speichert sie eine CreatorSID und einige Zustellungsoptionen wie DeliverSynchronously. Wie __EventFilter ist die Klasse eine Systemklasse, definiert in __SystemClass.

Warum das für Untersuchungen wichtig ist

Erst das Binding macht aus zwei harmlos wirkenden Objekten eine Persistenz; es ist daher der natürliche Ausgangspunkt einer Prüfung. Ein Filter oder Consumer, auf den kein Binding verweist, ist wirkungslos; ein Binding sagt Ihnen genau, welcher Auslöser welche Aktion startet. Ein Filter kann mehrere Consumer beliefern und ein Consumer mehreren Filtern dienen, sodass ein Angreifer einen neuen Consumer an einen bestehenden, sogar an einen Standardfilter anhängen kann. Zählen Sie die Bindings, nicht nur die Objekte.

Die Registrierung eines Bindings ist auch das, was Windows protokolliert: Ereignis-ID 5861 in Microsoft-Windows-WMI-Activity/Operational sowie Sysmon-Ereignis 21, wenn Sysmon konfiguriert ist. Diese Ereignisse datieren eine Subscription, was das Repository allein nicht zuverlässig leisten kann.

Beispiel

Die beiden Referenz-Strings eines Bindings stehen als Klartext im Heap des Datensatzes in OBJECTS.DATA:

__FilterToConsumerBinding
    Filter   = __EventFilter.Name="IntelPerfMonitor"
    Consumer = CommandLineEventConsumer.Name="IntelPerfMonitor"

Genau danach sucht PyWMIPersistenceFinder von David Pany, und deshalb lassen sich Bindings auch nach dem Löschen finden, wenn nur noch ein Fragment des Datensatzes im Page Slack überdauert. Das Beispiel im Tool enthält einen solchen Fall: einen gelöschten Anmelde-Filter und sein Binding.

Verwandte Begriffe

WMI Parser geht von den Bindings aus und zeigt jedes mit seinem Filter und Consumer, aktiv oder wiederhergestellt. Wie gelöschte Bindings gefunden werden, lesen Sie in Gelöschte WMI-Persistenz aus OBJECTS.DATA wiederherstellen.