🟠TombWatcher
En esta ocasión vamos a hacer el writeup de la máquina TombWatcher de Hack the Box, una máquina Windows Active Directory de dificultad media.

Información General
Nombre de la máquina:
TombWatcherIP:
10.10.11.72Sistema operativo:
WindowsDificultad:
🟡 MediaFecha:
03/07/2025
Configuración del host
La plataforma nos proporciona las credenciales iniciales para esta máquina:
/etc/passwd
Añadimos la IP a nuestro /etc/hosts y accedemos través del navegador.
Escaneo de puertos
Encontramos multitud de puertos abiertos, lo normal en máquinas Windows. Ademas nos encontramos con que la máquina objetivo es un Domain Controller, por la presencia de los puertos 3268 o 389, reservados para DCs.
Destacan los puertos:
111 (RPC)- Puede contener recursos compartidos o enumerar usuarios445 (SMB)- Recursos compartidos y enumeración5985 (WinRM)- Acceso con EvilWinRM con contraseña88 (Kerberos)- Posible Kerberoasting o AS-REP Roasting
Enumeración inicial
Con enum4linux-ng conseguimos obtener un listado de todos los usuarios del sistema y encontramos 5 shares:
Enumeración de Active Directory
Enumeración de usuarios/grupos
De igual manera confirmamos los usuarios encontrados con crackmapexec:
Añadimos los usuarios encontramos a un archivo valid-users.txt. Probar a volcar tickets Kerberos mediante ASREP-Roasting falla:
Shares - Recursos compartidos
No encontramos ningún share interesante.
Enumeración con Bloodhound
Editar resolv.conf
Bloodhound Python
Análisis con Bloodhound
Nuestro usuario Henry tiene permisos WriteSPN sobre el usuario Alfred:

Ruta de explotación
1. Kerberoasting dirigido
Para explotar el permiso WriteSPN usaremos la herramienta targeterKerberoast:
Antes de ejecutarlo debemos sincronizar la hora de nuestro Kali con el Domain Controller, ya que sino rechazará el TGT:
Ahora si, lo ejecutamos de la siguiente manera
Obtenemos el hash de Alfred, que crackearemos con John the Ripper o Hashcat:
Tenemos la contraseña de Alfred: basketball
2. BloodHound como Alfred
Usaremos estas nuevas credenciales para volver a enumerar el entorno con BloodHound.
Alfred tiene permisos AddSelf y es miembro del grupo Infraestructure, que tiene permisos ReadGMSAPassword sobre el equipo ANSIBLE_DEV$:

3. Añadir a Alfred a Infraestructure
Para ello usaremos BloodyAD de la siguiente manera:
4. ReadGMSAPassword
Una vez que nos hemos añadido al grupo infraestructure, usaremos la herramienta GMSAdumpster para leer la contraseña o hash de ansible_dev$:
Intentamos crackear los hashes pero no tenemos éxito, por lo que enumeraremos otra vez el sistema con BloodHound pasándole el hash.
5. Bloodhound 3
ANSIBLE_DEV$ tiene permisos ForceChangePassword sobre el usuario Sam:

6. Cambiar la contraseña de Sam
Usaremos BloodyAD para ello:
Ahora volvemos a enumerar el entorno con BloodHound y las nuevas credenciales de Sam:
El usuario Sam tiene permisos WriteOwner sobre el usuario John

7. Tomar control de John
Usa BloodyAD para hacer takeover del usuario John:
Usa genericAll para concederte control total:
Y cambiamos la contraseña de John:
Una vez cambiada la contraseña nos conectamos por EvilWinRM y ganamos la user flag.
User Flag
Escalada de Privilegios
Enumeraremos el entorno de nuevo con Bloodhound y las nuevas credenciales de John
El usuario John tiene permisos GenericAll sobre la unidad organizativa ACDS:

El siguiente paso es hacerse cargo de sus objetos secundarios:
Cambiar la contraseña de cert_admin
Al intentar cambiar la contraseña de cert_admin vemos que el usuario ha sido eliminado:
Podemos restaurar el usuario y cambiar su contraseña con:
Certipy Find
Ahora extraemos la información del archivo txt generado:
Al final del todo encontramos una vulnerabilidad relevante: ESC15
Paso 1
Solicitar un certificado, inyectando la política de aplicación “Autenticación de cliente” y el UPN de destino
Paso 2
Autenticarse a través de Schannel (LDAPS) utilizando el certificado obtenido y cambiar la contraseña del administrador:
👑 Root Flag
Nos conectamos por EvilWinRM como administrator y obtenemos la root flag:
Última actualización
¿Te fue útil?