Resolviendo los retos del CTF JNIC-VIEWNEXT. Reto 2
¡Hola a todos!
El post que os traemos hoy es un Write-Up sobre la resolución de un famoso CTF: el Capture The Flag (CTF) JNIC-VIEWNEXT de la JNIC, las V Jornadas Nacionales de Investigación en Ciberseguridad, que tuvieron lugar del 26 al 29 de junio.
Os recuerdo que este reto está formado por 5 desafíos sobre varias disciplinas de la ciberseguridad, entre ellas: Ingeniería inversa, Exploiting, Análisis Forense, Hacking web y Criptografía y esteganografía y que, tras superarlos, quedé segundo clasificado.
Hoy voy a contaros en qué consiste y qué hice para resolver el segundo reto del JNIC2019, el cual trata sobre criptografía y pone a prueba nuestros conocimientos sobre criptografía clásica y moderna.
Reto 2 – Oh capitán, mi capitán
En el segundo reto se propone descifrar un mensaje que contiene un par de preguntas del próximo examen. Uno de tus amigos, apodado "RainDoll Hacker", te ha enviado un archivo cifrado con las preguntas, pero para evitar exponerse demasiado ha enviado una serie de pistas para obtener la clave, en vez de proporcionártela directamente.
Tras descargar el archivo de texto, encontramos que cada línea parece estar cifrada con un método distinto, por lo que deberemos descifrar cada párrafo para obtener la bandera.
Como podemos apreciar, el primer párrafo es un texto invertido que se puede hacer legible mediante una línea de código Python.
python -c "print(''.join(list('.atropmi odot ,hA ...ed etra led y aífargotpirc al ed etra led aturfsid y asirp sagnet on ,aífargotpirc ed oter la odinevneiB')[::-1]))"
“Bienvenido al reto de criptografía, no tengas prisa y disfruta del arte de la criptografía y del arte de... Ah, todo importa.”
El segundo párrafo es un texto cifrado mediante Cifrado Cesar. Podemos usar una herramienta online como Cryptii.com para descifrar el texto
“Hay un pasaje que me sé de memoria y que parece apropiado para esta situación. Es de ezequiel, 25:17, y dice: el camino del hombre recto está por todos lados rodeado por las injusticias de los egoístas y la tiranía de los hombres malos. Bendito sea aquel pastor que, en nombre de la caridad y de la buena voluntad, saque a los débiles del valle de la oscuridad. Porque es el auténtico guardián de su hermano y el descubridor de los niños perdidos. ¡Y os aseguro que vendré a castigar con gran venganza y furiosa cólera a aquéllos que pretendan envenenar y destruir a mis hermanos! ¡Y tú sabrás que mi nombre es yahveh, cuando caiga mi venganza sobre ti!”
Realizando una búsqueda en Google descubrimos que se trata de una cita de la película Pulp Fiction.
Tras probar un poco, descubrimos que el siguiente párrafo se encuentra cifrado mediante Cifrado Vigenère con clave “PulpFiction”
“¡Habéis venido a luchar como hombres libres! ¡Y hombres libres sois! ¿Qué haríais sin libertad? Luchad, y puede que muráis. Huid, y viviréis. Un tiempo, al menos. Y, al morir en vuestro lecho, dentro de muchos años, ¿no estaríais dispuestos a cambiar todos los días desde hoy hasta entonces, por una oportunidad, sólo una oportunidad de volver aquí y matar a vuestros enemigos? Puede que nos quiten la vida, ¡pero jamás nos quitarán la libertad!”
En esta ocasión, hemos obtenido una cita de Braveheart.
El cuarto párrafo se cifró mediante ROT47
“La publicidad nos hace desear coches y ropas, tenemos empleos que odiamos para comprar mierda que no necesitamos. Somos los hijos malditos de la historia, desarraigados y sin objetivos. No hemos sufrido una gran guerra, ni una depresión. Nuestra guerra es la guerra espiritual, nuestra gran depresión es nuestra vida. Crecimos con la televisión que nos hizo creer que algún día seriamos millonarios, dioses del cine o estrellas del rock, pero no lo seremos y poco a poco nos hemos dado cuenta y estamos, muy, muy cabreados”
Se trata de una cita de “El Club de La Lucha”.
Finalmente, el último párrafo se encuentra cifrado mediante 3DES con clave “Braveheart”. Su descifrado nos dará un enlace de descarga de un archivo: archivoCTF.txt.
“Ves, no era tan difícil, aquí tienes un regalo: https://mega.nz/#!DmwmkaaY!MLF2Gh42ZX9vX6wlcITGbFptNRf3A8botgeWtxmqZL4”
Si tratamos de abrir el archivo observaremos que se trata de un archivo cifrado mediante AES.
Como solo queda una pista sin utilizar, deducimos que la contraseña debe estar relacionada con El Club de la Lucha y, tras probar un par de posibilidades, descubrimos que la clave AES es “ElClubDeLaLucha” De esta forma, obtenemos un archivo con información codificada en Base64.
Si decodificamos el texto, veremos que obtenemos un binario. Si miramos su cabecera, observaremos que se trata de un archivo PNG.
Una vez abierto, encontraremos la bandera de este reto, “cooperación”.
Y hasta aquí llega el segundo reto, espero que os haya gustado y, en caso de que os surja alguna pregunta, no dudéis en consultarme. ¡Nos vemos en el siguiente reto!