Resolviendo los retos del CTF JNIC-VIEWNEXT. Reto 1
¡Hola a todos!
En esta ocasión, el post que os traemos es un Write-Up sobre la resolución de un famoso CTF que se celebró hace poco: el Capture The Flag (CTF) JNIC-VIEWNEXT de la JNIC, las V Jornadas Nacionales de Investigación en Ciberseguridad.
Os cuento que este reto está formado por 5 pruebas 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.
En este primer post voy a contaros en qué consiste y cómo hice para alcanzar el objetivo del Reto 1, el resto de pruebas ya os iré contando en las próximas entradas. Así que ¡vamos al primero de los 5 retos!
RETO 1 - El examen de Fundamentos y Redes de la Comunicación
Días antes de un examen el profesor ha recibido el soplo de que alguien se dedica a compartir las preguntas del examen del año pasado. Nuestro objetivo es encontrar la contraseña usada por los alumnos para acceder al servidor en donde se intercambia esta información. Por suerte, en uno de los ordenadores se ha encontrado un archivo .pcap sospechoso y que se cree que es usado por los estudiantes para intercambiar la información de forma oculta.
Tras descargar el archivo sospechoso, lo primero que tratamos de hacer es abrirlo mediante Wireshark; sin embargo, la captura parece estar corrupta.
Aun así, podremos visualizar su contenido, aunque no parece que podamos obtener mucha información de la captura, ya que la mayoría de los paquetes se encuentran cifrados.
Por tanto, debemos buscar otro camino. Como se especifica que los alumnos ocultan la información, trataremos de buscar información oculta en el archivo.
Una simple búsqueda de cadenas de texto mediante la utilidad strings revela información oculta en el archivo.
La cadena de texto #F!DyYBnAyB!9fIFJiAMDxV56jLBDIuDoA es la siguiente pista a seguir. Si alguna vez has usado la página web Mega, reconocerás al instante que esta cadena de texto forma parte de una url de descarga, las cuales son de la forma: http://mega.nz/#<dentificador subida>!<clave de descifrado>
Una vez accedemos al enlace nos encontramos ante una serie de archivos con distintos formatos: un archivo comprimido zip, un archivo de audio mp3, un pdf y una imagen en formato jpg. Incluso antes de descargar los archivos podemos observar que algo extraño parece ocurrirle al archivo jpg, ya que no se muestra su miniatura.
Tras su descarga y posterior análisis observamos que los archivos tienen las extensiones cambiadas. El archivo mp3 es en realidad un pdf, el pdf es un archivo de texto, el jpg es un zip protegido con contraseña y el zip es en realidad un archivo docx.
Esto podemos detectarlo fácilmente inspeccionando las cabeceras de los archivos mediante un editor hexadecimal. Por ejemplo, los archivos pdf comienzan por el “número mágico” 25 50 44 46 o en representación ASCII “%PDF “. De igual forma, una gran cantidad de formatos contienen identificadores que permitirán su detección. Utilidades como Binwalk permiten automatizar este proceso.
Si abrimos el archivo como pdf encontramos un mensaje felicitándonos por haber completado el reto.
Este mismo mensaje lo encontramos en el archivo docx.
Tras una inspección de Twitter en busca de pistas, encontramos un tweet sospechoso publicado 5 días antes de comenzar la competición.
Sin embargo, tras tratar de obtener una contraseña a partir del mensaje con la que descomprimir el archivo zip, decidimos descartar la idea y buscar otro camino.
La única pista que nos queda es la contenida en el falso pdf.
“Wikipedia is the best thing ever. Anyone in the world can write anything they want about any subject.
So you know you are getting the best possible information.”
Una rápida búsqueda en Google nos permite conocer que se trata de una cita de Michael Scott, personaje de la serie The Office.
Esta información es suficiente para deducir que la contraseña del zip es “The Office” y, con ello, obtener acceso al archivo jpg contenido en él.
Finalmente, al abrirlo mediante un editor hexadecimal obtenemos la primera bandera, “motivación”.
Pues nada gente, esto ha sido todo para esta primera prueba, espero que os haya gustado y si queréis consultarme cualquier cosa no lo dudéis. ¡Nos vemos en el siguiente reto!