SkyDog Con CTF 2016 – Catch Me If You Can

Buenas a todos!! En esta entrada os comentaré este CTF, que os podéis descargar de la página web de Vulnhub

Una vez localizado el objetivo, realizamos un escaneo de puertos y enumeración de los servicios. Nos llama mucho la atención el 80(http), 443(https) y el 22222(ssh). Investiguemos el servidor web.

Flag#1: Mirando el código fuente vemos un archivo que contiene justo una ristra de números hexadecimales, coincidiendo con la descripción del enunciado.

Lo convertimos a ASCII, y obtemos nuestra primera flag.  Usamos el método str.decode(), para ir de bytes a str. La flag tiene formato MD5.

Flag#2 :Otro resultado que nos dio nuestro escaneo de puertos y servicios correspondientes fue el SSH. Nos conectamos dada la dirección IP y el puerto, y nos proporciona un banner con la flag.

Flag#3: El resultado del hash, es «encrypt». Lo relacionamos con el enunciado de la tercera flag, y tiene algo que ver con tráfico cifrado. Revisamos el escaneo de puertos y servicios, y no puede ser otra cosa que algo relacionado con SSL. Por tanto investigamos en el puerto 443, por https. Visualizamos el certificado, y en el campo Organizational Unit (OU), visualizamos nuestra tercera flag en MD5.

Al crackear el hash en MD5, obtenemos la siguiente pista. La cadena de caracteres «personnel» podría ser una password, un directorio…

Flag#4: Existe una buena herramienta fuzzing que puede hacer el trabajo por nosotros, para el descubrimiento de directorios y ficheros en un servidor web, llamado Dirb o Dirbuster (entorno gráfico). Tenemos acceso restringido a la web, quizás sea por la identificación del user-agent y debamos usar uno en particular.

En el código fuente del index principal de la web, nombra un user-agent IE4. Por tanto haciendo una búsqueda para identificar esa coincidencia en el código fuente de html5.js, vemos que dan soporte temporal de «IE4 FBI Workstations», es decir, para estaciones de trabajo del FBI. A día mayo de 2016 el FBI todavía utiliza IE4 en todas las estaciones de trabajo por «doug.perterson@fbi.gov».

 

Haciendo una búsqueda en Internet, podemos observar cual es un user-agent válido para un IE4 en Windows 98.

Usamos un add-on de Mozilla y añadimos un nuevo User Agent válido en cada uno de los campos.

Ok, ahora actualizo la página con el user-agent antes mencionado, y nos da una bienvenida al Agente Hanratty, del FBI. En el lateral inferior derecha de la página web, obtenemos nuestra cuarta flag.

Flag#5: Llegados a este punto nos dan una pista con la cadena de caracteres «evidence» y «Clue=new+flag». Por tanto obtenemos «newevidence»?¿ Lo usamos como directorio, como antes hicimos con «personnel». Entramos en el directorio y nos pide una autorización de usuario/password. El enunciado de la quinta flag nos indica lo siguiente: «The Devil is in the Details – Or is it Dialogue? Either Way, if it’s Simple, Guessable, or Personal it Goes Against Best Practices»

Para el nombre de usuario y la contraseña tuve que investigar en Internet. El título del CTF resulta ser una película. En Wikipedia investigue y pude deducir el nombre carl.hanratty (preformateado a cuentas del FBI, como vimos anteriormente).

Obtener el usuario quizás no haya sido difícil, pero aún nos queda la contraseña. Según el enunciado de la flag nos comenta sobre los diálogos. Leyendo los diálogos me hice un pequeño fichero con las palabras más «llamativas», ya que, según en la segunda parte del enunciado es sencilla y predecible, en contra de buenas prácticas. ¿Se refiere a la contraseña?.

Tras varios intentos, probamos el username/password(Grace) y ganamos acceso.

En la web, podemos apreciar tres links:

Una de ellas es una imagen.

Un txt, la quinta flag.

Y el último un fichero PDF.

Flag#6: El PDF es una factura de Hetzl and Associates para «Encryption Consultation Project» hecha para el agente Earl Amdursky del FBI y una persona llamada Stefan Hetzl. Así que después de buscar «Stefan Hetzl» en Google. Nos apareció la herramienta StegHide. La búsqueda en Google, resulta ser el creador de dicha herramienta. StegHide, es un programa de esteganografía que es capaz de ocultar los datos en varios tipos de imágenes y archivos de audio.

La pista nos revela la cadena de caracteres «panam». Investigando en una de las imágenes, podemos observar un hotel «Le bellevue»

Subiendo la imagen en el motor de búsquedas de Google, pude averiguar la localización, situada en Francia (Montrichard).

En la Wikipedia, pude apreciar la relación existente en esa ciudad y el rodaje de la pelicula antes mencionada. ¿Coincidencias?Mmmm…

Según la pista arrojada en el PDF, procedí a usar la herramienta StegHide con la imagen.jpg. Use de salvoconducto la cadena de caracteres Montrichard pero no funciono. Use «panam» y se aprecia un fichero .txt, llamado flag.

Procedemos a extraerlo y visualizamos la flag.

Flag#7: Según el enunciado de la séptima flag: «Frank Was Caught on Camera Cashing Checks and Yelling – I’m The Fastest Man Alive!» En Google, la búsqueda me devolvio que ‘I’m The Fastest Man Alive’ era sobre Flash, también conocido como Barry Allen. En Wikipedia relacione que Barry Allen era un alias usado por Frank Abagnale en la película, para engañar al agente del FBI que lo seguía. Por tanto, ya tenemos a un nombre de usuario en potencia, pero nos queda la contraseña. Quizás el método adecuado se como los anteriores.

Probé con ‘ILoveFrance’ y ‘iheartbrenda’ y conseguí la conexión con el username/password–> barryallen: iheartbrenda. Al conseguir acceso mediante SSH, en el directorio /home/barryallen liste lo contenido y obtención de la flag.

Flag#8: En el mismo directorio donde encontramos la séptima flag, existe otro archivo llamado security-system.data. Comprimimos el fichero.

Usamos SCP. Es un medio de transferencia segura de archivos entre un host local y un host remoto o entre dos hosts remotos. Se basa en el protocolo Secure Shell (SSH). El uso podéis verlo en esta web—> http://www.hypexr.org/linux_scp_help.php

Usando el comando Strings, y podemos deducir que es un «memory dump».

Usamos volatility. Es un Framework con un conjunto de herramientas desarrolladas enteramente en Python con licencia GNU. Esta pensado para extraer de una imagen de un disco los datos volátiles que estaban en memoria RAM.

Comprobamos la información de la imagen para averiguar el sistema operativo.

Usamos el perfil que nos indica como «sugerido» y redireccionamos la salida a un fichero. Según el enunciado de la última flag: «Franks Lost His Mind or Maybe it’s His Memory. He’s Locked Himself Inside the Building. Find the Code to Unlock the Door Before He Gets Himself Killed!» Mencionan que debemos encontrar el «Code». Filtramos con el comando «pipeline» grep. Y localizamos un fichero .txt. Quizás en el interior de ese fichero este la última flag.

Vamos a comprobar si la creación de ese fichero .txt ha sido creado mediante línea de comandos.

Redirecciona la salida de echo + str al fichero code.txt. Convertimos esos números en hexadecimal a ASCII en una web y obtenemos la última flag. Podríamos haberlo hecho del mismo modo usando el método str.decode() en el interprete de Python.

 

Vídeo:

Espero que os haya servido de utilidad. Un saludo, Naivenom.