Haze
Executive summary — Haze is a Domain Controller where the "textbook" path is a carefully built trap: an unauthenticated Splunk instance leaks credentials that kick off a flawless ACL chain — gMSA, taking ownership of a group, Shadow Credentials — ending at an expired domain certificate and a
PKINITthat was never going to work. The real route ignores that chain entirely and loops back to the same Splunk instance that opened the door: its admin account is crackable and its service runs withSeImpersonatePrivilege, the exact combination needed to land on SYSTEM.
| Platform | Hack The Box |
| Operating system | Windows Server 2022 (AD / Splunk) |
| Difficulty | Hard |
| Status | Retired |
| Target IP | 10.129.232.50 |
| Domain | haze.htb |
Attack map
[8000/8089 HTTP] Splunk 9.2.1 (unauthenticated)
│ CVE-2024-36991 path traversal
▼
etc/passwd + authentication.conf + splunk.secret
│ decrypt $7$ (PBKDF2-HMAC-SHA256 + AES-256-GCM)
▼
paul.taylor : Ld@p_Auth_Sp1unk@2k24 (SMB, no WinRM)
│ password reuse
▼
mark.adams (WinRM, gMSA_Managers group)
│ WRITE over msDS-GroupMSAMembership (BloodHound)
▼
gMSA Haze-IT-Backup$ --owner--> Support_Services --member+ACE--> edward.martin
│ Shadow Credentials: PKINIT broken — dead end
▼
hashcat $6$ admin ───────────────────────────► Sp1unkadmin@2k24
│ RCE via scripted input (management port 8089)
▼
alexander.green (SeImpersonatePrivilege)
│ GodPotato
▼
[ROOT] NT AUTHORITY\SYSTEM
1. Reconnaissance
The port scan shows a very standard Domain Controller profile, plus a block that isn't standard at all:
sudo nmap -p- --min-rate 3000 -T4 -Pn -n --open 10.129.232.50
53,88,389,445,464,636,3268,3269,9389,5985/tcp (Domain Controller profile)
8000/tcp Splunkd httpd
8088/tcp (HTTP Event Collector)
8089/tcp ssl/http Splunkd httpd
8000, 8088 and 8089 are the unmistakable fingerprint of Splunk running on the DC itself: web UI, event collector (HEC) and management port. A version scan against all three confirms the exact instance and build:
nmap -sV -p8000,8088,8089 10.129.232.50
curl -sk https://10.129.232.50:8089/services/server/info | grep -i version
8000/tcp open http Splunkd httpd
<version>9.2.1</version>
The service scan also confirms the domain and leaves one detail for later:
389/tcp ldap Domain: haze.htb0.
|_clock-skew: 7h59m55s (~8 hours — relevant for any Kerberos operation)
echo "10.129.232.50 dc01.haze.htb haze.htb dc01" | sudo tee -a /etc/hosts
Resumen ejecutivo — Haze es un Domain Controller donde el camino "de libro" es una trampa cuidadosamente montada: una app Splunk expuesta sin autenticar filtra credenciales que arrancan una cadena de ACLs impecable — gMSA, toma de propiedad de un grupo, Shadow Credentials — que termina en un certificado de dominio caducado y un
PKINITque nunca va a funcionar. La vía real ignora esa cadena y vuelve al mismo Splunk que abrió la puerta: su cuenta de administración es crackeable y su servicio corre conSeImpersonatePrivilege, la combinación exacta para llegar a SYSTEM.
| Plataforma | Hack The Box |
| Sistema operativo | Windows Server 2022 (AD / Splunk) |
| Dificultad | Hard |
| Estado | Retired |
| IP objetivo | 10.129.232.50 |
| Dominio | haze.htb |
Mapa del ataque
[8000/8089 HTTP] Splunk 9.2.1 (sin autenticar)
│ CVE-2024-36991 path traversal
▼
etc/passwd + authentication.conf + splunk.secret
│ descifrar $7$ (PBKDF2-HMAC-SHA256 + AES-256-GCM)
▼
paul.taylor : Ld@p_Auth_Sp1unk@2k24 (SMB, sin WinRM)
│ reutilización de contraseña
▼
mark.adams (WinRM, grupo gMSA_Managers)
│ WRITE sobre msDS-GroupMSAMembership (BloodHound)
▼
gMSA Haze-IT-Backup$ --owner--> Support_Services --miembro+ACE--> edward.martin
│ Shadow Credentials: PKINIT roto — vía muerta
▼
hashcat $6$ admin ───────────────────────────► Sp1unkadmin@2k24
│ RCE vía scripted input (puerto de gestión 8089)
▼
alexander.green (SeImpersonatePrivilege)
│ GodPotato
▼
[ROOT] NT AUTHORITY\SYSTEM
1. Reconocimiento
El escaneo de puertos deja un perfil de controlador de dominio muy estándar, más un bloque que no lo es en absoluto:
sudo nmap -p- --min-rate 3000 -T4 -Pn -n --open 10.129.232.50
53,88,389,445,464,636,3268,3269,9389,5985/tcp (perfil de Domain Controller)
8000/tcp Splunkd httpd
8088/tcp (HTTP Event Collector)
8089/tcp ssl/http Splunkd httpd
8000, 8088 y 8089 son la firma inequívoca de Splunk corriendo en el propio DC: interfaz web, recolector de eventos (HEC) y puerto de gestión. Un escaneo de versión sobre los tres confirma la instancia y su build exacta:
nmap -sV -p8000,8088,8089 10.129.232.50
curl -sk https://10.129.232.50:8089/services/server/info | grep -i version
8000/tcp open http Splunkd httpd
<version>9.2.1</version>
El escaneo de servicios confirma también el dominio y deja un dato para más tarde:
389/tcp ldap Domain: haze.htb0.
|_clock-skew: 7h59m55s (≈ 8 horas — relevante para cualquier operación Kerberos)
echo "10.129.232.50 dc01.haze.htb haze.htb dc01" | sudo tee -a /etc/hosts
This content is Root Access only. Everything else on the site — the free tier, the whole public library — stays open.
See Root Access plansNo account? Create one free then upgrade from your console.
Este contenido es solo para Root Access. Todo lo demás del sitio — el nivel gratuito, toda la biblioteca pública — sigue abierto.
Ver planes de Root Access¿Sin cuenta? Crea una gratis y luego mejora desde tu consola.