Glosario
__EventFilter
La clase WMI que describe el disparador de una suscripción de eventos: una consulta WQL con nombre, su lenguaje y el espacio de nombres que vigila.
Una instancia de __EventFilter es el cuándo de una suscripción de eventos WMI. Es una consulta de eventos WQL con nombre: WMI la evalúa de forma continua y, cada vez que un evento coincide, entrega ese evento a todos los consumidores de eventos enlazados al filtro. Sus propiedades son Name, Query, QueryLanguage (en la práctica, siempre WQL), EventNamespace (el espacio de nombres cuyos eventos se vigilan, normalmente root\cimv2), EventAccess y CreatorSID. La clase en sí es una clase de sistema, definida en __SystemClass.
Por qué importa en una investigación
La consulta le indica cuándo se ejecuta la carga útil, y eso determina el resto de la cronología. Los filtros usados para persistencia suelen vigilar el tiempo de actividad del sistema (para que la acción se ejecute poco después de cada arranque), los inicios de sesión de usuarios, el inicio de un proceso concreto, la inserción de un dispositivo o un temporizador WMI. CreatorSID registra la cuenta que dio de alta el filtro.
Un filtro por sí solo no hace nada: solo actúa cuando un __FilterToConsumerBinding lo vincula a un consumidor. Los atacantes a veces enlazan su propio consumidor a un filtro existente, incluso a uno predeterminado, así que cuente los enlaces que hacen referencia a cada filtro en lugar de juzgar el filtro por su nombre.
Ejemplo
El disparador clásico por tiempo de actividad, tomado del ejemplo de WMI Parser:
SELECT * FROM __InstanceModificationEvent WITHIN 60
WHERE TargetInstance ISA 'Win32_PerfFormattedData_PerfOS_System'
AND TargetInstance.SystemUpTime >= 240 AND TargetInstance.SystemUpTime < 325
WMI sondea la clase de rendimiento cada 60 segundos y se dispara cuando el tiempo de actividad está entre 240 y 325 segundos: unos cuatro minutos después de cada arranque. Con EventNamespace establecido en root\cimv2, este filtro funciona aunque esté registrado en root\subscription, que es donde suelen residir los filtros de persistencia.
Términos relacionados
- WQL (WMI Query Language)
- Consumidor de eventos (__EventConsumer)
- __FilterToConsumerBinding
- Espacio de nombres WMI
WMI Parser muestra la consulta de cada filtro junto al consumidor que dispara. Para una visión completa, lea Persistencia WMI por suscripción de eventos, explicada.