Recuperar ficheros con foremost

En muchas ocasiones, nos puede resultar útil utilizar alguna herramienta forense para recuperar ficheros de un dispositivo de almacenamiento: borrado accidental del disco (entrada en pánico), búsqueda de documentos borrados a propósito (caja b), y un largo etc.

Existen muchas herramientas forenses para este tipo de tareas (Autopsy, foremost, magicrescue…). Incluso hay distribuciones linux específicas para análisis forense, con un montón de herramientas destinadas a recuperar ficheros, como por ejemplo Caine, SIFT o DEFT (Kali linux también trae un listado de herramientas forenses).

Hoy vamos a ver una herramienta open source (originalmente desarrollada por la United States Air Force Office of Special Investigations) y muy sencilla de utilizar: foremost.

Lo primero que necesitaremos es instalar esta herramienta si no la tenemos.

sudo apt install foremost

Una vez instalada, viendo el manual podemos ver las distintas opciones y tipos de ficheros soportados (más adelante veremos cómo añadir más tipos):

Podemos utilizar esta herramienta tanto con particiones de un dispositivo de almacenamiento como con una imagen que hayamos creado previamente (si estamos trabajando en un análisis forense, siempre hay que crear una imagen del disco original y trabajar sobre esa imagen) que podemos crear con la herramienta dd, indicando con el parámetro «if» el fichero de entrada (del cual leeremos) y con el parámetro «of» el fichero de salida (donde escribiremos). Podemos utilizar la opción status=progress para ver el progreso de generación de la imagen.

dd

La forma más sencilla de utilizar esta herramienta es lanzar la herramienta indicando la fuente que queremos analizar.

$ sudo foremost -i /dev/sda1

Este comando nos creará por defecto un directorio output donde hayamos lanzado la herramienta y nos creará una carpeta por cada uno de los tipos soportados. Entonces comenzará la búsqueda para recuperar ficheros e irá colocando dentro de cada carpeta los ficheros de ese tipo que vaya encontrando. Al final del proceso, si hay algún tipo de fichero que no ha encontrado, borrará dicha carpeta.

En caso de que quisieramos buscar por tan solo uno o varios tipos de ficheros, podemos inicarlo con el flag -t.

$ sudo foremost -t doc,docx,pdf -i /dev/sda1

Ahora bien, ¿qué pasa si queremos buscar por otro tipo de fichero que no está soportado por foremost? Por suerte, la herramienta dispone de un fichero de configuración donde podemos definir nuevos tipos de ficheros. Este fichero lo podemos encontrar en /etc/foremost.conf

Como podemos ver, para indicar un nuevo tipo de fichero tenemos que añadir la extensión (NONE en caso de no querer usar extensión), indicar si el header y el footer son case sensitive (es decir, si es tal cual lo hemos puesto), el tamaño máximo del fichero en bytes y finalmente la cabecera y el pie (este último no es obligatorio). De esta manera, foremost buscará todos los ficheros cuya cabecera empiecen por lo que hemos indicado y (si lo hemos indicado también) que terminen por el pie, con un tamaño máximo el que hayamos indicado y en caso de indicar la extensión, también se fijará en ello.

Generalmente, el header y el footer vendrán indicados con sus valores en hexadecimal, pero no siempre tiene por qué ser así, como vemos en el ejemplo:

Veamos ahora cómo podemos obtener esta inforamción.

Ya que somos unos forenses como los del CSI, vamos a suponer que habíamos estado haciendo unas capturas del tráfico de red para ver qué sucedía dentro de nuestra empresa (por supuesto con consentimiento expreso ?) y teníamos guardados en nuestro pendrive una serie de ficheros pcap que por accidente alguien (nunca nosotros) ha borrado y ahora queremos recuperar.

Lo primero que podemos hacer es buscar el estándar para saber el formato del fichero:

https://wiki.wireshark.org/Development/LibpcapFileFormat

Como vemos, el «número mágico» que indica que un fichero es de tipo pcap, puede contener los valores hexadecimales 0xa1b2c3d4 o 0xd4c3b2a1.

Vamos a comprobarlo que esto sea cierto utilizando la herramienta hexdump:

Viendo el valor que tienen nuestros ficheros pcap, solo tenemos que añadirlo al fichero de configuración de foremost. Si por ejemplo queremos buscar ficheros pcap de máximo 10Mb, podemos indicarlo de la siguiente manera:

Y ahora, para buscar solamente por ficheros pcap, lanzaremos el siguiente comando:

$ sudo foremost -t pcap -i /dev/sda1

Categorías