SCM Event Log Consumer y BVTConsumer: ¿benignos o no?
Las dos suscripciones WMI que incluye Windows, SCM Event Log y BVTFilter/BVTConsumer: qué contienen, por qué son inofensivas y cómo se abusa de sus nombres.
En resumen. Dos suscripciones de eventos WMI son propias de Windows. SCM Event Log (SCM Event Log Filter → NTEventLogEventConsumer SCM Event Log Consumer) reenvía los eventos del Service Control Manager al registro de eventos. BVT (BVTFilter → CommandLineEventConsumer BVTConsumer, cscript KernCap.vbs) es un resto de verificación de compilación en imágenes de la época de Windows 7. Ambas son inofensivas cuando su contenido coincide. Compruebe el contenido, no solo el nombre.
Por qué importa
Cualquier revisión de root\subscription encuentra primero estas dos, y un analista nuevo en WMI puede reportarlas como persistencia. El error contrario es peor: un atacante que reutiliza un nombre de confianza —o modifica el consumidor predeterminado— esquiva una lista de permitidos basada solo en nombres. PyWMIPersistenceFinder ya anotaba ambos enlaces como "comunes, posiblemente legítimos"; WMI Parser va un paso más allá y compara cada propiedad con lo que instala Windows.
SCM Event Log
| Objeto | Contenido esperado |
|---|---|
__EventFilter SCM Event Log Filter | Query = select * from MSFT_SCMEventLogEvent, QueryLanguage = WQL, EventNamespace = root\cimv2 |
NTEventLogEventConsumer SCM Event Log Consumer | SourceName = Service Control Manager, NameOfUserSIDProperty = sid |
__FilterToConsumerBinding | __EventFilter.Name="SCM Event Log Filter" → NTEventLogEventConsumer.Name="SCM Event Log Consumer" |
Existe en Windows Vista y posteriores. Su CreatorSID suele ser S-1-5-32-544 (el grupo Administradores), ya que se crea durante la instalación. El consumidor escribe una entrada en el registro de eventos; no ejecuta código.
BVTFilter y BVTConsumer
| Objeto | Contenido esperado |
|---|---|
__EventFilter BVTFilter | SELECT * FROM __InstanceModificationEvent WITHIN 60 WHERE TargetInstance ISA "Win32_Processor" AND TargetInstance.LoadPercentage > 99 |
CommandLineEventConsumer BVTConsumer | CommandLineTemplate = cscript KernCap.vbs, WorkingDirectory = C:\\tools\\kernrate (las barras invertidas dobles se almacenan tal cual) |
__FilterToConsumerBinding | __EventFilter.Name="BVTFilter" → CommandLineEventConsumer.Name="BVTConsumer" |
"BVT" significa build verification test (prueba de verificación de compilación). La suscripción ejecutaría un script de perfilado del kernel cuando un procesador se mantiene por encima del 99 % de carga; C:\tools\kernrate\KernCap.vbs no existe en un sistema normal, así que no ocurre nada. Aparece en imágenes de la época de Windows 7 / Server 2008 R2 y en equipos actualizados desde ellas, y su CreatorSID suele ser un administrador local (RID 500).
Qué debería llamar la atención
- Un nombre predeterminado con otro contenido: un
BVTConsumercuyo comando no escscript KernCap.vbs, un directorio de trabajo distinto, unSCM Event Log Consumerque es unCommandLineEventConsumero un filtro con otra consulta. WMI Parser lo señala como Nombre predeterminado, otro contenido. - Un
KernCap.vbsque existe. SiC:\tools\kernrate\KernCap.vbsestá en el disco, la suscripción BVT latente pasa a estar activa: lea el script. - Un tercer enlace a un filtro o consumidor predeterminado. Los atacantes pueden enlazar su propio consumidor a un filtro existente. Cuente los enlaces, no solo los objetos.
- Predeterminados en espacio liberado con otro contenido. Una versión anterior recuperada de un objeto predeterminado significa que se modificó en algún momento.
Todo lo demás no es automáticamente malicioso
Los agentes de gestión, los productos de seguridad para endpoints y las herramientas de fabricantes (monitorización de hardware, gestión de la configuración) también registran suscripciones. Son "no predeterminadas de Windows", no "maliciosas". Identifique el producto a partir de los nombres, las líneas de comandos y las rutas, y compare con un equipo limpio de la misma compilación.
FAQ
¿Es malicioso SCM Event Log Consumer?
No cuando coincide con el predeterminado de Windows: un NTEventLogEventConsumer con SourceName Service Control Manager, enlazado al SCM Event Log Filter que consulta MSFT_SCMEventLogEvent en root\cimv2.
¿Qué son BVTConsumer y kernCap.vbs?
BVTFilter y BVTConsumer son un resto de verificación de compilación presente en imágenes de la época de Windows 7 y Server 2008 R2. El consumidor ejecuta cscript KernCap.vbs desde C:\tools\kernrate cuando la carga de CPU se mantiene por encima del 99 %; el script no suele existir, así que no se ejecuta nada.
¿Debo eliminar las suscripciones WMI predeterminadas?
No es necesario cuando coinciden con los valores predeterminados. Lo que importa es un nombre predeterminado con otro contenido: una consulta modificada, otra clase de consumidor o una línea de comandos distinta.