lunes, 28 de mayo de 2018

ConPilar CTF WriteUp: Rusia

Días antes de ConPilar llamé a mi buen amigo Oscar Navarrete @Navaguay simplemente por saber de él dado que hacía tiempo que no hablábamos.

Despues de un buen rato de charla y de ponernos al día, me dijo algo parecido a esto:  "...oye espera, aunque sé que vas pillado de tiempo, te voy a usar de betatester para una de las pruebas de ConPilar la que queremos que sea una de las pruebas estrella, así que si no te importa, vaya a ser que se me haya escapado una manera fácil de pasarla..."

Accedí por supuesto! Conociendo a Oscar seguro que no había preparado un reto fácil de superar, máxime cuando me dijo que querían que fuese la prueba estrella. Al poco ya tenía las instrucciones del mismo y el enlace para descargarla.



La pista que daban: "El perro de Hades nunca debería retroceder"
Ya con la máquina descargada, y cuando pude sentarme a darle caña, manos al teclado!!

Me fuí a lo fácil y empecé con ella como si de un reto forense se tratara, tenía una VM así que me primera opción fue montar el disco a ver qué tenía dentro. Para ello hice uso de FTK:


Nada más ver lo que he señalado me supuse que el disco estaba cifrado con BitLocker, aún así decidí montarlo y asegurarme, y estaba en lo cierto, el disco no mostraba nada y uno de ellos, de las dos particiones mostradas, daba error de lectura.

Bueno, conociendo a Oscar era de esperar, lo siguiente que decidí fué arrancar la VM y ver qué tenía delante.

El siguiente intento fué intentar el arranque en Modo de Fallos de la VM, aunque las instrucciones mostraban muy clarito el texto "No reiniciéis!!!!!"

 Bueno, había que probar no?

Volví a cargar la VM y esta vez me fijé bien en lo que tenía delante:

 

Bien, teníamos la máquina conectada a un dominio y el nombre del usuario, así que tenía que intentar bypassear el login para acceder, probé las cuentas locales por defecto y las pass más comunes:

  •  Administrator > admin
  • Invitado > sin clave
Pues tampoco, esto ya se estaba complicando más de la cuenta y me quedaba sin ideas.

Así que hice lo que hago habitualmente, dejo lo que estoy haciendo yme pongo con otra cosa, por regla general llego a la solución y esta vez no iba ser distinta, me acordé de las instrucciones que daban del reto, YA SABÍA LO QUE HABÍA QUE HACER! 

En las instrucciones que nos dan podemos observar dos direcciones IP, la máscara de red, y el Gateway....

Venga! seguro que ya sabéis qué hay que hacer :)

El escenario que tenemos delante viene a ser mas o menos el siguiente:
Qué pieza es la que nos falta? :)

Exacto! Nos falta el Server que además haga de DC 

Me dijé, vale, ya se lo que hay que hacer, de hecho esto ya lo he hecho hace años cuando administraba sistemas, ahora es cuando tenía que recordar cómo se hacía.

Vamos a la pista (a mi me llego tarde, todo hay que decirlo):
"El perro de Hades nunca debería retroceder"

Me gusta la mitología, así que no me hizo falta tirar de buscador, el perro de Hades era Cerbero, y qué tenemos que sea similar a Cerbero > Kerberos :)

Ya tenía todo, ahora sólo faltaba encagarlo y buscar el CVE. Una búsqueda rápida desveló el MS16-101 / CVE 2016-3237

Ya tenía todo, ahora mi escenario era el siguiente: 

Tenía que montar un falso DC con la dirección IP que facilitaban en las instrucciones, si exacto, la ip del server debía de ser la 192.168.1.246, montar el mismo dominio y hacerlo servidor DNS, crear el usuario en el fake DC y forzarlo a que cambiara la contraseña con la que yo le pusiera.

Una tarea laboriosa, pero no podía defraudar a Oscar que quería que se la testeara.

Descargué una ISO de un windows server y de una forma rápida monté el escenario, no voy a dar mucho detalle de cómo configurar un DC, ahí cientos de manuales y videos, pero básicamente queda así:

 
No me detuve en la directiva de la contraseña para acortar la clave, etc...

Lo siguiente era crear la cuenta del usuario en cuestión y ponerle la contraseña que a mi me plazca y marcar la casilla de que se debía de cambiar en el primer inicio de sesión:


Vale, ya estaba casi todo montado, y digo casi porque aún queda una cosilla más, de lo contrario "este engaño" creo que no  funcionará.

Vuelvo a la máquina del reto, la misma debería de apuntar como DC a la máquina que acababa de crear, dado que tenía la IP indicada, creo que no se me escapaba nada, venga vamos!



En este punto es donde iba a poner la contraseña que había establecido en mi falso DC, si todo va bien, y pasados unos minutos mientras establece conexión y demás, deberá de mostrarme la pantalla de cambio de password, cruzaremos los dedos...


Bingo!

Todo va como debería de ir, ahora sólo me queda una cosa y es desactivar la comunicación con Kerberos en el DC para evitar que la máquina dependa del DC para iniciar sesión, si obviaba dicho paso el "engaño" no funcionará.








Así que nada más cambiar la contraseña y presionar ENTER, volví al DC a desactivar dicha regla de entrada.


Esto va como la seda, me dije! Ya estaba hecho :)


Ahora quedaba volver al reto y esperar un tiempo prudencial, unos dos minutos y volver a activar las reglas, y a posteriori seguramente, el sistema me indique que no puede establecer una relación de confianza en el dominio y bla bla bla...



A ver a ver.......


----------

Funcionamiento:


A ver voy a intentar explicar cómo funciona esto:  al replicar un DC y ya que tenemos la IP, la máquina cliente es capaz de encontrar dicho controlador de dominio, e iniciar la sesión con las credenciales que le hemos creado e indicado que cambie dicha contraseña.
Al desactivar la regla de entrada de Kerberos y desactivar la distribución, etc. lo que hacemos es que dicha nueva clave que estamos estableciendo sea replicada como NTLM en la misma máquina, de esa forma podremos indicar sesión en la máquina sin que la misma dependa del controlador de dominio (DC). 
Podríamos llamarlo DCITM (DC In The Middle, qué opinaís? XDDD )


---------

Yeahhhhhhhhh!!!!!! Todo a salido a pedir de boca

Ahora lo único que nos queda es "desconectar" dicha máquina del falso DC, así que la forma rápida es desactivar la tarjeta de red, que para eso estamos trabajando con VM, no?

Lo único que resta es iniciar sesión en la máquina del reto y buscar la dichosa flag que iba a estar a golpe de click!



Bueno, qué decir de este reto, que el señor Oscar Navarrete @Navaguay se ha calentado mucho la cabeza para montarlo en ConPilar al igual que Eloy @informaticaEloy en el reto anterior, el cual tenéis el WriteUp aquí por si no lo habéis leído. 

Desde aqui agradecer a mi gran amigo Oscar que confiara en mi para testear la prueba que había montado.

Antes de finalizar, os dejo un video que me ha pasado Oscar antes de publicar la entrada para que veáis el funcionamiento íntegro.

Ya me lo podías haber pasado antes pedazo de...... :***





Sed buenos!

0 comentarios:

Publicar un comentario