Intermediothreat-huntingmovimiento-lateralwindowsATT&CKdeteccioncredenciales

Hunting de Movimiento Lateral: Detectar PsExec, WMI, RDP y Pass-the-Hash

Como detectar movimiento lateral en una red corporativa. Tecnicas de hunting para PsExec, WMI remoto, RDP, Pass-the-Hash, Pass-the-Ticket y SMB lateral movement con consultas practicas para SIEM y EDR.

MalwareIntel Research··9 min lectura
Serie: Threat Hunting — Parte 6

Que es el Movimiento Lateral

El movimiento lateral (MITRE ATT&CK Tactic TA0008) es el conjunto de tecnicas que un adversario usa para moverse de un sistema comprometido a otros sistemas dentro de la red. Es una de las fases mas criticas del ciclo de ataque: sin movimiento lateral, un atacante queda confinado al sistema inicial de compromiso y no puede alcanzar sus objetivos (datos sensibles, domain controllers, sistemas criticos).

Para el threat hunter, detectar movimiento lateral es de alto valor porque indica que el adversario ya tiene presencia en la red y esta expandiendo su acceso. Detectarlo a tiempo puede contener el compromiso antes de que alcance activos criticos.

PsExec y Variantes (T1021.002, T1569.002)

PsExec, de Sysinternals, permite ejecutar procesos en sistemas remotos usando SMB y el Service Control Manager (SCM). Es una herramienta legitima de administracion, pero tambien es una de las favoritas de los adversarios para movimiento lateral.

Como funciona PsExec

  1. Se conecta al host remoto via SMB (puerto 445)
  2. Copia un ejecutable al share ADMIN$ del host remoto
  3. Crea un servicio Windows remoto que ejecuta el binario
  4. El servicio ejecuta el comando y devuelve la salida

Artefactos detectables

En el host origen (Sysmon Event ID 1):

Image: *\PsExec.exe o *\PsExec64.exe
CommandLine: parametros con \\hostname y -s, -d, -c

En el host destino:

  • Sysmon Event ID 1: creacion de PSEXESVC.exe (o nombre personalizado con -r)
  • Sysmon Event ID 11: creacion del ejecutable en C:\Windows (copia temporal)
  • Sysmon Event ID 13: creacion de servicio en el registro
  • Windows Event ID 7045: instalacion de nuevo servicio (System log)
  • Windows Event ID 4624: logon tipo 3 (Network) con la cuenta usada

En la red (Zeek):

  • conn.log: conexion TCP al puerto 445 entre hosts internos
  • smb_mapping.log: acceso al share ADMIN$ o C$

Consulta de hunting

# Sysmon: instalacion de servicio PSEXESVC (o variante)
event.code: "7045" AND
winlog.event_data.ServiceName: (*PSEXESVC* OR *csexec* OR *paexec*) AND
winlog.event_data.ServiceFileName: (*ADMIN$* OR *\\Windows\\*)

# Alternativa: cualquier servicio nuevo creado desde linea de comandos
event.code: "7045" AND
NOT winlog.event_data.ServiceName: (conocido1 OR conocido2)

Variantes de PsExec

Los adversarios suelen usar variantes para evadir deteccion por nombre:

  • PAExec: alternativa open source, misma mecanica
  • CSExec: variante en C# que permite nombre de servicio personalizado
  • Impacket psexec.py: implementacion en Python, no copia PsExec.exe al host remoto
  • Impacket smbexec.py: usa un bat file temporal en lugar de un servicio persistente
  • Impacket atexec.py: usa tareas programadas en lugar de servicios

Todas estas variantes generan artefactos similares: logon tipo 3, acceso a shares administrativos y creacion de servicios o tareas programadas.

WMI Remoto (T1047)

Windows Management Instrumentation permite ejecutar comandos en hosts remotos mediante el servicio WMI.

Como funciona

  1. El adversario usa WMIC o PowerShell con Invoke-WmiMethod
  2. Se conecta al servicio WMI del host remoto (DCOM, puerto 135 + puerto dinamico)
  3. Ejecuta un comando mediante Win32_Process.Create

Artefactos detectables

En el host destino (Sysmon Event ID 1):

ParentImage: *\WmiPrvSE.exe
Image: cmd.exe, powershell.exe, o cualquier otro proceso

La cadena clave es: WmiPrvSE.exe lanzando procesos hijos.
WmiPrvSE.exe es el proceso host de WMI y lanza los comandos
remotos como procesos hijos.

En el host origen:

  • Sysmon Event ID 1: ejecucion de wmic.exe con /node: parametro
  • Sysmon Event ID 3: conexion al puerto 135 del host destino

Windows Event Logs (destino):

  • Event ID 4624: logon tipo 3 (Network)
  • Event ID 4648: logon explicito con credenciales

Consulta de hunting

# Procesos lanzados por WmiPrvSE (ejecucion remota WMI)
event.code: "1" AND
process.parent.name: "WmiPrvSE.exe" AND
process.name: ("cmd.exe" OR "powershell.exe" OR "mshta.exe" OR "regsvr32.exe")
# Splunk: WMI remoto
index=sysmon EventCode=1 ParentImage="*WmiPrvSE.exe"
| where NOT match(Image, "(?i)(WmiPrvSE|WerFault|WMIADAP)")
| stats count by Computer, User, Image, CommandLine
| sort -count

Remote Desktop Protocol (T1021.001)

RDP es la herramienta de administracion remota mas comun en entornos Windows. Los adversarios la usan porque proporciona una interfaz grafica completa, permite transferencia de archivos y es un protocolo esperado en la red.

Artefactos detectables

Windows Security Events:

  • Event ID 4624: logon tipo 10 (RemoteInteractive) con IP origen
  • Event ID 4778: sesion reconectada (si el adversario reconecta una sesion existente)
  • Event ID 4779: sesion desconectada

Sysmon (host destino):

  • Event ID 1: mstsc.exe en el host origen (si es visible)
  • Event ID 3: conexion entrante al puerto 3389

Zeek:

  • conn.log: conexiones TCP al puerto 3389 entre hosts internos

Indicadores de RDP anomalo

El RDP legitimo tiene patrones predecibles. El RDP malicioso se diferencia por:

Anomalias de RDP a buscar:
  - Sesiones RDP desde hosts que normalmente no usan RDP
  - RDP a servidores que no requieren acceso grafico remoto
  - Sesiones RDP fuera del horario laboral habitual
  - RDP con cuentas de servicio o cuentas privilegiadas sin justificacion
  - RDP desde un host a muchos hosts en poco tiempo (lateral spread)
  - RDP usando puerto no estandar (redirigido)

Consulta de hunting

# Logons RDP (tipo 10) con analisis de patrones
event.code: "4624" AND
winlog.event_data.LogonType: "10" AND
NOT source.ip: (known_admin_ip1 OR known_admin_ip2)
| stats count by source.ip, user.name, host.name
| sort -count

Pass-the-Hash (T1550.002)

Pass-the-Hash (PtH) permite autenticarse en un sistema remoto usando el hash NTLM de la contrasena, sin conocer la contrasena en texto claro. Es una de las tecnicas de movimiento lateral mas peligrosas porque no requiere cracking.

Como funciona

  1. El adversario obtiene el hash NTLM de una cuenta (via Mimikatz, dumping de SAM)
  2. Usa el hash para autenticarse via NTLM en otro host (sin necesidad del password)
  3. El protocolo NTLM acepta el hash como credencial valida

Artefactos detectables

La deteccion de PtH es indirecta porque el protocolo funciona como esperado. Los indicadores son:

Windows Security Events:

  • Event ID 4624: logon tipo 3 (Network) con LogonProcess: NtLmSsp y AuthenticationPackage: NTLM
  • El campo SubjectLogonId es diferente de la sesion interactiva del usuario
  • Event ID 4776: validacion de credenciales NTLM

Indicadores de sospecha:

Buscar Event ID 4624 donde:
  - LogonType es 3 (Network)
  - AuthenticationPackage es NTLM (no Kerberos)
  - La cuenta que se autentica es una cuenta privilegiada
  - El host origen no es la estacion de trabajo habitual de esa cuenta
  - El dominio de LogonProcess es el dominio local, no el dominio AD

La dificultad con PtH es que genera eventos identicos a un logon NTLM legitimo. La deteccion depende de saber que cuentas deberian autenticarse via NTLM vs Kerberos y desde que hosts.

Pass-the-Ticket (T1550.003)

Similar a PtH pero usando tickets Kerberos robados (TGT o TGS) en lugar de hashes NTLM.

Artefactos detectables

Windows Security Events:

  • Event ID 4768: peticion de TGT (KRB_AS_REQ) desde un host inusual para esa cuenta
  • Event ID 4769: peticion de TGS donde el campo Account Name no coincide con el host que solicita el ticket

Indicadores de Golden Ticket:

  • Event ID 4769 con un ticket TGT que tiene lifetime inusualmente largo
  • TGT emitido sin un Event ID 4768 previo correspondiente (el ticket fue creado, no solicitado)

Consulta de hunting

# Kerberos TGS requests desde hosts anomalos
event.code: "4769" AND
NOT source.ip: (known_dc_ip) AND
winlog.event_data.ServiceName: "krbtgt"

SMB Lateral Movement

Independientemente de la herramienta usada (PsExec, WMI, manual), el movimiento lateral via SMB genera patrones detectables en los logs de acceso a shares.

Windows Event IDs relevantes

  • 5140: Share accessed (un recurso compartido fue accedido)
  • 5145: Detailed file share access (acceso detallado con nombres de archivo)

Consulta de hunting

# Acceso a shares administrativos desde hosts no autorizados
event.code: "5140" AND
winlog.event_data.ShareName: ("\\\\*\\ADMIN$" OR "\\\\*\\C$" OR "\\\\*\\IPC$") AND
NOT source.ip: (authorized_admin_workstations)

Patron de lateral spread

Un indicador claro de movimiento lateral es un host que accede a shares administrativos en multiples hosts en un periodo corto:

Buscar en Event ID 5140 donde:
  - Un mismo source IP accede a ADMIN$ o C$ en mas de 3
    hosts distintos en 1 hora
  - Agrupar por SourceAddress, contar destinos unicos
  - Ordenar de mayor a menor

PowerShell Remoting (T1021.006)

PowerShell Remoting (WinRM, puerto 5985/5986) permite ejecucion remota de comandos PowerShell.

Artefactos detectables

En el host destino (Sysmon Event ID 1):

ParentImage: *\wsmprovhost.exe
Image: powershell.exe

wsmprovhost.exe es el host process de WinRM. Todo proceso
lanzado como hijo de wsmprovhost es ejecucion remota via
PowerShell Remoting.

Windows Event Logs:

  • Event ID 4624: logon tipo 3 con proceso WinRM
  • PowerShell Event ID 4103/4104: transcripcion de los comandos ejecutados (si esta habilitada)
  • WinRM Event ID 91: inicio de sesion remota

Consulta de hunting

# Ejecucion remota via PowerShell Remoting
event.code: "1" AND
process.parent.name: "wsmprovhost.exe"
| stats count by host.name, user.name, process.command_line

Estrategia Integral de Hunting para Movimiento Lateral

Paso 1: Mapear la actividad legitima

Antes de buscar movimiento lateral malicioso, documenta el movimiento lateral legitimo:

  • Que cuentas usan RDP y a que servidores
  • Que herramientas de administracion remota usa IT (SCCM, WMI, PowerShell Remoting)
  • Que patrones de acceso SMB son normales (backups, scripts de despliegue)
  • En que horarios se realizan tareas de administracion remota

Paso 2: Identificar anomalias

Con el baseline definido, busca desviaciones:

  • Cuentas accediendo a hosts fuera de su scope
  • Herramientas de administracion remota usadas por usuarios no administrativos
  • Patrones de acceso secuencial (host A accede a B, luego B accede a C)
  • Horarios fuera de lo normal
  • Uso de NTLM cuando deberia ser Kerberos

Paso 3: Correlacionar fuentes

Un unico evento de movimiento lateral raramente es conclusivo. La correlacion con multiples fuentes aumenta la confianza:

  1. Sysmon en endpoint: proceso padre, linea de comandos, usuario
  2. Windows Security: logon events, tipo de autenticacion
  3. Zeek: conexiones SMB/RDP/WMI a nivel de red
  4. Active Directory: cambios de grupo, creacion de cuentas

Paso 4: Buscar progresion

El movimiento lateral malicioso suele seguir una progresion: endpoint de usuario, servidor de aplicacion, domain controller. Busca cadenas de acceso que progresen en nivel de privilegio o criticidad de los sistemas.

Conclusion

El movimiento lateral es una de las fases del ataque donde la deteccion proactiva marca mayor diferencia. Los adversarios necesitan moverse lateralmente para alcanzar sus objetivos, y cada salto genera artefactos detectables en los logs de endpoint, autenticacion y red.

La clave no es monitorizar cada herramienta individual, sino entender los patrones de acceso legitimos y detectar las desviaciones. Un baseline solido de "quien accede a que, cuando y como" es mas valioso que mil reglas de deteccion sin contexto.

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.