Skip to content

Glossaire

Consommateur d'événements (__EventConsumer)

L'objet WMI qui définit l'action lors du déclenchement d'un filtre : commande, script, ligne de journal, événement ou e-mail.

Un consommateur d'événements est le quoi d'un abonnement aux événements WMI : une instance d'une classe dérivée de la classe système __EventConsumer. Lorsque le filtre d'événements auquel il est lié correspond à un événement, WMI transmet cet événement au consommateur, qui exécute son action. Windows fournit cinq classes de consommateurs standard dans root\subscription :

  • CommandLineEventConsumer lance un processus.
  • ActiveScriptEventConsumer exécute du VBScript ou du JScript dans scrcons.exe.
  • LogFileEventConsumer ajoute une ligne de texte à un fichier.
  • NTEventLogEventConsumer écrit une entrée dans le journal des événements Windows.
  • SMTPEventConsumer envoie un e-mail.

Pourquoi c'est important en investigation

Les consommateurs permanents s'exécutent en tant que SYSTEM et survivent aux redémarrages. Les deux premiers exécutent du code arbitraire, c'est pourquoi presque toutes les persistances WMI les utilisent ; les trois autres peuvent tout de même divulguer des données ou être détournés, mais ils n'exécutent pas de charge utile par eux-mêmes. Un consommateur n'agit que si un __FilterToConsumerBinding le relie à un filtre : un consommateur non lié est donc inerte, même s'il montre encore ce que quelqu'un a préparé ou laissé derrière lui.

Un logiciel peut aussi définir ses propres classes de consommateurs. C'est le cas des agents de sécurité et des outils d'administration, ce qui explique en partie qu'un abonnement qui ne fait pas partie des éléments par défaut de Windows ne soit pas automatiquement malveillant. Les classes personnalisées sont plus difficiles à décoder sans les définitions de classes du dépôt lui-même : collectez donc le dépôt entier, et pas seulement OBJECTS.DATA.

Exemple

Windows installe lui-même un consommateur à partir de Vista, le consommateur SCM Event Log, qui est bénin :

NTEventLogEventConsumer.Name="SCM Event Log Consumer"
    SourceName            = "Service Control Manager"
    NameOfUserSIDProperty = "sid"

Il est lié au SCM Event Log Filter et se contente d'écrire des entrées dans le journal des événements. Le même nom sur une autre classe, comme un CommandLineEventConsumer, serait un signal d'alerte.

Termes associés

WMI Parser liste chaque consommateur d'un dépôt collecté avec sa classe, ses propriétés et ses liaisons. Pour comprendre comment les trois objets fonctionnent ensemble, lisez La persistance par abonnement aux événements WMI expliquée.