Glosario
Consumidor de eventos (__EventConsumer)
El objeto WMI que indica qué hacer cuando se dispara un filtro: ejecutar una línea de comandos o un script, escribir un log, un evento o un correo.
Un consumidor de eventos es el qué de una suscripción de eventos WMI: una instancia de una clase derivada de la clase de sistema __EventConsumer. Cuando el filtro de eventos al que está enlazado coincide con un evento, WMI entrega el evento al consumidor, que realiza su acción. Windows incluye cinco clases de consumidor estándar en root\subscription:
CommandLineEventConsumerinicia un proceso.ActiveScriptEventConsumerejecuta VBScript o JScript enscrcons.exe.LogFileEventConsumerañade una línea de texto a un archivo.NTEventLogEventConsumerescribe una entrada en el registro de eventos de Windows.SMTPEventConsumerenvía un correo electrónico.
Por qué importa en una investigación
Los consumidores permanentes se ejecutan como SYSTEM y sobreviven a los reinicios. Los dos primeros ejecutan código arbitrario, por eso casi toda la persistencia WMI los utiliza; los otros tres pueden filtrar datos o prestarse a abusos, pero no ejecutan una carga útil por sí mismos. Un consumidor solo actúa cuando un __FilterToConsumerBinding lo conecta a un filtro, así que un consumidor sin enlace es inerte, aunque sigue mostrando lo que alguien preparó o dejó atrás.
El software también puede definir sus propias clases de consumidor. Los agentes de endpoint y las herramientas de administración lo hacen, y esa es una de las razones por las que una suscripción que no forma parte de los valores predeterminados de Windows no es automáticamente maliciosa. Las clases personalizadas son más difíciles de decodificar sin las definiciones de clase del propio repositorio, así que recopile el repositorio completo, no solo OBJECTS.DATA.
Ejemplo
El propio Windows instala un consumidor en Vista y versiones posteriores, el benigno SCM Event Log consumer:
NTEventLogEventConsumer.Name="SCM Event Log Consumer"
SourceName = "Service Control Manager"
NameOfUserSIDProperty = "sid"
Está enlazado al SCM Event Log Filter y solo escribe entradas en el registro de eventos. El mismo nombre en otra clase, como un CommandLineEventConsumer, sería una señal de alarma.
Términos relacionados
- CommandLineEventConsumer
- ActiveScriptEventConsumer
- __EventFilter
- __FilterToConsumerBinding
- Espacio de nombres WMI
WMI Parser muestra cada consumidor de un repositorio recopilado con su clase, sus propiedades y sus enlaces. Para ver cómo funcionan juntos los tres objetos, lea Persistencia WMI por suscripción de eventos, explicada.