1. Introducción y Objetivos
En este laboratorio abordaremos la máquina "Attacktive Directory" de TryHackMe. El objetivo principal es realizar una auditoría de seguridad completa sobre un Controlador de Dominio (Domain Controller) para comprender las vulnerabilidades más comunes en entornos de Active Directory (AD).
El Directorio Activo es la columna vertebral de la mayoría de las redes corporativas, gestionando identidades, autenticación y permisos. Comprometer un Controlador de Dominio otorga al atacante control total sobre toda la red, los usuarios y los recursos de la organización.
Metodología y Flujo del Ataque
Para comprometer este servidor, seguiremos una metodología estructurada en las siguientes fases:
Reconocimiento: Escaneo de puertos y servicios para identificar el entorno.
Enumeración de Usuarios (Kerbrute): Descubrimiento de usuarios válidos interactuando con Kerberos.
Explotación (AS-REP Roasting): Obtención de hashes de usuarios con configuraciones inseguras (sin pre-autenticación).
Movimiento Lateral (SMB): Acceso a recursos compartidos y hallazgo de credenciales ocultas.
Escalada de Privilegios (DCSync): Abuso de privilegios de respaldo para volcar la base de datos NTDS.dit.
Dominio Total (Pass-The-Hash): Acceso final como Administrador.
2. Reconocimiento y Escaneo
Comenzamos realizando un escaneo de puertos con nmap para identificar los servicios expuestos en el objetivo.
Una vez detectados los puertos abiertos, lanzamos un escaneo de servicios y versiones:
Análisis de Resultados
El escaneo confirma que esta máquina es el Controlador de Dominio (DC).
Identidad del Objetivo:
Dominio: spookysec.local
Hostname: ATTACKTIVEDIREC
Puertos Críticos:
53 (DNS) y 3268 (LDAP): Confirman la presencia de Active Directory.
80 (HTTP): Servidor IIS activo.
139/445 (SMB): Vital para enumeración y movimiento lateral.
88 (Kerberos): Puerto estándar para autenticación en AD.
5985 (WinRM): Servicio de administración remota (posible vía de acceso si obtenemos credenciales).
Nota Importante: Antes de continuar, es necesario agregar la IP y el dominio al archivo /etc/hosts para que las herramientas de Kerberos funcionen correctamente:
3. Enumeración Inicial
Intento con Enum4Linux
Intentamos enumerar usuarios y recursos compartidos utilizando enum4linux:
Resultado:
La herramienta logró conectarse mediante una sesión nula (Null Session), confirmando el SID del dominio THM-AD, pero falló al listar usuarios (NT_STATUS_ACCESS_DENIED). Esto nos obliga a utilizar un método más agresivo y específico para AD: Kerbrute.
4. Enumeración de Usuarios con Kerbrute
Utilizamos Kerbrute para validar nombres de usuario contra el servicio Kerberos. Esta herramienta es efectiva porque el DC responde de manera diferente si un usuario existe o no.
Paso 1: Escaneo General (Discovery)
Iniciamos la enumeración utilizando una lista extensa (xato-net-10-million-usernames.txt) para encontrar nombres comunes.
Resultados iniciales:
La herramienta identificó rápidamente 6 usuarios válidos:
administrator
backup
james
robin
darkstar
paradox
Paso 2: Optimización y Búsqueda de Cuentas de Servicio
Dado que la lista utilizada es inmensa, optamos por filtrarla buscando patrones de Cuentas de Servicio (svc, admin, service), las cuales suelen ser vulnerables.
Comando de filtrado:
Ejecutamos Kerbrute con la lista optimizada:
Hallazgo Crítico:
Encontramos al usuario: svc-admin.
Paso 3: Consolidación
Creamos un archivo users.txt con todos los usuarios encontrados para la siguiente fase:
- administrator
- backup
- james
- robin
- darkstar
- paradox
- svc-admin
5. Explotación: AS-REP Roasting
El ataque AS-REP Roasting consiste en buscar usuarios que tengan habilitada la opción "Do not require Kerberos preauthentication". Si es así, podemos solicitar su ticket (TGT) cifrado y crackearlo offline.
Comando ejecutado:
Resultado:
Obtuvimos el hash del usuario svc-admin.
Cracking del Hash
Utilizamos Hashcat con el modo 18200 (Kerberos 5 AS-REP etype 23) y el diccionario rockyou.txt.
Contraseña obtenida: management2005
6. Enumeración de Recursos Compartidos (SMB)
Con las credenciales de svc-admin, accedemos a los recursos compartidos del servidor.
Hallazgo:
Entre los recursos por defecto (C$, IPC$), encontramos una carpeta atípica llamada backup. Accedemos a ella:
Dentro encontramos el archivo backup_credentials.txt que contiene una cadena en Base64.
Decodificación:
Resultado: [email protected]:backup2517860
Nuevas credenciales obtenidas: Usuario: backup | Contraseña: backup2517860
7. Escalada de Privilegios (DCSync)
Las cuentas de respaldo (backup) a menudo poseen el privilegio SeBackupPrivilege o derechos de replicación. Aprovechamos esto para volcar la base de datos de contraseñas (NTDS.dit) del dominio usando secretsdump.
Comando ejecutado:
Resultado:
La herramienta volcó exitosamente los hashes NTLM de todos los usuarios, incluyendo al Administrator.
Hash del Administrador:
Administrator:500:aad3b...:0e0363213e37b94221497260b0bcb4fc:::
8. Dominio Total: Pass-The-Hash
No necesitamos crackear el hash del Administrador. Podemos utilizar la técnica Pass-The-Hash para autenticarnos directamente usando evil-winrm.
Comando de acceso:
¡Acceso conseguido! Ahora tenemos una shell interactiva como Administrador del sistema.
Captura de Banderas (Flags)
Para finalizar el reto, leemos las banderas en los escritorios de los usuarios comprometidos:
svc-admin:
backup:
Administrator:
9. Recomendaciones y Mitigación
Tras comprometer exitosamente el Controlador de Dominio, se han identificado tres vectores de ataque críticos. A continuación, se detallan las acciones correctivas recomendadas:
1. Mitigación de AS-REP Roasting
Problema: La cuenta svc-admin no requería pre-autenticación Kerberos.
Solución: Habilitar la "Pre-autenticación de Kerberos" para todas las cuentas de servicio. Si no es posible por compatibilidad, utilizar contraseñas extremadamente complejas (+25 caracteres) que resistan ataques de diccionario.
2. Gestión de Credenciales y SMB
Problema: Credenciales en texto plano (codificadas en Base64) almacenadas en una carpeta compartida accesible (backup).
Solución: Eliminar credenciales de archivos de texto. Restringir los permisos de lectura de los recursos compartidos bajo el principio de mínimo privilegio.
3. Restricción de Privilegios de Respaldo
Problema: La cuenta backup permitió un ataque DCSync para volcar todos los hashes del dominio.
Solución: Implementar un modelo de administración por niveles (Tiered Administration). Las cuentas con capacidad de replicar el dominio (Tier 0) deben estar fuertemente auditadas y restringidas.
Laboratorio completado exitosamente.