Parte: 3 — Hacking ético y pentesting: metodología · Fuente: MITRE ATT&CK, tácticas de Lateral Movement (TA0008); Peter Kim - "The Hacker Playbook 3" ⏱️ Duración estimada: 130 min · Nivel: Avanzado
El alumno aprenderá a extender el acceso desde un primer host comprometido hacia otros sistemas de una red interna o de un dominio Active Directory, reutilizando credenciales y hashes obtenidos de forma responsable, usando PsExec, WMI/WinRM y técnicas de Pass-the-Hash, y a mapear conceptualmente esas rutas con BloodHound, entendiendo el valor defensivo de detectar estos movimientos.
Al finalizar, el alumno podrá:
| # | Tema | Por qué importa |
|---|---|---|
| 1 | NTLM y Pass-the-Hash | El hash es suficiente para autenticarse, no se necesita la contraseña en claro |
| 2 | PsExec (Sysinternals / impacket) | Ejecución remota clásica vía SMB creando un servicio temporal |
| 3 | WMI y WinRM | Alternativas de ejecución remota más sigilosas que PsExec |
| 4 | CrackMapExec | Valida credenciales y privilegios a escala en toda una subred |
| 5 | BloodHound (concepto) | Visualiza rutas de escalada hacia Domain Admin en Active Directory |
| 6 | Pass-the-Ticket (Kerberos) | Reutiliza tickets robados en lugar de hashes NTLM |
| 7 | MITRE ATT&CK - Lateral Movement | Estandariza el vocabulario y facilita la detección estructurada |
Comprometer una máquina rara vez es el fin. El objetivo real suele estar en otro sitio —el controlador de dominio, el servidor de bases de datos, los datos de negocio—, y llegar allí requiere movimiento lateral: usar el acceso y las credenciales de un host para autenticarse en el siguiente, y así sucesivamente. En un entorno Windows con Active Directory, esto es la esencia del ataque, y su combustible son las credenciales recolectadas en la post-explotación (la Clase 074).
El concepto que hay que interiorizar antes que ningún comando es que en Windows, con el
protocolo NTLM, el hash de la contraseña es funcionalmente equivalente a la contraseña
misma. Para autenticarse, el sistema no compara contraseñas en claro: usa el hash NTLM. Eso
significa que un atacante que obtenga el hash (con hashdump o Mimikatz) puede autenticarse
sin romperlo, presentándolo directamente. Es el Pass-the-Hash (PtH), y desmonta la
intuición de que robar un hash "solo sirve si lo crackeas": para NTLM, tener el hash es
tener la credencial. Si además ese hash es de un usuario administrador reutilizado en muchas
máquinas —el pecado clásico de la cuenta de administrador local compartida—, un solo hash
abre media red.
Con una credencial válida (o su hash), hay varias formas de ejecutar código en otra máquina. PsExec —el original de Sysinternals o la versión de impacket— es la clásica: usa SMB para copiar un servicio temporal en el objetivo y ejecutarlo, lo que es fiable pero ruidoso (crea un servicio, deja rastro en los logs). WMI y WinRM son alternativas más sigilosas: aprovechan mecanismos de gestión legítimos de Windows, lo que hace su tráfico más difícil de distinguir de la administración normal. CrackMapExec / NetExec es la navaja suiza que valida un conjunto de credenciales contra toda una subred de una vez, diciendo en qué máquinas funcionan y con qué privilegios —lo que convierte un hash en un mapa de por dónde se puede mover el atacante—.
En Active Directory moderno el movimiento también usa Kerberos: el Pass-the-Ticket reutiliza tickets robados (TGT o TGS) en lugar de hashes NTLM, y variantes como Golden/Silver Ticket forjan tickets con material de clave comprometido (se profundiza en la Parte 7). La herramienta que ordena todo este caos es BloodHound: recolecta la estructura de AD —usuarios, grupos, sesiones, permisos— y la representa como un grafo en el que se pueden calcular automáticamente las rutas más cortas hacia Domain Admin. Convierte una pregunta que costaría días de análisis manual ("¿cómo llego desde este usuario cualquiera a controlar el dominio?") en una consulta de segundos, y es igual de valiosa para el defensor, que la usa para encontrar y cortar esas rutas antes de que las use un atacante.
Todo esto se cataloga en la táctica Lateral Movement de MITRE ATT&CK, y usar ese vocabulario no es pedantería: estandariza el hallazgo para que el equipo azul sepa exactamente qué técnica detectar y el informe hable el mismo idioma que las defensas. La contramedida de fondo, que enlaza con la Clase 042, es la segmentación y no reutilizar credenciales de administrador: si cada máquina tiene su propia contraseña de administrador local (LAPS) y las redes están segmentadas, un hash robado deja de abrir el reino entero.
psexec.py) que ejecuta comandos remotos vía SMB creando un servicio temporal en el host destino. Característica clave: es efectiva pero ruidosa, ya que deja artefactos de creación de servicio en el Event Log.wmiexec.py de impacket la usa para ejecución de comandos sin crear un servicio persistente. Característica clave: más sigilosa que PsExec porque no deja un binario ni un servicio en disco.evil-winrm ofrece una shell interactiva cómoda. Característica clave: requiere que el servicio WinRM esté habilitado y accesible en el destino.Pwn3d! señala admin local confirmado en ese host.| Término | Definición concisa |
|---|---|
| Movimiento lateral | Usar un host comprometido para autenticarse en el siguiente |
| NTLM | Protocolo de autenticación de Windows basado en hash |
| Pass-the-Hash | Autenticarse con el hash NTLM sin la contraseña en claro |
| Reutilización de credenciales | Un administrador compartido abre muchas máquinas |
| PsExec | Ejecución remota vía SMB creando un servicio temporal |
| impacket | Suite de Python con implementaciones de PsExec, WMI, etc. |
| WMI / WinRM | Ejecución remota más sigilosa, sobre gestión legítima |
| CrackMapExec / NetExec | Valida credenciales y privilegios a escala en una subred |
| Kerberos | Protocolo de autenticación de AD basado en tickets |
| Pass-the-Ticket | Reutilizar tickets Kerberos robados |
| TGT / TGS | Tickets de Kerberos (concesión y servicio) |
| BloodHound | Grafo de AD que calcula rutas hacia Domain Admin |
| MITRE ATT&CK | Taxonomía de técnicas; táctica Lateral Movement |
| LAPS | Contraseña de administrador local única por máquina |
pip install impacket o pipx install impacket; incluye psexec.py, wmiexec.py, smbexec.py y secretsdump.py.pip install crackmapexec o pip install netexec.gem install evil-winrm, requiere Ruby instalado.secretsdump.py tras una escalada de privilegios autorizada).bloodhound-python -u user -p pass -d dominio.local -ns 10.10.10.5 -c all) y su interfaz de análisis en Neo4j.Todas las técnicas de esta clase reutilizan credenciales reales para acceder a más sistemas. Practica esto exclusivamente dentro de tu laboratorio propio o del alcance autorizado por un contrato de pentesting con reglas de engagement firmadas. Usar estas técnicas fuera de ese alcance es acceso no autorizado y constituye delito.
LM:NT), valida en qué hosts de la subred la credencial es admin local: crackmapexec smb 192.168.56.0/24 -u administrador -H <hash_NT>.Pwn3d! confirman privilegios administrativos; anótalos como objetivos de movimiento lateral.wmiexec.py -hashes :<hash_NT> dominio/administrador@192.168.56.20.psexec.py dominio/administrador@192.168.56.20 -hashes :<hash_NT>.evil-winrm -i 192.168.56.20 -u administrador -H <hash_NT>.secretsdump.py dominio/administrador@192.168.56.20 -hashes :<hash_NT>.bloodhound-python o SharpHound (en tu laboratorio), analiza el grafo para identificar visualmente la ruta más corta hacia Domain Admin.bloodhound-python -u administrador -p 'Password123' -d dominio.local -ns 10.10.10.5 -c all, importa el resultado en la interfaz de BloodHound y ejecuta la consulta prediseñada "Shortest Paths to Domain Admins".whoami /priv para verificar los privilegios disponibles.secretsdump.py contra un host de laboratorio y explica qué contenidos obtienes (SAM, LSA secrets, cached domain credentials).Reto: en tu laboratorio de Active Directory propio, demuestra una cadena de movimiento lateral de al menos dos saltos partiendo de un host inicial comprometido.
Criterio de aceptación: el alumno documenta los dos (o más) hosts alcanzados, la técnica exacta usada en cada salto (Pass-the-Hash con PsExec/WMI/WinRM), la credencial que permitió el salto, y una salida de verificación (whoami/hostname) capturada en cada host de la cadena.
| Síntoma / mensaje | Causa y cómo arreglar |
|---|---|
CrackMapExec no muestra Pwn3d! en ningún host |
La cuenta no tiene privilegios administrativos ahí; prueba con otra credencial u otro host |
STATUS_LOGON_FAILURE al usar el hash |
Formato de hash o dominio incorrecto; verifica el formato :hash_NT y el nombre exacto del dominio |
| PsExec es bloqueado por el antivirus/EDR | Comportamiento esperado; usa wmiexec, que es más sigiloso al no crear un servicio persistente |
| evil-winrm no conecta | El puerto 5985 está cerrado o WinRM no está habilitado; confírmalo con un escaneo de puertos antes de intentar |
secretsdump.py devuelve una salida vacía |
La cuenta no tiene privilegios administrativos suficientes en el host remoto; escala privilegios primero |
| BloodHound no muestra ninguna ruta hacia Domain Admin | Los datos de recolección (SharpHound) están incompletos; vuelve a ejecutar la recolección con todos los métodos habilitados |
❓ ¿Por qué NTLM permite Pass-the-Hash y Kerberos no de la misma forma? Porque NTLM valida directamente el hash en un intercambio reto-respuesta, mientras que Kerberos usa tickets con tiempos de expiración y cifrado distinto; aun así, Kerberos tiene su propio equivalente llamado Pass-the-Ticket u Overpass-the-Hash.
❓ ¿Cuándo debo preferir wmiexec sobre PsExec? Cuando el sigilo importa: wmiexec no crea un servicio ni deja un binario en disco, mientras que PsExec sí, lo que lo hace mucho más visible para un EDR o para un analista revisando el Event Log.
❓ ¿Qué aporta BloodHound que CrackMapExec no da? CrackMapExec valida credenciales host por host; BloodHound construye el grafo completo de relaciones (sesiones, membresías de grupo, ACLs) para mostrar la ruta óptima de escalada dentro de todo el dominio, no solo host a host.
❓ ¿Cómo detecta un equipo defensivo el movimiento lateral? Correlacionando eventos de autenticación (Event ID 4624/4672), creación de servicios remotos (7045), uso inusual de WMI, y desviaciones respecto al patrón habitual de logons entre hosts; herramientas EDR y SIEM son clave para esta detección.
❓ ¿Por qué mi organización debería ejecutar BloodHound contra su propio dominio? Porque revela rutas de escalada reales (grupos anidados, ACLs delegadas, sesiones cacheadas) que un administrador de AD normalmente no puede ver a simple vista, permitiendo priorizar remediaciones antes de que un atacante las use.
Clase 077 — Escalada de privilegios en Windows