Blackfield

Publicado: 27 de Junio de 2025 Autor: José Miguel Romero aKa x3m1Sec Dificultad: ⭐ Hard OS: Windows
📝 Descripción
Blackfield es una máquina Windows de nivel Hard que presenta un entorno de Active Directory complejo y desafiante. Esta máquina está diseñada para poner a prueba habilidades avanzadas de pentesting en entornos empresariales Windows, incluyendo técnicas de reconocimiento de AD, explotación de privilegios específicos de Windows y escalada de privilegios mediante abuso de funcionalidades del sistema operativo.
La máquina simula un controlador de dominio corporativo con múltiples servicios expuestos, incluyendo SMB, LDAP, Kerberos y WinRM. El vector de ataque inicial requiere un enfoque meticuloso de enumeración para descubrir usuarios válidos del dominio y explotar configuraciones débiles de autenticación.
Objetivos de Aprendizaje:
Enumeración avanzada de servicios de Active Directory
Técnicas de AS-REP Roasting para obtener hashes de autenticación
Explotación de permisos específicos de AD (ForceChangePassword)
Análisis forense de volcados de memoria LSASS
Abuso del privilegio SeBackupPrivilege para escalada de privilegios
Extracción y análisis de la base de datos NTDS.dit
🎯 Información General
Atributo
Valor
Nombre
Blackfield
IP
10.10.10.192
Dificultad
Hard
OS
Windows Server 2019
Puntos
40
Creador
adf11
📊 Resumen de la Explotación
🔗 Cadena de Ataque
🎯 Puntos Clave
Vector inicial: Enumeración SMB sin autenticación
Técnica crítica: AS-REP Roasting para obtener primer acceso
Escalada lateral: Abuso de permisos AD (ForceChangePassword)
Análisis forense: Extracción de credenciales desde volcado LSASS
Escalada final: Explotación de SeBackupPrivilege para acceso total
🛠️ Herramientas Utilizadas
Herramienta
Propósito
nmap
Reconocimiento y enumeración de puertos
smbclient
Enumeración de recursos SMB
netexec
Enumeración de usuarios y recursos
impacket
Ataques AS-REP Roasting y Kerberoasting
bloodhound
Análisis de rutas de ataque en AD
pypykatz
Análisis de volcados de memoria LSASS
evil-winrm
Shell interactivo en Windows via WinRM
hashcat
Cracking de hashes
🔭 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
53
DNS
Servicio DNS del dominio
88
Kerberos
Autenticación del dominio
135
MSRPC
Llamadas a procedimientos remotos
389/3268
LDAP
Directorio activo
445
SMB
Recursos compartidos
593
RPC over HTTP
Llamadas RPC via HTTP
5985
WinRM
Administración remota Windows
🔥 Servicios críticos identificados:
SMB (445): Potencial acceso a recursos compartidos
LDAP (389): Información del directorio activo
Kerberos (88): Posibles ataques AS-REP/Kerberoasting
WinRM (5985): Shell remoto si obtenemos credenciales
🌐 Enumeración de Servicios
🗂️ SMB (Puerto 445) - Acceso Inicial
Ya que no disponemos de credenciales, comenzamos tratando de enumerar posibles recursos mediante una sesión nula:
📁 Enumeración de recursos compartidos

👥 Enumeración de usuarios
📝 Nota: Se identificaron más de 300 usuarios del dominio mediante RID brute force.
Nos conectamos al recurso profiles$ y descargamos el contenido en nuestro host de ataque, pero tras revisarlo no encontramos nada de interés:

🎫 Ataques de Autenticación Kerberos
🎯 AS-REP Roasting
Verificamos si alguno de los usuarios obtenidos no tiene habilitada la pre-autenticación de kerberos y podemos realizar un ataque de tipo AS-Rep Roasting:

🎉 ¡Éxito! Encontramos que la cuenta support no tiene la pre-autenticación de kerberos habilitada y logramos obtener un ticket.
Alternativa usando kerbrute:

🔓 Cracking del Hash

Procedemos a intentar crackearlo usando hashcat y rockyou.txt:

🔑 Credencial obtenida: support:#00^BlackKnight
🎪 Verificación Kerberoasting
Intentamos sin éxito un ataque de kerberoasting:
🩸 Análisis con BloodHound
📊 Recolección de Datos
Ahora que disponemos de una cuenta unida al dominio con credenciales, usamos bloodhound-python para obtener un mapeo del dominio:
Es importante realizar una configuración adicional introduciendo el nombre de la máquina y el FQDN en /etc/hosts:

🔍 Análisis de Rutas de Ataque
Al cargar los datos en bloodhound vemos que el usuario support tiene el privilegio ForceChangePassword sobre el usuario audit2020:

🔄 Escalada Lateral - Abuso de ForceChangePassword
💡 Explotación del Privilegio
Primero intentamos usar bloodyAD, pero falla debido a restricciones LDAP:
Error: LDAPBindException: LDAP Bind failed! Result code: "invalidCredentials"
🛠️ Métodos Alternativos
Método 1: Comando net
Método 2: Comando rpcclient

📂 Acceso al Recurso Forensic
Una vez cambiada la contraseña, verificamos acceso a recursos compartidos:

🎯 ¡Acceso obtenido! Tenemos permisos de lectura sobre el recurso forensic.
🕵️ Análisis Forense
📥 Descarga de Archivos
Nos conectamos al recurso forensic y descargamos el contenido:

🗂️ Estructura de Archivos Encontrados
commands_output: Volcados de comandos ejecutados en la máquina
memory_analysis: Archivos comprimidos con volcados de memoria
tools: Herramientas como sysinternals y volatility
🧠 Análisis del Volcado LSASS
El archivo más crítico encontrado es lsass.zip:
🔧 Uso de pypykatz
Instalamos y usamos pypykatz para analizar el volcado:

🔑 Extracción de Hashes
svc_backup
9658d1d1dcd9250115e2205d9f48400d
✅ Válido
DC01$
b624dc83a27cc29da11d9bf25efea796
❌ Inválido
Administrator
7f1e4ff8c6a8e6b6fcae2d9c0572cd62
❌ Inválido
💻 Acceso Inicial al Sistema
🏃 Conexión WinRM
Utilizamos el hash válido de svc_backup para conectarnos:


🏁 Primera Flag
📋 Enumeración de Privilegios

En el directorio C:\ encontramos un archivo notes.txt con información adicional.

Información crítica identificada:
✅ Pertenece al grupo Backup Operators
✅ Tiene el privilegio SeBackupPrivilege habilitado
🎁 Escalada de Privilegios - Abuso de SeBackupPrivilege
💡 Concepto del Ataque
El privilegio SeBackupPrivilege permite realizar copias de seguridad de archivos críticos del sistema:
SYSTEM(Clave de registro del sistema)SAM(Security Account Manager)NTDS.dit(Base de datos de Active Directory)
📋 Preparación del Entorno
Paso 1: Crear script VSS para montar copia de volumen:
Paso 2: Descargar DLLs necesarias:
Paso 3: Transferir archivos al host víctima:
💾 Extracción de la Base de Datos NTDS
Paso 4: Ejecutar script VSS:
Paso 5: Extraer archivos críticos:
🔓 Extracción de Todos los Hashes
Descargamos los archivos críticos a nuestro host atacante:
Utilizamos impacket-secretsdump para extraer todos los hashes del dominio:

👑 Acceso como Administrator
🔥 Pass-the-Hash Final
Con el hash NT del Administrator extraído, realizamos el ataque final:
🏆 Flag Final
Last updated