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 |
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.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