Panorama#
El movimiento lateral es la fase en que el atacante, ya con una credencial en la mano, la propaga de una máquina a otra hasta alcanzar el objetivo —un controlador de dominio, un servidor de ficheros, la cuenta con los derechos que busca—. Su rasgo definitorio en Active Directory es que casi nunca hace falta la contraseña en texto claro: el material que 4.5 · Credential dumping extrae —un NT hash o un ticket Kerberos— es credencial suficiente por sí mismo. Windows fue diseñado para el single sign-on: una vez que el sistema tiene con qué probar tu identidad, no vuelve a pedir la contraseña. El atacante explota exactamente esa comodidad, presentando el secreto robado allí donde el protocolo lo acepta.
Este capítulo ordena las tres técnicas canónicas por el tipo de material que reutilizan y por el protocolo que engañan. Pass-the-Hash presenta un NT hash directamente al flujo NTLM. Overpass-the-Hash toma ese mismo hash y lo reingresa a Kerberos para obtener un TGT legítimo —el puente entre los dos mundos de 4.3 · NTLM y 4.2 · Kerberos—. Pass-the-Ticket salta el hash por completo y reinyecta un ticket ya emitido. Sobre esas tres primitivas de autenticación se montan las vías de ejecución —SMB, WMI, WinRM, DCOM— y un orquestador, NetExec, que las combina y las escala a subredes enteras. La defensa comparte un eje: cortar la reutilización de secretos (aislamiento de privilegios, Credential Guard, cuentas de administrador local únicas) y detectar la anomalía de un logon que llega sin la contraseña que debería haberlo precedido.
flowchart TD
H["Material robado\n(4.5 · Credential dumping)"] --> NT["NT hash"]
H --> TK["Ticket Kerberos\n(.kirbi / .ccache)"]
NT -->|"presentar al flujo NTLM"| PTH["Pass-the-Hash\n(protocolo NTLM)"]
NT -->|"pedir un TGT con el hash\ncomo clave"| OPH["Overpass-the-Hash\n(entra a Kerberos)"]
OPH --> TGT["TGT legítimo\nemitido por el KDC"]
TK -->|"reinyectar en la sesión"| PTT["Pass-the-Ticket"]
TGT --> PTT
PTH --> EXEC{"Vía de ejecución"}
PTT --> EXEC
EXEC -->|"445 / servicio"| SMB["PsExec · SMBexec"]
EXEC -->|"135 / DCOM"| WMI["WMIexec · DCOM\n(MMC20 / ShellWindows)"]
EXEC -->|"5985"| WINRM["WinRM · evil-winrm"]
SMB --> NEXT["Nueva máquina\n→ repetir el ciclo"]
WMI --> NEXT
WINRM --> NEXTPass-the-Hash: el NT hash como credencial#
Pass-the-Hash (PtH) explota la mecánica de NTLM descrita en 4.3 · NTLM: la autenticación challenge/response nunca transmite la contraseña, solo una respuesta calculada a partir del NT hash. Y ese hash no es un resumen de un solo uso de la contraseña, sino su equivalente funcional: quien lo posee puede calcular la respuesta correcta a cualquier desafío sin conocer el texto claro. Presentar el NT hash a una herramienta que habla NTLM produce, por tanto, una sesión autenticada plena. No hay que crackearlo; el hash es la credencial.
La consecuencia operativa es directa: un NT hash volcado de la memoria de una máquina (LSASS) o de la base de datos del dominio (NTDS.dit) sirve para autenticarse en cualquier otra máquina donde esa misma cuenta tenga acceso. El escenario clásico —y el más rentable— es la contraseña de administrador local reutilizada: si todas las estaciones comparten el mismo administrador local, un solo hash abre la red entera. De ahí que la mitigación central sea LAPS, que asigna a cada equipo una contraseña de administrador local distinta y rotada.
# PtH con Impacket: NT hash en vez de contraseña (formato LMhash:NThash, LM en blanco)
psexec.py -hashes :64FBAE31CC352FC26AF97CBDEF151E03 corp/administrator@10.0.0.5
wmiexec.py -hashes :64FBAE31CC352FC26AF97CBDEF151E03 corp/administrator@10.0.0.5
# PtH con NetExec, validando el hash a lo ancho de una subred
nxc smb 10.0.0.0/24 -u administrator -H 64FBAE31CC352FC26AF97CBDEF151E03 --local-auth
LocalAccountTokenFilterPolicy=1 está activado. Es la misma corrección que se detalla en
4.2 · Kerberos: PtH con un administrador local que no sea la RID 500 puede autenticar pero
recibir un token restringido, sin el acceso administrativo esperado.Overpass-the-Hash: del hash a un ticket Kerberos#
Overpass-the-Hash (también pass-the-key) resuelve la principal limitación de PtH: que solo funciona donde se acepta NTLM. La técnica toma el NT hash y lo usa como clave secreta de la cuenta en la petición AS-REQ inicial de Kerberos, obteniendo a cambio un TGT auténtico emitido por el KDC. A partir de ahí el atacante opera con Kerberos “limpio” —pide tickets de servicio, se mueve por SMB/LDAP/CIFS— con un TGT que el dominio considera legítimo porque, en efecto, lo emitió él. Es el puente que convierte un secreto NTLM en una identidad Kerberos completa, útil sobre todo donde NTLM está deshabilitado o vigilado.
# Overpass-the-Hash con Rubeus: el NT hash (RC4) se convierte en un TGT
Rubeus.exe asktgt /user:svc_sql /rc4:64FBAE31CC352FC26AF97CBDEF151E03 /ptt
# Con AES en vez de RC4 (más sigiloso — evita el 4768 con eType RC4)
Rubeus.exe asktgt /user:svc_sql /aes256:<clave-aes256> /ptt
eType 0x17), inusual en un dominio moderno que negocia AES por defecto — y esa es
precisamente la firma que el defensor busca en el Event ID 4768 (ver más abajo). Usar la clave AES de la cuenta en
lugar del NT hash produce un TGT indistinguible del tráfico normal. La elección del material de clave es, aquí, una
decisión de OPSEC.Pass-the-Ticket: reinyectar un ticket ya emitido#
Pass-the-Ticket (PtT) salta el hash por completo: reutiliza un ticket Kerberos —un TGT o un TGS— robado de la
memoria de otra sesión. Como en Kerberos el ticket es la credencial, inyectarlo en la sesión actual basta
para heredar la identidad y los accesos de la víctima, sin conocer su contraseña ni su hash. Un usuario de dominio
sin privilegios, con el .kirbi de un administrador inyectado, alcanza recursos que su propia cuenta jamás
tocaría.
El formato del ticket en disco delata la herramienta que lo forjó o extrajo, y determina el comando de inyección:
Mimikatz y Rubeus producen .kirbi (se inyecta con kerberos::ptt), mientras que Impacket produce .ccache (se
inyecta con kerberos::ptc, o se exporta a la variable KRB5CCNAME en Linux). El analista defensivo conviene que
conozca ambos, porque el artefacto en disco indica el toolkit del adversario.
# Extraer los tickets de la sesión a .kirbi y reinyectar uno (Pass-the-Ticket)
mimikatz # sekurlsa::tickets /export
mimikatz # kerberos::ptt [0;12bd0]-2-0-40e10000-aarti@krbtgt-CORP.LOCAL.kirbi
mimikatz # misc::cmd # abre una consola con la identidad de la víctima
# Impacket / Linux: exportar el .ccache y usarlo con -k
export KRB5CCNAME=administrator.ccache
wmiexec.py -k -no-pass corp/administrator@dc1.corp.local
PtT es también la vía por la que se entregan los tickets forjados de 4.2 · Kerberos: un
Golden Ticket (TGT forjado con el hash de krbtgt) o un Silver Ticket (TGS forjado con el hash de la cuenta de
servicio) solo sirven una vez inyectados en la sesión, y esa inyección es exactamente un Pass-the-Ticket. La forja
crea la credencial; PtT la pone a trabajar.
Las vías de ejecución: SMB, WMI, WinRM, DCOM#
Autenticarse en una máquina remota es una cosa; ejecutar código en ella es otra. Las tres primitivas anteriores resuelven la autenticación; sobre ellas se apoya un abanico de mecanismos de ejecución remota, cada uno con un puerto, un rastro y un grado de sigilo distintos:
- SMB (445) — PsExec / SMBexec. El método clásico: copiar un binario a un recurso administrativo
(
ADMIN$), registrar un servicio que lo ejecute como SYSTEM y recoger la salida. Es fiable pero ruidoso —crea un servicio (Event ID 7045) y toca disco—. La variante SMBexec evita el binario ejecutando comandos vía un servicio efímero. - WMI (135 + puertos dinámicos) — WMIexec. Ejecuta comandos a través de Windows Management Instrumentation, sin instalar un servicio ni escribir un ejecutable — más sigiloso que PsExec porque WMI es un canal administrativo legítimo omnipresente.
- WinRM (5985/5986) — evil-winrm. Windows Remote Management da una sesión interactiva de PowerShell remota; muy usado porque se integra con las credenciales presentadas (hash, ticket) y deja un shell cómodo.
- DCOM (135) — MMC20.Application, ShellWindows, Excel.DDE. Derivado del abuso de permisos de
4.7 · ACLs y persistencia, instancia objetos COM remotos que exponen métodos capaces
de ejecutar comandos. El código corre entonces bajo un proceso legítimo —
mmc.exe,explorer.exe, un proceso de Office— lo que dificulta la atribución: no hay PsExec ni servicio nuevo, solo una aplicación de confianza que, de pronto, lanza uncmd.exe.
# DCOM vía MMC20.Application (el comando corre como hijo de mmc.exe)
$dcom = [activator]::CreateInstance([type]::GetTypeFromProgID("MMC20.Application","10.0.0.5"))
$dcom.Document.ActiveView.ExecuteShellCommand("cmd",$null,"/c calc.exe","7")
# Selección de método de ejecución en NetExec (--exec-method)
nxc smb 10.0.0.5 -u administrator -H <hash> -x "whoami" --exec-method wmiexec
NetExec como orquestador#
NetExec (nxc, sucesor de CrackMapExec) es la herramienta que centraliza el ciclo de movimiento lateral en una
sola interfaz multi-protocolo (SMB, LDAP, WinRM, MSSQL…). Su valor no es una técnica nueva, sino la combinación y
la escala: acepta indistintamente contraseña (-p), NT hash (-H, para Pass-the-Hash) o ticket Kerberos
(-k/--use-kcache, para Pass-the-Ticket), y aplica esa credencial contra un objetivo único o contra una subred
/24 entera. Eso convierte la validación de una credencial robada en un barrido: un solo hash probado contra
cientos de hosts revela de inmediato dónde concede acceso administrativo, dibujando el mapa del movimiento lateral
posible antes de dar el primer salto.
Además de validar y ejecutar (-x/-X para comandos y PowerShell), NetExec descubre lo que alimenta el siguiente
salto: el módulo -M laps recupera contraseñas de administrador local legibles, --sam y --lsa vuelcan
credenciales locales (enlazando con 4.5 · Credential dumping), y -M spider_plus
rastrea recursos compartidos en busca de secretos. Cada acción viene ya etiquetada con su técnica MITRE ATT&CK, lo
que hace de su salida un puente purple directo hacia la detección.
Defensa y detección#
El movimiento lateral se combate en dos frentes: negar la reutilización del secreto (postura) y detectar el logon anómalo que la reutilización produce (telemetría). La postura es la que corta la técnica de raíz; la detección la atrapa cuando la postura falla.
- Cortar la reutilización (postura). LAPS elimina la contraseña de administrador local compartida —el combustible de Pass-the-Hash a escala—. La segmentación por niveles (tiering) impide que una credencial de Tier 0 (administradores de dominio) se exponga en la memoria de una estación de Tier 2, que es donde el atacante la roba. Credential Guard aísla los secretos de LSASS en un enclave de virtualización, y el grupo Protected Users fuerza a sus miembros a usar solo Kerberos con AES (sin NTLM, sin caché de credenciales), neutralizando PtH y el Overpass-the-Hash con RC4 de un plumazo.
- Pass-the-Hash (NTLM). Se detecta en el Event ID 4624 de tipo 3 (network) con paquete de autenticación NTLM donde se esperaría Kerberos, y muy en particular en el logon de una cuenta local por red (correlacionar con 4776). Un mismo hash validándose contra muchos hosts (el fan-out de NetExec) es la firma a escala.
- Overpass-the-Hash / Pass-the-Ticket (Kerberos). La firma de oro del Overpass-the-Hash es un Event ID 4768
(emisión de TGT) con tipo de cifrado RC4 (
0x17) en un dominio que negocia AES — un TGT pedido con el hash en vez de la clave AES. El Pass-the-Ticket, por el contrario, reinyecta un ticket sin pedirlo, así que su señal es la ausencia de un 4768/4769 previo correlacionado con el uso del ticket, sumada a las anomalías de un ticket forjado (tiempos de vida excesivos, RC4). El robo previo que alimenta ambas técnicas se ve en el acceso a LSASS (Sysmon Event ID 10). - Vías de ejecución. PsExec deja la creación de un servicio (Event ID 7045 en el host destino, y 4697),
más el acceso al recurso
ADMIN$(Event ID 5140/5145). WMIexec y DCOM se cazan en la relación padre-hijo de procesos:WmiPrvSE.exe,mmc.exe,explorer.exeo un proceso de Office que engendracmd.exe/powershell.exees intrínsecamente sospechoso (Event ID 4688 con línea de comandos, Sysmon Event ID 1). WinRM aparece como logon de red hacia el puerto 5985 y en los registros de PowerShell remoto.
El mapeo consolidado —las reglas SIEM que correlacionan el logon anómalo con la cadena de ejecución, y los playbooks de respuesta a un movimiento lateral en curso— se desarrolla en 4.9 · Defensa de AD y, del lado del análisis de eventos, en SIEM y detección de movimiento lateral.
Referencias#
red-infra/ad-cluster/cap-01— Módulokerberos::de Mimikatz: Pass-the-Ticket (ptt/ptc), extracción de tickets, formatos.kirbivs.ccache, y la forja de Golden Ticket que PtT entrega.red-infra/ad-cluster/cap-05— NetExec como orquestador multi-protocolo: autenticación por password/hash/ticket, ejecución (--exec-method), módulos de descubrimiento (laps,--sam/--lsa) y mapeo ATT&CK.- MITRE ATT&CK — T1550.002 Pass the Hash, T1550.003 Pass the Ticket, T1021 Remote Services y T1047 WMI.
- Microsoft — guías de Credential Guard, Protected Users y LAPS como mitigaciones de reutilización de credenciales; y de tiering (modelo de niveles administrativos).