Publicado: 20 de Junio de 2025
Autor: José Miguel Romero aKa x3m1SecDificultad: ⭐ Easy
OS: Windows
Técnicas: GPP Password Decryption, Kerberoasting, SMB Enumeration
📝 Descripción
Active es una máquina Windows de dificultad Easy que simula un entorno de Active Directory real. La explotación se centra en la enumeración de recursos SMB accesibles sin autenticación, donde encontramos archivos de Group Policy Preferences (GPP) que contienen credenciales cifradas con una clave conocida públicamente.
Una vez obtenidas las credenciales del usuario de servicio SVC_TGS, aprovechamos que este usuario está configurado con un SPN (Service Principal Name) para realizar un ataque de Kerberoasting, obteniendo el hash TGS del usuario Administrator y crackeándolo offline para conseguir acceso completo al dominio.
Esta máquina es perfecta para practicar técnicas fundamentales de enumeración en entornos Active Directory y entender las vulnerabilidades asociadas a configuraciones incorrectas de Group Policy Preferences.
🎯 Puntos Clave
🔍 Enumeración SMB sin credenciales
🔐 Explotación de Group Policy Preferences (GPP)
🎫 Kerberoasting Attack
📊 Enumeración de Active Directory
🛡️ Escalada de privilegios en entornos Windows
🔭 Reconocimiento
🏓 Ping para verificación en base a TTL
💡 Nota: El TTL cercano a 128 sugiere que probablemente sea una máquina Windows.
🚀 Escaneo de puertos
🔍 Enumeración de servicios
⚠️ Añadimos el siguiente vhost a nuestro fichero /etc/hosts:
📋 Análisis de Servicios Detectados
Puerto
Servicio
Descripción
53
DNS
Microsoft DNS Server
88
Kerberos
Autenticación de dominio
389/636
LDAP/LDAPS
Directorio Active Directory
445
SMB
Recursos compartidos
464
Kpasswd
Cambio de contraseñas Kerberos
🌐 Enumeración de Servicios
🗂️ 445 SMB
Ya que no disponemos de credenciales, comenzamos tratando de enumerar recursos con una null session:
🎉 Encontramos que el recurso Replication es accesible con permisos de lectura sin autenticación.
📁 Descarga del contenido de Replication
🔍 Análisis de Group Policy Preferences
En el directorio /Active/Policies/{31B2F340-016D-11D2-945F-00C04FB984F9}/MACHINE/Preferences/Groups/ encontramos un archivo Groups.xml que contiene credenciales cifradas:
🔐 Explotación de GPP (Group Policy Preferences)
🧠 ¿Qué es GPP y por qué es vulnerable?
Group Policy Preferences fue introducido en Windows Server 2008 para permitir a los administradores configurar ajustes que no estaban disponibles en las configuraciones tradicionales de Group Policy.
El problema: Microsoft utilizó una clave AES estática y públicamente conocida para cifrar las contraseñas en los archivos XML de GPP.
🔓 Descifrando la contraseña
🧰 Método 1: gpp-decrypt (Recomendado)
🧰 Método 2: Script Python personalizado
🎯 Credenciales Obtenidas
🔑 Acceso Inicial
📊 Validación de credenciales
✅ ¡Credenciales válidas! Ahora tenemos acceso al recurso Users.
🏁 Obteniendo la User Flag
🎉 User Flag obtenida!
🎫 Escalada de Privilegios - Kerberoasting
🔍 ¿Qué es Kerberoasting?
Kerberoasting es una técnica que aprovecha cuentas de servicio configuradas con SPNs (Service Principal Names) para extraer hashes TGS que pueden ser crackeados offline.
Enumeramos usuarios y formateamos la salida para volcarlos a un fichero de texto:
🎯 Enumeración de usuarios con SPN
💎 Extracción del hash TGS
🔨 Cracking del hash
Una vez obtenido el hash del TGS del usuario Administrator podemos intentar crackearlo offline usando John/Hashcat con el dicccionario rockyou.
nmap -sC -sV -p$ports 10.10.10.100 -oN services.txt
Starting Nmap 7.95 ( https://nmap.org ) at 2025-06-19 19:23 CEST
Nmap scan report for 10.10.10.100
Host is up (0.047s latency).
PORT STATE SERVICE VERSION
53/tcp open domain Microsoft DNS 6.1.7601 (1DB15D39) (Windows Server 2008 R2 SP1)
| dns-nsid:
|_ bind.version: Microsoft DNS 6.1.7601 (1DB15D39)
88/tcp open kerberos-sec Microsoft Windows Kerberos (server time: 2025-06-19 17:23:46Z)
135/tcp open msrpc Microsoft Windows RPC
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
389/tcp open ldap Microsoft Windows Active Directory LDAP (Domain: active.htb, Site: Default-First-Site-Name)
445/tcp open microsoft-ds?
464/tcp open kpasswd5?
593/tcp open ncacn_http Microsoft Windows RPC over HTTP 1.0
636/tcp open tcpwrapped
3268/tcp open ldap Microsoft Windows Active Directory LDAP (Domain: active.htb, Site: Default-First-Site-Name)
3269/tcp open tcpwrapped
5722/tcp open msrpc Microsoft Windows RPC
9389/tcp open mc-nmf .NET Message Framing
47001/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-server-header: Microsoft-HTTPAPI/2.0
|_http-title: Not Found
49152/tcp open msrpc Microsoft Windows RPC
49153/tcp open msrpc Microsoft Windows RPC
49154/tcp open msrpc Microsoft Windows RPC
49155/tcp open msrpc Microsoft Windows RPC
49157/tcp open ncacn_http Microsoft Windows RPC over HTTP 1.0
49158/tcp open msrpc Microsoft Windows RPC
49165/tcp open msrpc Microsoft Windows RPC
49171/tcp open msrpc Microsoft Windows RPC
49173/tcp open msrpc Microsoft Windows RPC
Service Info: Host: DC; OS: Windows; CPE: cpe:/o:microsoft:windows_server_2008:r2:sp1, cpe:/o:microsoft:windows
Host script results:
| smb2-time:
| date: 2025-06-19T17:24:41
|_ start_date: 2025-06-19T16:31:35
| smb2-security-mode:
| 2:1:0:
|_ Message signing enabled and required
echo "10.10.10.100 active.htb" | sudo tee -a /etc/hosts