Glossaire
ActiveScriptEventConsumer
Consommateur WMI standard qui exécute du VBScript ou du JScript, en ligne (ScriptText) ou depuis un fichier (ScriptFilename), dans scrcons.exe en SYSTEM.
ActiveScriptEventConsumer est l'une des cinq classes standard de consommateurs d'événements que Windows fournit dans l'espace de noms root\subscription. Lorsque le filtre d'événements auquel il est lié se déclenche, il exécute un script. ScriptingEngine indique le langage, VBScript ou JScript ; le code est soit stocké directement dans ScriptText, soit lu depuis le fichier désigné par ScriptFilename. Le script s'exécute dans scrcons.exe en tant que SYSTEM, et KillTimeout peut limiter sa durée d'exécution.
Pourquoi c'est important en investigation
Peu de produits légitimes utilisent un consommateur de script : toute instance mérite donc une lecture attentive du script lui-même, et pas seulement de son nom. Avec ScriptText, toute la charge utile réside dans OBJECTS.DATA : il n'existe aucun fichier de script sur le disque qu'un scanner pourrait détecter, ni aucune clé Run, aucun service ou aucune tâche planifiée qui y renvoie. De là, le script peut télécharger une seconde charge, lancer un processus via WScript.Shell ou écrire des fichiers, le tout avec les droits SYSTEM.
Sur l'hôte, la piste la plus utile est le simple fait que scrcons.exe s'exécute, et surtout qu'il lance des processus enfants tels que powershell.exe ou cmd.exe. Dans le dépôt, le script est une chaîne ordinaire dans le tas de l'instance : on peut donc le lire aussi bien dans un enregistrement actif que dans un enregistrement supprimé.
Exemple
Un consommateur de script tel qu'il serait enregistré via un fichier MOF (noms et charge utile donnés à titre d'illustration) :
#pragma namespace("\\\\.\\root\\subscription")
instance of ActiveScriptEventConsumer as $Cons
{
Name = "UpdCheck";
ScriptingEngine = "VBScript";
ScriptText = "Set s = CreateObject(\"WScript.Shell\") : s.Run \"powershell -nop -w hidden -enc JAB...\", 0";
};
Lié à un filtre sur l'ouverture de session ou sur le temps de fonctionnement du système, il exécute une commande PowerShell encodée et masquée chaque fois que le déclencheur correspond. Si vous en trouvez un, décodez la charge utile, puis vérifiez la liaison, la requête du filtre et le CreatorSID de chaque objet pour savoir quel compte l'a enregistré.
Termes associés
- Consommateur d'événements (__EventConsumer)
- CommandLineEventConsumer
- scrcons.exe
- __FilterToConsumerBinding
- OBJECTS.DATA
WMI Parser liste chaque consommateur de script d'un dépôt collecté, actif ou récupéré, avec l'ensemble de ses propriétés. Pour le modèle d'abonnement dans son ensemble, lisez La persistance par abonnement aux événements WMI expliquée.