viernes, 27 de abril de 2012

Recuperar archivos borrados

Como dije en la Presentación, esto es un blog de un newbie, para newbies, así que mis fuentes no son mis conocimientos, sino lo que 'pesco' por ahí. Una de las web que más frecuento es la de 'Un Bruto con Debian', de Carlos Aranda, que tiene 'mucha ciencia', y que de vez en cuando dice cosas muy prácticas y asumibles por los que no pasamos de 2º de bachiller, así que, con perdón, y como homenaje a ese 'yacimiento de sabiduría', me atrevo a interpretar, en lenguaje para novatos, una de sus últimas (a la fecha) entradas.
Citando, por supuesto, la fuente: http://www.carlosaranda.es/
Así que vamos a hablar de una aplicación que se llama foremost, y que sirve para recuperar archivos borrados. Bueno, matizo: 'algunos tipos' de archivos borrados. 
Y añadiré alguna cosita más, de mi cosecha.
Cuando borras un archivo hombre, normalmente se mueve a la papelera de reciclaje pero, aunque vacíes la papelera, el archivo sigue estando ahí, presente en el medio de almacenamiento, ya sea éste un disco duro, un pendrive, una tarjeta de memoria flash o cualquier otro medio de almacenamiento.
Porque lo que sucede, hablando en términos sencillos, es que lo que se borra solo las 'cabeceras' del archivo, que son las que dicen al sistema que 'este sector lo ocupa el archivo X', así que el espacio ocupado (el sector, o sectores) del disco sigue conteniendo el archivo.
Solo que, sin esas cabeceras, el sistema identifica esos sectores como 'espacio disponible' y está expuesto a que entre otro archivo que 'desaloje' (sobre-escribiéndolo) al viejo.
De aquí lo que todos hemos leido tantas veces de que es muy recomendable, si borras accidental e indebidamente algún archivo, procurar usar lo menos posible el medio de almacenamiento dedonde estaba, para aumentar la probabilidad de éxito al recuperar el archivo borrado, antes de que, por procesar o guardar más información en ese medio, se sobre-escriban los datos.
Y que, por supuesto, es mucho mejor, si tienes algún programa para recuperar archivos borrados, que emplees otra unidad de almacenamiento (otra partición, otro disco...) para extraer a ella los archivos que recuperes.
Bien pues, después de este rollo, vamos al asunto:  

Foremost (Forensic... no se qué) es una utilidad de línea de comandos, originalmente desarrollado para US Air Force Office of Special Investigations que es muy sencilla de aplicar y bastante potente, que nos permite recuperar un gran tipo de ficheros de un disco o USB a pesar de haberlo borrado o formateado.
 
Hombre, no recupera todos los tipos de archivos, pero si los más importantes, como los .jpg, .gif, .png, .bmp, .avi, .mpg, .exe, wav, .pdf, .zip, .rar, .doc, .mp3... y otros tipos más que puedes ver en el archivo /etc/foremost.conf.

Está en los repositorios, así que no está de más tenerla instalada y lista para sacarnos de un apuro con alguna tarjeta de memoria con fotos, o pendrive, etc. que, por ejemplo, hayamos tenido que formatear.

Usar Foremost es muy fácil
Primero tendremos que saber dónde tiene que buscar, o sea, de donde tiene que rescatar los archivos (será un /dev/sdX). Si no lo sabes, siempre puedes escribir, en consola
df -h
para identificarlo. 

Y luego decidir donde los quieres guardar. Yo los guardo en la carpeta Rescate de mi home, o sea en /home/doc/Rescate (que la crea, al ejecutarlo y, por cierto, no debe estar creada antes: si encuentra una carpeta con el mismo nombre, foremost no se ejecutara)

La orden a escribir en consola tendrá este aspecto:
foremost -t [tipos-de-datos-a-rescatar] -i [de-donde-rescatarlos] -o [donde-dejar-lo-rescatado]
donde con -t indicamos que busque por 'tipos' de archivos, con -i que los debe buscar en el dispositivo que se indica a continuación y con -o (creo...) que cree directorios por grupos de archivos.

Así, si yo quiero rescatar los archivos de un pendrive, que lo he identificado como /dev/sdd1 pondría
foremost -t all -i /dev/sdd1 -o /home/doc/Rescate

(hay que hacerlo en consola de usuario, si lo haces como Root es muy incómodo porque el archivo hay que abrirlo, también, como root, y si borras algo, evidentemente, te va a la Papelera de Root (esa que siempre nos olvidamos de vaciarla manualmente de vez en cuandoste... y se va llenando y ocupando sitio.
Y una cuestión importante
En el archivo /etc/foremost.conf aparecen las extensiones de archivos que puede recuperar. 
Pero ATENCIÓN, están todas comentadas con '#' inicial... aunque en algunos tipos pone que están incluidos en el proceso de extracción estandar (o al menos eso debe decir esto que precede a alguno de ellos: 'NOTE THESE FORMATS HAVE BUILT IN EXTRACTION FUNCTION'). 

Así que lo primero que conviene hacer es revisar ese archivo, editarlo con privilegios de root, por ejemplo con
# gedit /etc/foremost.conf

y 'descomentar' (quitar la # inicial) a los que no tengan esa nota, y nos interesen: como, por ejemplo, los MP3, los MPG, los TXT, etc, etc. Y así lo dejamos, ya, configurado, salvo que queramos cambiarlo, en otra ocasion (por ejemplo, para comentar algunas líneas y asñí hacer una recuperación más selectiva)

Bien pues, la verdad, mi primera prueba con Foremost, rescatando lo que tenía (que ni idea) en un viejo pendrive de 2 Gb, me dejó alucinado:


Descubrí que foremost tiene algunas limitaciones, hombre, está muy bien para recuperar imágenes, documentos (ojo, por ejemplo los archivos *.doc te los recupera como documentos OLE, los *.xls como SX, o todos como *.doc, los mp3 como MPG), películas AVI, PDFs... pero no quedé a gusto.

Así que seguí buceando por Google para buscar alguna aplicación que recupere más cosas. Y la verdad, me llevé cierta desilusión porque hay poco. Por ejemplo, descubrí scalpel, que es otra aplicación que está en los repos, basada en foremost, pero más eficiente.

El funcionamiento de scalpel, una vez instalado, es similar al de foremost: La orden para que actúe es más sencilla. Para el caso del pendrive en /dev/sdd1 del ejemplo, es:
scalpel /dev/sdd1 -o /home/mi_usuario/Rescate1

Configurar el scalpel la configuración de scalpel se encuentra en el directorio /etc/scalpel/scalpel.conf. En el momento que lo abras verás que está dividido en secciones, y que está todo comentado (con # delante)
Así que como medida previa, hay que editarlo, como root, con
# gedit /etc/scalpel/scalpel.conf

y descomentar los tipos de archivo que te interese (y esto, ya, como en el foremost, te queda para siempre)

Scalpel quizás tarda un poco más que Foremost, porque hace 2 pasadas. Pero tiene la ventaja de que se pueden añadir (para que recupere) archivos en formato de LibreOffice (odt, ods, odp... cosa que el Foremost no hace), sin más que, editado como root el /etc/scalpel/scalpel.conf, copiar, al final, esta 'retahila'de datos (que, por supuesto, 'pesqué' por ahi)
#---------------------------------------------------------------------
# OPENOFFICE FILES
#---------------------------------------------------------------------
odt y 20000000 PK????????????????????????????mimetypeapplication/vnd.oasis.opendocument.textPK META-INF/manifest.xmlPK????????????????????
ods y 10000000 PK????????????????????????????mimetypeapplication/vnd.oasis.opendocument.spreadsheetPK META-INF/manifest.xmlPK????????????????????
odp y 10000000 PK????????????????????????????mimetypeapplication/vnd.oasis.opendocument.presentationPK META-INF/manifest.xmlPK????????????????????
# odg y 10000000 PK????????????????????????????mimetypeapplication/vnd.oasis.opendocument.graphicsPK META-INF/manifest.xmlPK????????????????????
# odc y 10000000 PK????????????????????????????mimetypeapplication/vnd.oasis.opendocument.chartPK META-INF/manifest.xmlPK????????????????????
# odf y 10000000 PK????????????????????????????mimetypeapplication/vnd.oasis.opendocument.formulaPK META-INF/manifest.xmlPK????????????????????
# odi y 10000000 PK????????????????????????????mimetypeapplication/vnd.oasis.opendocument.imagePK META-INF/manifest.xmlPK????????????????????
# odm y 10000000 PK????????????????????????????mimetypeapplication/vnd.oasis.opendocument.text-masterPK META-INF/manifest.xmlPK????????????????????
# sxw y 10000000 PK????????????????????????????mimetypeapplication/vnd.sun.xml.writerPK META-INF/manifest.xmlPK????????????????????

y para el caso de archivos de Thunderbird:
#---------------------------------------------------------------------
# THUNDERBIRD FILES
#---------------------------------------------------------------------
# msf y 10000000 //\s<!--\s<mdb:mork:z\sv="1.4"/>\s-->?\s//\s(f=iso-8859-1) //\s<!--\s<mdb:mork:z\sv="1.4"/>\s-->?\s//\s(f=iso-8859-1) NEXT
# actual Local Folder data files, no way to tell end so grab 100MB
NONE y 100000000 From????????????????????????????X-Mozilla-Status:\s?????X-Mozilla-Status2: NEXT

De todas formas, tampoco quedo muy a gusto: aparte de que los archivos no tienen su nombre, sino que están numerados, debes identificarlos porque, como en el foremost, por ejemplo los MP3 me los marca como MPG, todos los documentos en 'formato Office' (doc, xls, ppt...) los marca como DOC, etc, así que estas herramientas están muy bien, pero son 'perfectibles'.

Así que es cuestión de que, cada uno, valore el interés.

De lo poco que hay, hay otra, que parece también muy buena, el Photorec, que viene dentro del paquete TestDisk... pero me parece bastante compleja para los novatillos, así que de momento lo dejo para ver si, en alguna ocasión, puedo profundizar en ella. Pero... NOTA FINAL: Ver esto

No hay comentarios:

Publicar un comentario