windowsHaze



Enumeración:


Se pueden ver varios puertos http entramos al 8000:

Buscamos un exploit para splunk:

Como resultado pudimos extrar los hashes:

❌ Intentar romper los hashes (no se puede)

Path Traversal

Buscaste el archivo de autenticación de Splunk (authentication.conf) usando Path Traversal

Un script en bash para automatizar la lectura de archivos críticos de Splunk explotando path traversal usando curl:

Revisar authentication.conf:

Decrypt del hash Splunk

Desencriptar con splunksecrets

Exfiltras splunk.secret desde el servidor vulnerable a un archivo llamado splunk.secret :

Desencriptas usando splunksecrets:

Ya con el hash $7$... que sacaste antes:

Te pedirá que ingreses el hash (ejemplo):

Y te devolverá la contraseña en texto claro:



Obtener los usuarios del dominio mediante SMB

Filtro para obtener solo los usuarios con el comando:

Verificar acceso con WinRM usando ncx:

Pwn3d

Acceder a la máquina con Evil-WinRM:

Con el usuario mark.adams y la contraseña Ld@p_Auth_Sp1unk@2k24, accediste a la máquina usando evil-winrm:

Una herramienta para enumerar y mapear relaciones de permisos en un entorno de Active Directory (AD) con el fin de realizar una auditoría de seguridad.

GMSA_MANAGERS - gMSA

🧠 Concepto clave: ¿Qué hace el grupo GMSA_MANAGERS?

El grupo GMSA_MANAGERS (o cualquier grupo configurado para leer contraseñas de cuentas gMSA) puede obtener la contraseña de la cuenta gMSA, desde cualquier máquina del dominio, siempre que:

✅ Se cumplan estas condiciones:

  1. El grupo tiene permisos explícitos en el atributo PrincipalsAllowedToRetrieveManagedPassword de la cuenta gMSA.

  2. El usuario pertenece a ese grupo.

  3. El usuario tiene acceso de red al DC (Domain Controller).

  4. gMSADumper u otro método (como PowerView) puede ser ejecutado con credenciales válidas.

Repositorio

Explotar correctamente una vulnerabilidad por mal manejo de gMSA

Esto significa que mark.adams puede directamente leer la contraseña de la cuenta Haze-IT-Backup$, lo cual normalmente solo debería estar permitido a controladores de dominio o servicios específicos.


Con eso, agregaste tu usuario a la lista de entidades autorizadas a leer la contraseña de la gMSA — esto es abuso de delegación, y si no estás autorizado a hacerlo, es una escalada de privilegios en sí misma.


Lo lanzamos de nuevo.


El usuario mark.adams ahora está correctamente autorizado para leer la contraseña de Haze-IT-Backup$, de forma persistente, sin necesidad de repetir el Set-ADServiceAccount.


Obtener TGT con getTGT.py

Autenticación Kerberos sin contraseña, usando el hash NTLM del equipo Haze-IT-Backup$.


Exportar ticket Kerberos al entorno

Le dice al sistema que use ese TGT (archivo .ccache) como autenticación predeterminada para herramientas como bloodyAD.


Tomar propiedad del objeto SUPPORT_SERVICES

Cambia el propietario del objeto SUPPORT_SERVICES a la máquina Haze-IT-Backup$.


Asignar GenericAll al objeto

Da control total (GenericAll) sobre el objeto SUPPORT_SERVICES a Haze-IT-Backup$.

✅ Esto permite modificar miembros del grupo, cambiar atributos, agregar usuarios, etc.


Agregar la cuenta Haze-IT-Backup$ al grupo SUPPORT_SERVICES

Agrega la máquina al grupo SUPPORT_SERVICES. Si este grupo tiene privilegios especiales, ahora tú también los tienes.


Inyectar Shadow Credentials a Edward Martin

Crea un objeto KeyCredential en el usuario edward.martin apuntando a un nuevo certificado, inyectando persistencia silenciosa.

📦 Resultado:

  • Se generaron 2 archivos:

    • aPoCo9lW_cert.pem (certificado)

    • aPoCo9lW_priv.pem (clave privada)


Crear archivo .pfx con OpenSSL

Contraseña usada: pa$$w0rd


Autenticarse con certipy usando el .pfx

  • Obtuviste un TGT (ticket de autenticación Kerberos)

  • Se guardó en: edward.martin.ccache

  • Se recuperó el NTLM hash: aad3b435b51404eeaad3b435b51404ee:09e0b3eeb2e7a6b0d419e9ff8f4d91af


Acceso remoto con Evil-WinRM:

Shell interactiva como edward.martin 🎉


Escalada de Privilegios en haze.htb:


Revisión de respaldos Splunk

Lo descargamos

Extracción en máquina atacante

  • Se detectó el archivo splunk.secret

  • Se encontró un password cifrado en authentication.con

  • Lo que necesitamos:

bindDNpassword = $1$YDz8WfhoCWmf6aTRkA+QqUI=

splunk.secret2


Desencriptar password del usuario de Splunk


Entramos a la web que corre por el puerto 8080:

Credenciales:

  • Usuario: admin

  • Contraseña: Sp1unkadmin@2k24


Tenemos una apartado para subir archivos:


Cargar reverse shell mediante app maliciosa

  • Clonar repositorio:

  • Modificar archivos run.ps1 y rev.py con tu IP tun0:


  • Empaquetar de nuevo si hiciste cambios en un archivo .spl

Subimos el arhivo y tenemos conexión:


Post-Explotación y Privilege Escalation

SeImpersonatePrivilege


  • SeImpersonatePrivilege : Enabled


⚙️ Generamos un payload Meterpreter:

  • Descargamos el payload en el objetivo

    Desde la reverse shell como alexander.green:

  • Victima:

Metasploit Listener

  • Levantamos un handler en Metasploit:

  • Una vez ejecutado la sheel.exe en la maquina vicitma:

🔐 Recibimos la sesión en Meterpreter

Ya en Metasploit, deberías ver:


Last updated