Glosario
ActiveScriptEventConsumer
El consumidor WMI estándar que ejecuta VBScript o JScript, en línea (ScriptText) o desde un archivo (ScriptFilename), en scrcons.exe como SYSTEM.
ActiveScriptEventConsumer es una de las cinco clases estándar de consumidor de eventos que Windows incluye en el espacio de nombres root\subscription. Cuando se dispara el filtro de eventos al que está enlazado, ejecuta un script. ScriptingEngine indica el lenguaje, VBScript o JScript; el código se almacena en línea en ScriptText o se lee del archivo indicado por ScriptFilename. El script se ejecuta dentro de scrcons.exe como SYSTEM, y KillTimeout puede limitar cuánto tiempo se ejecuta.
Por qué importa en una investigación
Pocos productos legítimos usan un consumidor de script, así que cualquier instancia merece una lectura atenta del propio script, no solo de su nombre. Con ScriptText, toda la carga útil reside dentro de OBJECTS.DATA: no hay ningún archivo de script en el disco que un escáner pueda encontrar, ni ninguna clave Run, servicio o tarea programada que apunte a él. Desde ahí, el script puede descargar una segunda fase, iniciar un proceso mediante WScript.Shell o escribir archivos, todo ello con privilegios de SYSTEM.
En el host, la pista más útil es que scrcons.exe llegue a ejecutarse, y sobre todo que inicie procesos hijos como powershell.exe o cmd.exe. En el repositorio, el script es una cadena normal en el heap de la instancia, por lo que puede leerse tanto de un registro activo como de uno eliminado.
Ejemplo
Un consumidor de script tal como se registraría con un archivo MOF (los nombres y la carga útil son ilustrativos):
#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";
};
Enlazado a un filtro de inicio de sesión o de tiempo de actividad del sistema, ejecuta un comando PowerShell oculto y codificado cada vez que coincide el disparador. Cuando encuentre uno, decodifique la carga útil y, después, revise el enlace, la consulta del filtro y el CreatorSID de cada objeto para saber qué cuenta lo registró.
Términos relacionados
- Consumidor de eventos (__EventConsumer)
- CommandLineEventConsumer
- scrcons.exe
- __FilterToConsumerBinding
- OBJECTS.DATA
WMI Parser muestra todos los consumidores de script de un repositorio recopilado, activos o recuperados, con todas sus propiedades. Para el modelo de suscripción completo, lea Persistencia WMI por suscripción de eventos, explicada.