Write-ups

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!!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *