Skip to content

Glossar

ActiveScriptEventConsumer

Der Standard-Consumer von WMI, der VBScript oder JScript inline (ScriptText) oder aus einer Datei (ScriptFilename) in scrcons.exe als SYSTEM ausführt.

ActiveScriptEventConsumer ist eine der fünf Standardklassen für Event Consumer, die Windows im Namespace root\subscription mitliefert. Löst der Event-Filter aus, an den er gebunden ist, führt er ein Skript aus. ScriptingEngine benennt die Sprache, VBScript oder JScript; der Code steht entweder inline in ScriptText oder wird aus der Datei gelesen, die ScriptFilename benennt. Das Skript läuft in scrcons.exe als SYSTEM, und KillTimeout kann begrenzen, wie lange es laufen darf.

Warum das für Untersuchungen wichtig ist

Nur wenige legitime Produkte verwenden einen Skript-Consumer. Deshalb sollten Sie bei jeder Instanz das Skript selbst sorgfältig lesen, nicht nur seinen Namen. Mit ScriptText liegt die gesamte Nutzlast in OBJECTS.DATA: Es gibt keine Skriptdatei auf dem Datenträger, die ein Scanner finden könnte, und keinen Run-Schlüssel, Dienst oder geplanten Task, der darauf verweist. Von dort aus kann das Skript eine zweite Stufe herunterladen, über WScript.Shell einen Prozess starten oder Dateien schreiben, und zwar mit SYSTEM-Rechten.

Auf dem Host ist der nützlichste Hinweis, dass scrcons.exe überhaupt läuft, und vor allem, dass er Kindprozesse wie powershell.exe oder cmd.exe startet. Im Repository ist das Skript ein gewöhnlicher String im Heap der Instanz; es lässt sich daher aus einem aktiven wie aus einem gelöschten Datensatz lesen.

Beispiel

Ein Skript-Consumer, wie er mit einer MOF-Datei registriert würde (Namen und Nutzlast sind nur zur Veranschaulichung):

#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";
};

An einen Filter auf Anmeldung oder Systemlaufzeit gebunden, führt dieser Consumer bei jedem Treffer des Auslösers einen versteckten, kodierten PowerShell-Befehl aus. Finden Sie einen solchen Consumer, dekodieren Sie die Nutzlast und prüfen Sie dann das Binding, die Abfrage des Filters und die CreatorSID jedes Objekts, um zu sehen, welches Konto ihn registriert hat.

Verwandte Begriffe

WMI Parser listet jeden Skript-Consumer eines gesicherten Repositorys auf, aktiv oder wiederhergestellt, mit all seinen Eigenschaften. Das vollständige Subscription-Modell beschreibt WMI-Persistenz über Event Subscriptions erklärt.