Análisis forense no formal con Photorec y Scalpel
¿Qué es peor que eliminar un archivo por accidente? No encontrarlo ni en la papelera de reciclaje. *horror.ogg*
O cómo recuperar las fotos que borraste por accidente
¿Se fueron para siempre?
TL;DR; No.
Cuando elminamos un archivo de cualquier dispositivo de almacenamiento (ya sea una USB, un disco duro externo o el que viene con nuestra PC) lo único que el sistema operativo hace es *marcar*
el espacio de almacenamiento ocupado por ese archivo como Disponible
. Pero el compendio de 0
s y 1
s de nuestro archivo sigue ahí, por un tiempo.
¿Hasta cuando? Hasta que el sistema necesite ese espacio para algún otro archivo y decida utilizarlo. Es por eso que en estos casos las escrituras a disco (o al dispositivo de almacenamiento) son nuestro peor enemigo, y empieza nuestra carrera contra el tiempo. Esto en caso de que sea el disco duro de nuestra PC, por que, en dispositivos de almacenamiento como USB’s realmente se escribe hasta que nosotros digamos, pero no te confíes tanto.
Este post realmente es un experimento con las dos herramientas antes mencionadas:
- PhotoRec
- Scalpel
Ambas nos pueden ayudar en estos casos pero son un poco diferentes. No intenten esto en casa, o sí.
Para sistemas Windows lo único que he usado es Recuva, el cual funciona bien. No ahondaremos en él, por que el objetivo es recuperar archivos en sistemas Linux.
Formateando una USB
Lo primero que hice fue formatear una USB que ya no utilizo, lo importante es sobreescribir los contenidos para ver el funcionamiento de las herramientas que vamos a usar.
[1] Especificar que sobreescriba el almacenamiento con 0s y 1s
Y después de unos minutos, dependiendo de tu equipo, tendremos una USB fresca y lista para nuestro experimento.
Llenando la USB
Usaremos dos tipos de archivos para esta prueba:
- Imágenes (wallpapers oficiales de Fedora)
- Archivos de texto (Markdown; usaremos un script para generar muchos ¡yay!)
Ejecuté este código sobre la memoria que formateamos, el cuál creará i
directorios con 1 archivo de markdown cada uno:
Modifica i para crear los que tu corazón desee
El árbol de archivos ($ tree .
) se verá de la siguiente forma:
¿El paso siguiente? ¡Borrar todo con Shift + supr
! No queremos que nuestros archivos se vayan a .Trash
, queremos deshacernos de ellos por completo (casi).
La carpeta está vacía; eso es cierto, pero técnicamente nuestros archivos siguen vivos. ¿Qué sigue? Conseguir PhotoRec y Scalpel. En sistemas como Fedora sería con:
# dnf install scalpel testdisk
(testdisk contiene PhotoRec).
PhotoRec
Ahora, ya sabíamos que la estructura de archivos y los nombres se pierden. Pero lo interesante es que PhotoRec no pudo recuperar mis archivos .md
. Los tipos de archivo que puede manejar o recuperar PhotoRec están acá, obviamente .md
no está soportado. Sin embargo hizo un estupendo trabajo con las imágenes y el archivo de bash, como se puede ver a continuación: