Glossaire
CommandLineEventConsumer
Consommateur WMI standard qui lance un processus (CommandLineTemplate, ExecutablePath, WorkingDirectory) en SYSTEM quand son filtre se déclenche.
CommandLineEventConsumer est le consommateur d'événements WMI standard qui lance un processus lorsque le filtre d'événements auquel il est lié se déclenche. Les propriétés importantes sont CommandLineTemplate (la ligne de commande complète), ExecutablePath (le programme, facultatif lorsque le modèle le nomme déjà) et WorkingDirectory ; d'autres règlent la fenêtre, la priorité du processus et un KillTimeout. Le processus est lancé par l'hôte des fournisseurs WMI, WmiPrvSE.exe, et s'exécute en tant que SYSTEM. La classe est définie dans root\subscription et dérive de __EventConsumer.
Pourquoi c'est important en investigation
C'est le consommateur le plus fréquent dans les persistances WMI, parce qu'il peut tout exécuter : un binaire déposé dans un dossier accessible en écriture à l'utilisateur, une commande PowerShell encodée, mshta ou rundll32 avec une charge utile distante. Associé à un déclencheur au démarrage ou à l'ouverture de session, il donne à un attaquant une exécution de code en tant que SYSTEM après chaque redémarrage, sans clé Run, service ni tâche planifiée.
Toutes les instances ne sont pas malveillantes. Le BVTConsumer de Windows lui-même, présent sur les images de l'époque de Windows 7, est un CommandLineEventConsumer qui exécuterait cscript KernCap.vbs depuis C:\tools\kernrate ; ce script n'existe normalement pas, donc rien ne s'exécute. Jugez chaque consommateur sur son contenu : la commande, les chemins, le filtre auquel il est lié et son CreatorSID. Sur l'hôte, les processus dont le parent est WmiPrvSE.exe constituent la preuve d'exécution correspondante.
Exemple
Le consommateur de l'exemple de WMI Parser (hôte fictif FIN-WKS-07), écrit en MOF :
instance of CommandLineEventConsumer as $Cons
{
Name = "IntelPerfMonitor";
CommandLineTemplate = "C:\\ProgramData\\Intel\\m64.exe -svc";
};
Lié à un filtre qui se déclenche environ quatre minutes après chaque démarrage, il lance m64.exe en tant que SYSTEM à chaque redémarrage. Une copie plus ancienne du même consommateur, récupérée dans l'espace libéré, montre qu'il exécutait auparavant une commande PowerShell encodée.
Termes associés
- Consommateur d'événements (__EventConsumer)
- ActiveScriptEventConsumer
- __EventFilter
- __FilterToConsumerBinding
Chargez l'exemple ou votre propre dépôt dans WMI Parser pour voir chaque consommateur de ligne de commande avec sa liaison. Pour distinguer les éléments par défaut de Windows des véritables découvertes, lisez SCM Event Log Consumer et BVTConsumer.