Glosario
__FilterToConsumerBinding
El objeto WMI que vincula un filtro de eventos a un consumidor. Sin él, ninguno se dispara; con él, el consumidor actúa cada vez que coincide el filtro.
Una instancia de __FilterToConsumerBinding une un __EventFilter a un consumidor de eventos. Es el tercer objeto de una suscripción de eventos WMI y el que la activa: una vez que existe el enlace, WMI ejecuta el consumidor cada vez que coincide el filtro. Sus propiedades Filter y Consumer son rutas de objeto como __EventFilter.Name="BVTFilter" y CommandLineEventConsumer.Name="BVTConsumer". También registra un CreatorSID y algunas opciones de entrega, como DeliverSynchronously. Al igual que __EventFilter, la clase es una clase de sistema definida en __SystemClass.
Por qué importa en una investigación
El enlace es lo que convierte dos objetos de aspecto inofensivo en persistencia, así que es el punto de partida natural de una revisión. Un filtro o un consumidor al que ningún enlace hace referencia es inerte; un enlace le indica exactamente qué disparador ejecuta qué acción. Un filtro puede alimentar a varios consumidores y un consumidor puede servir a varios filtros, de modo que un atacante puede conectar un consumidor nuevo a un filtro existente, incluso a uno predeterminado. Cuente los enlaces, no solo los objetos.
El registro de un enlace es también lo que Windows deja anotado: el evento con ID 5861 en Microsoft-Windows-WMI-Activity/Operational, y el evento 21 de Sysmon cuando Sysmon está configurado. Esos eventos permiten fechar una suscripción, algo que el repositorio por sí solo no puede hacer de forma fiable.
Ejemplo
Las dos cadenas de referencia de un enlace se almacenan como texto plano en el heap del registro, dentro de OBJECTS.DATA:
__FilterToConsumerBinding
Filter = __EventFilter.Name="IntelPerfMonitor"
Consumer = CommandLineEventConsumer.Name="IntelPerfMonitor"
Esto es lo que busca PyWMIPersistenceFinder, de David Pany, y la razón por la que los enlaces pueden encontrarse incluso después de eliminarse, cuando solo sobrevive un fragmento del registro en el slack de página. El ejemplo incluido en la herramienta contiene un caso así: un filtro de inicio de sesión eliminado y su enlace.
Términos relacionados
WMI Parser parte de los enlaces y muestra cada uno con su filtro y su consumidor, activos o recuperados. Para saber cómo se encuentran los enlaces eliminados, lea Recuperar persistencia WMI eliminada de OBJECTS.DATA.