Detección de living-off-the-land binaries con Wazuh
Cómo escribir reglas custom para detectar abuso de utilidades nativas de Windows (certutil, mshta, rundll32) sin generar falsos positivos en endpoints administrativos.
El problema
Los atacantes modernos no traen sus propias herramientas. Usan binarios firmados por Microsoft que ya están en el sistema — certutil.exe, mshta.exe, rundll32.exe, regsvr32.exe. Esto se conoce como LOLBin (Living Off the Land Binaries) y es la columna vertebral de campañas modernas como las documentadas en MITRE ATT&CK bajo T1218.
El reto: estos mismos binarios son usados legítimamente por administradores y procesos del sistema cientos de veces al día. Bloquearlos por completo rompe la operación. Necesitamos detección con contexto.
Estrategia de detección
En Wazuh, la mejor superficie es Sysmon (event ID 1: process creation) correlacionado con la línea de comando completa y el padre que invoca el binario. Aquí un ejemplo de regla custom para detectar certutil descargando archivos remotos:
<group name="windows,sysmon,lolbin,">
<rule id="100210" level="12">
<if_sid>61603</if_sid>
<field name="win.eventdata.image">certutil\.exe$</field>
<field name="win.eventdata.commandLine" type="pcre2">
(?i)(-urlcache|-decode|-encode).*?(http|ftp)
</field>
<description>LOLBIN: certutil downloading from remote URL</description>
<mitre>
<id>T1218</id>
<id>T1105</id>
</mitre>
</rule>
</group>
Reduciendo falsos positivos
El truco está en correlacionar el padre. certutil invocado por cmd.exe que a su vez fue invocado por winword.exe es altamente sospechoso. certutil invocado por SCCM o System Center es probablemente legítimo.
<rule id="100211" level="14">
<if_sid>100210</if_sid>
<field name="win.eventdata.parentImage" type="pcre2">
(?i)(winword|excel|powerpnt|outlook|msaccess)\.exe$
</field>
<description>CRITICAL: Office spawned LOLBIN with download</description>
</rule>
rundll32.exe es invocado legítimamente por agentes EDR, antivirus y herramientas de inventario.
Binarios prioritarios para vigilar
certutil.exe— descarga, codificación base64, conversión de certificadosmshta.exe— ejecución de HTA con JavaScript/VBScriptrundll32.exe— invocación de DLLs arbitrariasregsvr32.exe— registro de COM, técnica "Squiblydoo"bitsadmin.exe— descargas en backgroundinstallutil.exe— ejecución de .NET assembliesmsiexec.exe— instalación remota de paquetes MSI
Integración con n8n para triage
Cuando una alerta level 12+ se dispara, encadenamos un workflow en n8n que enriquece el evento con: VirusTotal, AbuseIPDB, contexto del usuario en LDAP, y procesos hijos en los siguientes 60 segundos. El resultado se postea a un canal privado de Slack con un botón de "aislar host" que ejecuta vía API el agente de Wazuh.
Una regla buena no es la que detecta más; es la que detecta lo que importa con el menor ruido posible.
Métricas reales después de 90 días
- Reducción de falsos positivos: de 312/día a 7/día
- MTTD para LOLBin con descarga remota: 2.3 minutos
- Cobertura MITRE ATT&CK: 14 técnicas T1218.x
Si quieres aplicar este patrón en tu SOC o construir reglas custom para tu stack específico, agenda una conversación de diagnóstico.