CTF Bitup18 – Retos white_rabbit, crackme y pandora

Buenas a todos!! El pasado fin de semana tuve la buena suerte de poder participar a distancia en el CTF organizado por Bitup Alicante con motivo del evento Bitup18, que me consta que fue todo un éxito 🙂 Nos alegramos como siempre de que estas comunidades surjan y ofrezcan una buena formación y unas buenas jornadas siempre en compañerismo, un saludo desde la madriguera!!

Tuve la suerte además de quedar el primer puesto de los participantes online del CTF, que personalmente me gustó mucho y me tuvo muy bien entretenido. Así que procedo a escribir un pequeño writeup de algunos de los retos, previo aviso a los compis de Bitup. Vamos a ello!

white_rabbit

Este reto de esteganografía nos viene al pelo para esta página 😛 Se nos entrega una imagen de un bonito conejo que desde luego parece tener algo entre manos.

Lo primero que suelo hacer en estos retos es mirar los metadatos mediante exiftool y herramientas similares, pero no parecían arrojar nada especial. Vamos a abrir la imagen con Gimp, mi herramienta favorita para hacer memes y probar filtros, para ver si conseguimos algo. Ese fondo negro me tiene intrigado.

Parece que jugando con la saturación y luminosidad hemos encontrado algo. Un siniestro texto, muy acorde a las fechas próximas a Halloween, que reza «we_are_mad». ¿Será una contraseña?

Después de probar algunas herramientas, como steghide y binwalk, sin éxito, nos topamos que un análisis con zsteg nos dice que hay un fichero RAR embebido.

Podemos con la misma herramienta extraerlo. Probaremos además suerte con la contraseña que obtuvimos…

¡¡Bingo!! Tenemos la flag conseguida 🙂

crackme

Vamos ahora con un pequeño reto de reversing. La verdad es que es un tema que nunca he llevado muy allá (por no decir que hasta hace poco ni abrí radare :^P hay que ser sinceros)  y me sirvió bastante bien para practicar algunas cositas aprendidas.

Se nos presenta un binario pequeñito. Si lo ejecutas, te pide una contraseña. Evidentemente, si la introduces mal, caca.

Vamos a ver qué se cuenta la función main en radare (pongo solo el inicio y la paret interesante):

En la segunda imagen vemos el código a partir de que se nos pide introducir el código o contraseña. La instrucción marcada como 0x000012d5 compara lo introducido con algo, y si es diferente, ejecuta un salto condicional hasta el código que imprime el acceso denegado.

Lo que tendremos que hacer es parchear el binario de forma que ese salto condicional no se ejecute si los valores comparados son diferentes, sino cuando sean iguales. Y por tanto, cuando sean diferentes, no se ejecute el salto y se nos la flag dentro del mensaje de acceso permitido, como se ve en la instrucción 0x0000131d.

Para esto nos situamos en la instrucción 0x000012d5 con el comando s 0x000012d5, y escribimos la instrucción parcheada con wa je 0x1330. Vemos que sustituimos el jne que había originalmente por je, cambiando el salto como explicaba. Hecho esto, podemos salir del programa y ejecutar el binario con cualquier código como contraseña, y obtener la flag 😀

pandora

Acabamos con un reto de criptografía que la verdad es que me resultó de lo más interesante. Comenzamos con dos ficheros, una imagen llamada crypto_clue2.jpg (que nos sugiere que tendrá alguna pistilla) y un fichero lockdb.zip que, sorpresa, no se abre ni patrás, baia baia.

Centrémonos de momento en la imagen. Parece claro que eso es una especie de código. Tocará lo primero averiguar de qué codificación se trata, porque a primera vista no me sonaba de nada. Para ello acudiremos a nuestra amplia biblioteca de investigación bibliográfica y ejecutaremos una búsqueda mediante palabras clave precisas y elegidas cuidadosamente.

El resultado más prometedor es aquel que apunta a PigPen Cipher. Es una codificación que mapea cada letra del abecedario con un símbolo compuesto por líneas que forman cajas o triángulos, con puntos situados en su interior. Vía Wikipedia encontramos una buena representación:

En mi página favorita para buscar estas cosas, Dcode.fr, encontramos una herramienta que nos permite decodificar el texto.

El resultado que más encaja es «DALELAVUELTAALROCKANDROLL». ¿Contraseña? ¿Pista?

Vamos a fijarnos un poco en el zip. SI lo observamos mediante un editor hexadecimal o similares, no tiene ningún aspecto de zip, la verdad. Vamos a ver lo que nos dice el comando file:

Parece ser un fichero Keepass, una base de datos de almacenamiento de contraseñas, en versión 1.x. Podemos abrirlo con la versión para linux keepassx e intentar importar la base de datos (no podemos abrirla directamente por ser versión 1.x):

Como es lógico para una aplicación de este tipo, nos pide una contraseña de acceso. Aquí es donde entra en juego la pista que teníamos: DALELAVUELTAALROCKANDROLL. ¿Nos suena algún diccionario con algo de rock? 😉

Procedemos a intentar averiguar la contraseña mediante fuerza bruta utilizando el diccionario rockyou.txt. Lo primero será utilizar la herramienta keepass2john de la suite John Jumbo para extraer la clave hasheada del fichero de base de datos cifrado, al cual debemos atacar.

Para el ataque utilizaremos la herramienta hashcat, que en mi caso ejecutaré fuera de máquina virtual para poder ir más rápido aprovechando la GPU real de la máquina física.

El comando a ejecutar es .\hashcat64.exe -m 13400 -a 0 -w 1 C:\Users\harte\keepass.hash ..\rockyou.txt, que indica un ataque de fuerza bruta por diccionario (-a 0), carga de trabajo predeterminada (-w 19) y los ficheros que contienen el hash extraído y el diccionario en sí.

La contraseña, como podemos ver, es walter. Con ello podemos importar en keepassx la dichosa base de datos, y vemos una entrada interesante:

Probando esos datos de título de entrada, usuario y contraseña combinados de diferentes formas, formamos finalmente la flag y damos el reto por superado 🙂

 

Y con esto termino mi pequeño writeup con algunos retos del CTF de Bitup18. De nuevo mi agradecimiento a la organización y vuelvo a decir que fue una pena no poder asistir, me consta que fue un pedazo de evento y el próximo año desde luego no faltaremos. El CTF estuvo genial y estoy deseando el próximo 🙂 Un abrazo!!

2 comentarios en «CTF Bitup18 – Retos white_rabbit, crackme y pandora»

  1. Gracias por vuestro tiempo en redactarlo.
    ¿Sería posible que subierais los ficheros (imagenes, rar, etc) para que pudiéramos practicar a los que no tuvimos la suerte de poder asistir?
    Gracia

    1. Buenas! Puedes preguntar por ellos a alguno de los organizadores de BitUp o por su twitter, tengo entendido que no iban a dejarlos subidos pero tal vez te los dejen (yo no tengo ese permiso :P). Gracias por leernos!!

Los comentarios están cerrados.