1: Obtención del archivo con las credenciales.
Descargamos una imagen del disco de Gilfoyle desde cualquiera de los dos enlaces propuestos. Rápidamente pensamos en utilizar Volatilty para analizar dicha imagen. Primero descomprimimos el archivo descargado y luego pedimos a Volatility que nos dé información sobre la imagen, para poder escoger el mejor perfil a utilizar:
Según el enunciado del reto, debemos encontrar un archivo con las credenciales (encriptadas) de acceso a la web http://34.247.69.86/siliconvalley/episodio1/login.php . Como se comenta que se ha producido un corte eléctrico, podríamos pensar que tal vez ese documento estuviera en uso en el momento del corte. Así que empezamos enumerando procesos que estuvieran en ejecución para luego filtrar aquellos que puedan ser más interesantes (navegadores web, procesadores de texto, programas de anillo de claves, etc.). Para ello usamos Volatility con el primer perfil propuesto en el comando anterior:
volatility -f GILFOYLE-HELLDD.raw –profile=Win7SP1x64 pslist
Entre todos los procesos listados, observamos que LibreOffice y Firefox estaban en ejecución:
Empezamos con LibreOffice; usamos de nuevo Volatility para listar aquellos archivos abiertos por el proceso con PID 2340 que estuvieran ubicados en el directorio del usuario (Users). El primero de la lista parece muy prometedor: info.odt:
Volcamos el archivo info.odt a disco para analizarlo con mayor detenimiento:
Abrimos el documento con LibreOffice y observamos que, efectivamente, podría muy bien ser el documento con las credenciales cifradas.
2: Descifrando las credenciales
A priori, el contenido del documento parecer utilizar el abecedario de Base-64. Intentamos decodificarlo, pero sin éxito. Lo que sorprende es que el documento parece estar segmentado en grandes bloques de texto independientes, y se puede ver claramente una repetición de dichos bloques. En una parte del documento observamos una separación de párrafo después del carácter “:”. Justo antes y después de dicho caracter observamos lo que podría ser un par de MD5s encerrados entre corchetes:
Lo que obtenemos bien podría ser el usuario y el password generado con MD5 que estamos buscando. Probamos suerte directamente pegando estos valores en la web http://md5decrypt.net:
Ya tenemos las credenciales; podemos validarnos en la web y proseguir con el reto.
3: Obtención del número de la casa
Tras validarnos en la web con las credenciales Gilfoyle:Satan, obtenemos una nueva URL:
Accedemos a la misma y obtenemos una imagen JPG:
Descargamos la imagen a disco. Antes de proceder con técnicas de stego, obtenemos toda la meta-información posible sobre la imagen. Nos da por pensar: “ey, esto parece una fotografía tomada del archivo de denuncia, tal vez tengamos suerte y tengamos la geolocalización de la cámara donde se tomó la misma…”; así que nos centramos en el campo XMP/IPTC de la imagen y buscamos la localización:
Copiamos y pegamos estas coordenadas en Google Maps. En lugar de un número de casa, Google nos devuelve un código Plus (https://plus.codes/):
Basta con pulsar sobre la casa que está en la calle indicada por el código Google Plus para obtener su número, el 2126:
Generamos el MD5 de dicho número:
echo -n “2126”|md5sum
3b92d18aa7a6176dd37d372bc2f1eb71 –
La flag es, pues: UAM{3b92d18aa7a6176dd37d372bc2f1eb71}
Toni Castillo Girona