Intermediothreat-huntingsysmonwindowsendpointdeteccionherramientas

Threat Hunting con Sysmon en Windows: Eventos Clave y Consultas Practicas

Guia practica de threat hunting con Sysmon en Windows. Eventos esenciales (ID 1, 3, 7, 8, 10, 11, 13, 22), configuracion optima, consultas de caza para detectar ejecucion sospechosa, inyeccion de procesos, persistencia y C2.

MalwareIntel Research··10 min lectura
Serie: Threat Hunting — Parte 4

Por Que Sysmon es Esencial para el Hunting

System Monitor (Sysmon) es un servicio y driver de Windows desarrollado por Mark Russinovich (Sysinternals, Microsoft) que registra actividad del sistema con un nivel de detalle que los logs nativos de Windows no proporcionan. Para el threat hunter, Sysmon es la fuente de datos de endpoint mas valiosa en el ecosistema Windows.

Los logs nativos de Windows Security tienen limitaciones significativas para el hunting. El Event ID 4688 (Process Creation) puede registrar la linea de comandos si se habilita mediante Group Policy, pero no incluye hashes del ejecutable, no registra el parent process de forma fiable y no captura carga de DLLs, accesos a procesos ni actividad de registro con el mismo detalle que Sysmon.

Sysmon llena esos gaps con 29 Event IDs que cubren desde la creacion de procesos hasta la manipulacion del clipboard, pasando por conexiones de red, accesos a memoria de otros procesos y modificaciones de WMI.

Configuracion Optima para Hunting

Una configuracion por defecto de Sysmon genera un volumen excesivo de eventos. Las configuraciones comunitarias proporcionan un punto de partida equilibrado entre visibilidad y volumen.

Configuraciones de referencia

SwiftOnSecurity/sysmon-config. La configuracion mas popular de la comunidad. Enfocada en reducir el ruido manteniendo visibilidad sobre actividad sospechosa. Buena para despliegues iniciales.

olafhartong/sysmon-modular. Configuracion modular que permite activar o desactivar bloques de reglas por categoria. Ideal para equipos que quieren control granular.

Instalacion y despliegue

# Instalacion con configuracion de referencia
sysmon64.exe -accepteula -i sysmon-config.xml

# Actualizacion de configuracion sin reinstalar
sysmon64.exe -c sysmon-config-updated.xml

# Verificar que Sysmon esta corriendo
Get-Service Sysmon64

# Ver configuracion actual
sysmon64.exe -c

Los eventos de Sysmon se registran en Microsoft-Windows-Sysmon/Operational en el Event Viewer de Windows.

Los 8 Event IDs Clave para Hunting

De los 29 Event IDs de Sysmon, 8 son especialmente relevantes para el threat hunting.

Event ID 1: Process Creation

El evento mas importante. Registra cada creacion de proceso con datos criticos que el Event ID 4688 nativo no incluye de forma fiable.

Campos clave para hunting:

  • Image: ruta completa del ejecutable
  • CommandLine: linea de comandos completa con argumentos
  • ParentImage: proceso padre que lanzo este proceso
  • ParentCommandLine: linea de comandos del proceso padre
  • User: usuario que ejecuto el proceso
  • Hashes: hashes MD5/SHA256/IMPHASH del ejecutable
  • CurrentDirectory: directorio de trabajo
  • IntegrityLevel: nivel de integridad (System, High, Medium, Low)

Ejemplo de hunting: ejecucion sospechosa de PowerShell

Buscar: Event ID 1 donde Image contiene powershell.exe
  Y CommandLine contiene -enc, -encodedcommand, -e (base64)
  O CommandLine contiene -nop, -noprofile, -w hidden
  O CommandLine contiene downloadstring, invoke-expression, iex
  O CommandLine tiene longitud superior a 500 caracteres

Consulta KQL para Elastic:

event.code: "1" AND
process.name: "powershell.exe" AND (
  process.command_line: (*-enc* OR *-encodedcommand* OR *downloadstring* OR *invoke-expression* OR *iex*) OR
  process.command_line: (*-nop* AND *-w* AND *hidden*)
)

Ejemplo de hunting: LOLBins (Living Off the Land)

Los adversarios usan binarios legitimos de Windows para ejecutar codigo malicioso. Los LOLBins mas abusados son:

Buscar Event ID 1 donde Image es uno de:
  - certutil.exe con argumentos -urlcache, -split, -decode
  - mshta.exe ejecutando URLs o scripts
  - regsvr32.exe con /s /u /i y URL remota (Squiblydoo)
  - rundll32.exe con URL o DLL en ruta temporal
  - bitsadmin.exe con /transfer y URL remota
  - wmic.exe con process call create

Event ID 3: Network Connection

Registra conexiones TCP/UDP salientes con el proceso que las origina. Esencial para identificar C2 y exfiltracion a nivel de endpoint.

Campos clave:

  • Image: proceso que inicio la conexion
  • DestinationIp: IP de destino
  • DestinationPort: puerto de destino
  • DestinationHostname: hostname de destino (si hay resolucion)
  • User: usuario del proceso

Ejemplo de hunting: procesos inusuales con conexiones de red

Buscar Event ID 3 donde Image es un proceso que normalmente
no deberia hacer conexiones de red salientes:
  - notepad.exe
  - calc.exe
  - mspaint.exe
  - svchost.exe con puertos no estandar
  - procesos en %TEMP% o %APPDATA%

Event ID 7: Image Loaded (DLL)

Registra la carga de DLLs por procesos. Fundamental para detectar DLL sideloading, DLL injection y uso de DLLs maliciosas.

Ejemplo de hunting: DLL sideloading

Buscar Event ID 7 donde:
  - ImageLoaded apunta a una DLL en directorio temporal
  - Image es un ejecutable firmado y legitimo
  - La DLL no esta firmada (Signed: false)
  - La combinacion ejecutable + DLL no es habitual

La deteccion de DLL sideloading requiere conocer las cargas de DLL normales de cada proceso. Herramientas como DLL Hijack Auditor pueden generar este baseline.

Event ID 8: CreateRemoteThread

Registra cuando un proceso crea un thread en otro proceso. Es la tecnica clasica de inyeccion de codigo (T1055).

Ejemplo de hunting: inyeccion de procesos

Buscar Event ID 8 donde:
  - SourceImage NO es un proceso conocido por crear threads remotos
    (excluir: csrss.exe, services.exe, svchost.exe, lsass.exe,
    WerFault.exe, taskmgr.exe)
  - TargetImage es un proceso de alto valor
    (explorer.exe, svchost.exe, lsass.exe)

Event ID 10: ProcessAccess

Registra cuando un proceso accede a la memoria de otro proceso. Critico para detectar dumping de credenciales (acceso a lsass.exe).

Ejemplo de hunting: acceso a LSASS

Buscar Event ID 10 donde:
  - TargetImage contiene lsass.exe
  - GrantedAccess incluye 0x1010 o 0x1FFFFF (acceso completo a memoria)
  - SourceImage NO es un proceso legitimo conocido
    (excluir: MsMpEng.exe, csrss.exe, svchost.exe, WerFault.exe)

Consulta KQL:

event.code: "10" AND
winlog.event_data.TargetImage: "*lsass.exe" AND
winlog.event_data.GrantedAccess: ("0x1010" OR "0x1FFFFF" OR "0x1F1FFF" OR "0x1F3FFF") AND
NOT winlog.event_data.SourceImage: (*MsMpEng* OR *csrss* OR *WerFault*)

Event ID 11: FileCreate

Registra la creacion de archivos. Util para detectar staging de herramientas, drops de malware y creacion de artefactos de persistencia.

Ejemplo de hunting: creacion de archivos en rutas sospechosas

Buscar Event ID 11 donde:
  - TargetFilename esta en %PUBLIC%, %TEMP%, %APPDATA%
  - Extension es .exe, .dll, .ps1, .bat, .vbs, .hta, .js
  - El proceso creador (Image) es un navegador, Office, o PowerShell

Event ID 13: RegistryEvent (Value Set)

Registra modificaciones de valores en el registro de Windows. Esencial para detectar persistencia via registry keys.

Ejemplo de hunting: persistencia en Run keys

Buscar Event ID 13 donde TargetObject contiene:
  - HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
  - HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
  - HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
  - HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
  Y Details apunta a rutas no estandar o ejecutables desconocidos

Event ID 22: DNSEvent (DNS Query)

Registra las consultas DNS realizadas por cada proceso. Invaluable para detectar DNS tunneling, DGA (Domain Generation Algorithms) y comunicacion C2 via DNS.

Ejemplo de hunting: DNS tunneling

Buscar Event ID 22 donde:
  - QueryName tiene subdominios largos (mas de 50 chars)
  - Volumen alto de queries al mismo dominio base
  - QueryType es TXT (usado para exfiltracion)
  - Image no es un navegador ni un servicio DNS conocido

Patrones de Hunting con Cadenas de Procesos

Una de las tecnicas de hunting mas poderosas con Sysmon es analizar las cadenas de procesos (process trees). Los adversarios generan cadenas de ejecucion caracteristicas que difieren de la actividad legitima.

Cadenas sospechosas de Office

winword.exe -> cmd.exe -> powershell.exe
excel.exe -> wscript.exe -> cmd.exe
outlook.exe -> mshta.exe

Regla: las aplicaciones de Office no deberian lanzar
interpretes de comandos ni scripts en uso normal.

Cadenas sospechosas de servicios

services.exe -> cmd.exe (servicio creado via linea de comandos)
wmiprvse.exe -> powershell.exe (ejecucion remota via WMI)
wsmprovhost.exe -> powershell.exe (PowerShell Remoting)

Regla: servicios y WMI que lanzan interpretes de comandos
merecen investigacion si no estan documentados.

Cadena de ataque tipica de phishing

outlook.exe -> chrome.exe -> [descarga .zip]
explorer.exe -> [abre .lnk del zip]
cmd.exe -> powershell.exe -enc [payload base64]
powershell.exe -> [descarga stage 2]
rundll32.exe -> [carga DLL maliciosa]

Cada transicion en esta cadena genera un Event ID 1 en Sysmon. El hunter busca estas cadenas correlacionando los ParentProcessGuid con los ProcessGuid para reconstruir el arbol completo.

Enriquecimiento y Correlacion

Los eventos de Sysmon son mas valiosos cuando se correlacionan entre si y con otras fuentes.

Correlacion intra-Sysmon

Un unico incidente genera multiples Event IDs. El ProcessGuid de Sysmon permite correlacionarlos:

  1. Event ID 1: PowerShell se ejecuta con parametros sospechosos (ProcessGuid: X)
  2. Event ID 3: el mismo PowerShell (ProcessGuid: X) conecta a una IP externa
  3. Event ID 11: PowerShell (ProcessGuid: X) crea un archivo .dll en %TEMP%
  4. Event ID 7: rundll32.exe carga la DLL creada
  5. Event ID 8: rundll32.exe inyecta un thread en svchost.exe

Correlacion con otras fuentes

  • Cruzar IPs de destino (Event ID 3) con feeds de CTI (MalwareIntel, OTX, ThreatFox)
  • Cruzar hashes (Event ID 1) con MalwareBazaar para identificar malware conocido
  • Correlacionar tiempos de logon (Windows 4624) con ejecucion de procesos sospechosos
  • Cruzar dominios DNS (Event ID 22) con listas de dominios de DGA conocidos

Limitaciones de Sysmon

Sysmon no es una solucion completa. Tiene limitaciones que el hunter debe conocer:

No ve actividad de kernel avanzada. Rootkits que operan a nivel de kernel pueden evadir la deteccion de Sysmon. Drivers maliciosos que se cargan antes que Sysmon pueden manipular los registros.

Puede ser deshabilitado. Un adversario con privilegios de administrador puede detener el servicio de Sysmon, eliminar sus reglas o descargar su driver. El Event ID 4 (Sysmon Service State Changed) detecta estos cambios, pero requiere que haya otro mecanismo de monitoreo.

No analiza contenido. Sysmon registra que PowerShell ejecuto un comando codificado en Base64, pero no decodifica el contenido. El hunter debe decodificar manualmente los payloads.

Impacto en volumen de logs. Una configuracion agresiva en un entorno con miles de endpoints puede generar terabytes de logs diarios. La configuracion de exclusiones es critica.

Checklist de Hunting con Sysmon

Para cada sesion de hunting con Sysmon, el hunter deberia revisar sistematicamente:

  1. Ejecucion de procesos desde rutas temporales (Event ID 1, Image en %TEMP%, %APPDATA%)
  2. PowerShell con parametros de encoding u ofuscacion (Event ID 1)
  3. LOLBins con parametros de descarga o ejecucion (Event ID 1)
  4. Procesos de Office lanzando interpretes de comandos (Event ID 1, cadena de procesos)
  5. Accesos a LSASS (Event ID 10)
  6. CreateRemoteThread entre procesos no relacionados (Event ID 8)
  7. DLLs sin firma cargadas por procesos firmados (Event ID 7)
  8. Conexiones de red desde procesos inusuales (Event ID 3)
  9. Persistencia via claves de registro Run (Event ID 13)
  10. DNS anomalo: subdominios largos, alto volumen, TXT queries (Event ID 22)

Conclusion

Sysmon transforma la capacidad de hunting en endpoints Windows. Con una configuracion adecuada y un buen SIEM para centralizar y consultar los datos, Sysmon proporciona la visibilidad necesaria para detectar la mayoria de las tecnicas que usan los adversarios en la fase de post-explotacion.

Los 8 Event IDs cubiertos en este articulo no son exhaustivos, pero representan el 80% del valor de hunting que Sysmon ofrece. Un hunter que domine la interpretacion de estos eventos y sus correlaciones estara equipado para detectar inyeccion de procesos, movimiento lateral, persistencia, exfiltracion y comunicacion con C2.

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.