Por Berenice F (@dark1t)
Este write-up corresponde al reto Space Saver (100pts) de la categoria Misc, resuelto durante el evento PlaidCTF 2019.
Este write-up corresponde al reto Space Saver (100pts) de la categoria Misc, resuelto durante el evento PlaidCTF 2019.
Se descarga un archivo con extensión .dd y se verifica qué tipo de archivo usando el comando file.
El resultado arroja que se trata de un raw image FAT 16, el cual es utilizado para almacenar la imagen de un volumen o un disco, por lo que contiene archivos obtenidos de un dispositivo.
Los archivos raw image comúnmente contienen archivos ocultos, un método común para esconderlos es eliminarlos, sin embargo, es posible recuperarlos aunque stos ya hayan sido borrados.
Un conjunto de herramientas llamado The Sleuth Kit (TSK), es comúnmente utilizado para el análisis forense. Este kit es una colección de herramientas de línea de comandos y una librería C, y permite analizar imágenes de discos y recuperar archivos de ellas. TSK ya viene pre-instalado por defecto en la distribución Kali Linux.
La primera herramienta de TSK bastante sencilla de utilizar para analizar imágenes de discos y buscar archivos ocultos es fls.
Para ejecutar la herramienta, sólo se necesita escribir el commando fls NombreImagen. Al analizar la imagen del reto se obtiene el siguiente resultado:
En el resultado obtenido se observan varios archivos listados con un asterisco (*) a un lado, lo cual significa que esos archivos fueron borrados, pero se pueden recuperar.
De los archivos listados se observan tres archivos con extensión PNG y uno con extensión RAR que fueron eliminados. Además, se observa un archivo flag.png que está disponible directamente en la imagen (es decir, no fue eliminado)
Se pueden recuperar fácilmente todos los archivos listados con la herramienta tsk_recover(la cual también forma parte de TSK) utilizando el siguiente comando:
Una vez que se extrajeron los archivos, se analizó uno por uno y se descubrió lo siguiente.
flag.png
A pesar que el archivo se llama flag, parece que sólo es un archivo troll, ya que no contiene nada que pueda ayudar a resolver el reto.
Se utilizaron otras técnicas como análisis de encabezados y el uso herramientas de análisis de archivos e imágenes como binwalk, exiftool, zsteg o stegsolver para ver si se obtenía alguna otra información escondida en la imágen pero no se obtuvo ninguna información útil (no se ahondará en el uso de estas herramientas en este write-up, pero es indispensable mencionarlas para entender el desarrollo de la lógica del reto)
P.png, PP.png, PPP.png
A simple vista, los 3 archivos de nombre similar contienen la misma imágen.
Lo anterior se comprueba verificando el sum de las imágenes, el cual arroja el mismo valor para las tres.
Las imágenes PPP también se analizaron con las técnicas mencionadas anteriormente (binwalk, exiftool, etc y se checaron encabezados), pero tampoco se obtuvo ninguna información relevante.
Por último, se analizó el archivo space.rar. Al intentar descomprimirlo pedía una contraseña, por lo que se probó usar como contraseña algunas palabras comunes en el reto (P, PP, PPP, space) pero todas marcaron error.
En este punto no se consideró la posibilidad de hacer un ataque de fuerza bruta a la contraseña del archivo .rar, ya que PlaidCTF no es conocido por diseñar retos que requieran aplicar este ataque.
Tampoco se encontró alguna palabra evidente que se pudiera utilizar como contraseña, por lo que se intentó buscar archivos ocultos en el .rar pero no se tuvo éxito.
Dado que todos los intentos anteriores no arrojaron resultados positivos, se determinó que había algo escondido en los archivos recuperados pero que no se estaba utilizando la herramienta adecuada para analizar la imagen de disco.
Otra herramienta que permite analizar una imagen de disco es FTK Imager. Esta es una herramienta gráfica para sistemas operativos Windows y es muy sencilla de usar. Se siguieron los siguientes pasos para montar la imagen y analizar los archivos.
1. File > Add Evidence Item
2. Image File > Select
3. Select Image > Finish
Ya que se da click en Finish, se regresa a la ventana principal y debajo de Evidence Tree se pudo observar la imagen montada y sus ramificaciones:
Se accedió a la carpeta [root] y se encontraron los archivos descargados con las herramientas de TSK, pero se observaron también otros archivos adicionales de tipo File Slack. Este tipo de archivos se refieren al espacio que existe más allá del término del archivo lógico pero dentro del área reservada a ese archivo por el sistema de archivos.
Se dió clic a cada uno de los archivos slack y se observó un string legible en cada uno, por ejemplo, el string que se obtuvo para la imagen P.png.FileSlack fue Spac
Se analizaron los restantes archivos slack y se obtuvo lo siguiente:
PP.png.FileSlack -> 3ei2
PPP.png.FileSlack -> herE
Después de esto se encontró que al menos dos de los strings anteriores contenían palabras legibles en inglés (como space y here), así que se unieron en uno sólo y se obtuvo el siguiente string: Spac3ei2herE
Sin olvidar el archivo space.rar protegido, se intentó usar el nuevo string como contraseña y se logró descomprimir el archivo satisfactoriamente:
root@kali:~/plaidctf/space# file space_saver.dd space_saver.dd: DOS/MBR boot sector, code offset 0x3c+2, OEM-ID "MSDOS5.0", sectors/cluster 4, reserved sectors 8, root entries 512, Media descriptor 0xf8, sectors/FAT 200, sectors/track 63, heads 255, hidden sectors 128, sectors 204800 (volumes > 32 MB), reserved 0x1, serial number 0x7c740ddd, unlabeled, FAT (16 bit)
El resultado arroja que se trata de un raw image FAT 16, el cual es utilizado para almacenar la imagen de un volumen o un disco, por lo que contiene archivos obtenidos de un dispositivo.
Los archivos raw image comúnmente contienen archivos ocultos, un método común para esconderlos es eliminarlos, sin embargo, es posible recuperarlos aunque stos ya hayan sido borrados.
Un conjunto de herramientas llamado The Sleuth Kit (TSK), es comúnmente utilizado para el análisis forense. Este kit es una colección de herramientas de línea de comandos y una librería C, y permite analizar imágenes de discos y recuperar archivos de ellas. TSK ya viene pre-instalado por defecto en la distribución Kali Linux.
La primera herramienta de TSK bastante sencilla de utilizar para analizar imágenes de discos y buscar archivos ocultos es fls.
Para ejecutar la herramienta, sólo se necesita escribir el commando fls NombreImagen. Al analizar la imagen del reto se obtiene el siguiente resultado:
root@kali:~/plaidctf/space# fls space_saver.dd r/r 3: NEW VOLUME (Volume Label Entry) r/r 5: flag.png r/r * 7: P.png r/r * 9: PP.png r/r * 11: PPP.png r/r * 13: space.rar v/v 3270275: $MBR v/v 3270276: $FAT1 v/v 3270277: $FAT2 V/V 3270278: $OrphanFiles
En el resultado obtenido se observan varios archivos listados con un asterisco (*) a un lado, lo cual significa que esos archivos fueron borrados, pero se pueden recuperar.
De los archivos listados se observan tres archivos con extensión PNG y uno con extensión RAR que fueron eliminados. Además, se observa un archivo flag.png que está disponible directamente en la imagen (es decir, no fue eliminado)
Se pueden recuperar fácilmente todos los archivos listados con la herramienta tsk_recover(la cual también forma parte de TSK) utilizando el siguiente comando:
root@kali:~/plaidctf/space# mkdir archivos root@kali:~/plaidctf/space# root@kali:~/plaidctf/space# tsk_recover -e -f fat16 ./space_saver.dd ./archivos/ Files Recovered: 5 root@kali:~/plaidctf/space# root@kali:~/plaidctf/space# ls -lah archivos total 80K drwxr-xr-x 2 root root 4.0K Apr 15 18:06 . drwxr-xr-x 3 root root 4.0K Apr 15 18:05 .. -rw-r--r-- 1 root root 20K Apr 15 18:06 flag.png -rw-r--r-- 1 root root 15K Apr 15 18:06 P.png -rw-r--r-- 1 root root 15K Apr 15 18:06 PP.png -rw-r--r-- 1 root root 15K Apr 15 18:06 PPP.png -rw-r--r-- 1 root root 3.8K Apr 15 18:06 space.rar root@kali:~/plaidctf/space#
Una vez que se extrajeron los archivos, se analizó uno por uno y se descubrió lo siguiente.
flag.png
A pesar que el archivo se llama flag, parece que sólo es un archivo troll, ya que no contiene nada que pueda ayudar a resolver el reto.
Se utilizaron otras técnicas como análisis de encabezados y el uso herramientas de análisis de archivos e imágenes como binwalk, exiftool, zsteg o stegsolver para ver si se obtenía alguna otra información escondida en la imágen pero no se obtuvo ninguna información útil (no se ahondará en el uso de estas herramientas en este write-up, pero es indispensable mencionarlas para entender el desarrollo de la lógica del reto)
P.png, PP.png, PPP.png
A simple vista, los 3 archivos de nombre similar contienen la misma imágen.
root@kali:~/plaidctf/misc/space/archivos# md5sum P* f0a3e92098d91a065b2b5671b451ff64 P.png f0a3e92098d91a065b2b5671b451ff64 PP.png f0a3e92098d91a065b2b5671b451ff64 PPP.png root@kali:~/plaidctf/misc/space/archivos#
Las imágenes PPP también se analizaron con las técnicas mencionadas anteriormente (binwalk, exiftool, etc y se checaron encabezados), pero tampoco se obtuvo ninguna información relevante.
Por último, se analizó el archivo space.rar. Al intentar descomprimirlo pedía una contraseña, por lo que se probó usar como contraseña algunas palabras comunes en el reto (P, PP, PPP, space) pero todas marcaron error.
root@kali:~/plaidctf/space/archivos# unrar e space.rar UNRAR 5.50 freeware Copyright (c) 1993-2017 Alexander Roshal Extracting from space.rar Enter password (will not be echoed) for space/final.png: Extracting final.png 97% Checksum error in the encrypted file space/final.png. Corrupt file or wrong password. Total errors: 1 root@kali:~/plaidctf/space/archivos#
En este punto no se consideró la posibilidad de hacer un ataque de fuerza bruta a la contraseña del archivo .rar, ya que PlaidCTF no es conocido por diseñar retos que requieran aplicar este ataque.
Tampoco se encontró alguna palabra evidente que se pudiera utilizar como contraseña, por lo que se intentó buscar archivos ocultos en el .rar pero no se tuvo éxito.
Dado que todos los intentos anteriores no arrojaron resultados positivos, se determinó que había algo escondido en los archivos recuperados pero que no se estaba utilizando la herramienta adecuada para analizar la imagen de disco.
Otra herramienta que permite analizar una imagen de disco es FTK Imager. Esta es una herramienta gráfica para sistemas operativos Windows y es muy sencilla de usar. Se siguieron los siguientes pasos para montar la imagen y analizar los archivos.
1. File > Add Evidence Item
3. Select Image > Finish
Ya que se da click en Finish, se regresa a la ventana principal y debajo de Evidence Tree se pudo observar la imagen montada y sus ramificaciones:
Se accedió a la carpeta [root] y se encontraron los archivos descargados con las herramientas de TSK, pero se observaron también otros archivos adicionales de tipo File Slack. Este tipo de archivos se refieren al espacio que existe más allá del término del archivo lógico pero dentro del área reservada a ese archivo por el sistema de archivos.
Se dió clic a cada uno de los archivos slack y se observó un string legible en cada uno, por ejemplo, el string que se obtuvo para la imagen P.png.FileSlack fue Spac
Se analizaron los restantes archivos slack y se obtuvo lo siguiente:
PP.png.FileSlack -> 3ei2
PPP.png.FileSlack -> herE
Después de esto se encontró que al menos dos de los strings anteriores contenían palabras legibles en inglés (como space y here), así que se unieron en uno sólo y se obtuvo el siguiente string: Spac3ei2herE
Sin olvidar el archivo space.rar protegido, se intentó usar el nuevo string como contraseña y se logró descomprimir el archivo satisfactoriamente:
root@kali:~/plaidctf/space/archivos# unrar e space.rar UNRAR 5.50 freeware Copyright (c) 1993-2017 Alexander Roshal Extracting from space.rar Enter password (will not be echoed) for space/final.png: Extracting final.png OK All OK root@kali:~/plaidctf/space/archivos#
Para finalizar, se abrió el archivo extraído final.png y se obtiene la bandera:
Flag: PCTF{2pac3_3v34ry_wh3r3}
Go Mayas!!!
Comentarios
Publicar un comentario