Resolución del CTF CURIOSITY
💢Plataforma:. TheHackersLabs 💢
❌Nombre: Curiosity
📈Nivel: Experto
💻OS: Active Directory
🙋🏽♂️Creador: TK0B4K
https://thehackerslabs.com/curiosity/
Enumeración
Escaneo de puertos
Realizamos un escaneo de todos los puertos para saber cuáles están activos.

Los parámetros utilizados son:
- -p- : Escaneo de todos los puertos. (65535)
- -sS : Realiza un TCP SYN Scan para escanear de manera rápida que puertos están abiertos.
- -sC : Realiz una escaneo con los scripts basicos de reconocimiento
- -sV : Realiza un escaneo en buqueda de los servicios
- –min-rate 5000: Especificamos que el escaneo de puertos no vaya más lento que 5000 paquetes por segundo, el parámetro anterior y este hacen que el escaneo se demore menos.
- -n: No realiza resolución de DNS, evitamos que el escaneo dure más tiempo del necesario.
- -Pn: Deshabilitamos el descubrimiento de host mediante ping.
Si nos ponemos en escucha con responder para hacer un envenenamiento ntlm.

Obtennos un hash.

Lo copiamos tal y como esta en un txt.

Y lo rompemos con john para obtener las contraseña de jdoe.

Comprobamos por donde podemos tener conexión y vemos que podemos acceder por winrm.


Nos conectaremos por rwnrm.

Y primero de todo enumeraremos privilegios y grupos, el cual nos llama la atención que pertenezca al grupo IT Admins.

y enumeraremos usuarios.


Subiremos sharphound y lo podernos a trabajar a ver que saca.

descargamos el archivo zip y lo subimos a BloodHound, no sin antes abrir el servidor de neo4j.

Con bloodhound nos damos cuenta de que jdoe pertenece a el grupo IT Admins, y este a su vez tiene el usuario DBA_ADM en cual lo usuarios de este grupo pueden cambiar la contraseña de DBA_ADM, por lo que vamos a cambiarle la contraseña a dba_adm.

Podemos importar powerview o el modulo de active directory para cambiarle la contraseña.

Y accedemos con winrm.

Usamos sqlcmd para conectarnos localmente al servidor sqlexpress Usamos el parámetro Q para hacer una consulta, en este caso, le pedimos que nos de los nombres de las bases de datos que hay.

Vemos las tablas.

Y vemos todo lo que tiene guardado en la tabla de credentials.

Lo rompemos con hastcat y obtenemos la contraseña.
Volviendo a BloodHound vemos que el usuario que hemos conseguido es miembro del grupo GMSA_USERS.

El cual este Grupo puede leer la contraseña GMSA (ReadGMSAPassword) del usuario GMSA_SVC y permitir actuar sobre el controlador de dominio.

como GMSADumper obtendremos el hash de usuario GMSA_SVC.
Lo primero que haremos será dumpear los hashes de los usuarios del grupo GMSA_SVC.

Como estamos en el grupo de GMSA_USERS tenemos el privilegio de leer las contraseñas del GMSA, en este punto nos impersonaremos contra el administrador para generar un TGT.

Antes de nada debemos exportar el KRB5CCNAME a la lista para que lo tengamos en memoria.

Y nos aseguramos de que este bien.

Y como el TGT en cache podremos acceder al DC con psexec como NT Authority\System.

Especial agradecimiento al compañero TK0B4K por la creación y el conocimiento aportado en esta máquina. Un fuerte abrazo!!