Scalpel, recuperar archivos borrados de OpenOffice/LibreOffice

Introducción

Muchas veces tenemos la mala costumbre de borrar directamente los archivos utilizando la combinación “Mayúsculas+Borrar”, en lugar de utilizar solo Borrar. Si solo empleáramos borrar, posteriormente lo podríamos recuperar de la papelera, pero como la naturaleza humana es terriblemente cómoda, ¿porque dar dos pasos, si en uno podemos terminar el trabajo? ERROR, a veces, recorrer el camino mas corto lleva mas tiempo.

Hace unos meses publiqué un artículo para recuperar archivos borrados, “En Ubuntu y a lo CSI: como recuperar archivos borrados“, en el que hablaba sobre Foremost. En aquel momento, surgió la duda de como recuperar archivos de OpenOffice/LibreOffice, pues hay una solución basada en Foremost, se trata de Scalpel.

Scalpel

Scalpel una aplicación de código abierto desarrollada para recuperar información borrada, y que si bien está basada en Foremost, es significativamente más eficiente. Implementada por Golden G. Richard III y presentada en la conferencia DFRWS en 2005.

Actualmente cuando borras un archivo de forma permanente, ya sea accidental o intencionadamente, no se borra inmediatamente de tu disco duro, si no que se almacena en ciertos bloques de tu disco duro, y permanece allí hasta que lo sobrescribes con otro archivo. De echo, hay herramientas, cuyo cometido es triturar los archivos que borras para evitar que sean recuperados, herramientas como BleachBit.

Con Scalpel, al igual que con otras herramientas de recuperación de archivos borrados, es recomendable que lo hagas desde otra unidad, para evitar que al recuperar el archivo se sobreescriba. Si sólo tienes una unidad, puedes utilizar por ejemplo, un Live CD. Ahora, depende de lo importante que sea el documento que tienes que recuperar, y la rapidez con que quieras hacerlo, vamos, que si no es muy importante, siempre te puedes arriesgar. En el caso de una memoria USB, no tienes este problema.

Scalpel, es una herramienta independiente del sistema de archivos. Está disponible en Linux y Mac OS, pero también se puede utilizar en Windows, aunque es necesario compilarla para ello.

Instalación

Scalpel está en los repositorios de Ubuntu, con lo que la instalación es bien sencilla, o haces clic en Scalpel, o desde el terminal:


sudo apt-get install scalpel

Configuración

La configuración de Scalpel se encuentra en el directorio /etc, concretamente /etc/scalpel/scalpel.conf. En el momento que lo habrás verás que está dividido en secciones, y que está todo comentado, presentando un aspecto como éste:

0032_atareao@zorita: -home-atareao

En cada una de las secciones hay diferentes tipos de archivos, por ejemplo, el que ves en la imagen anterior se corresponde con los archivos gráficos. Si quieres recuperar algún archivo, por ejemplo, archivos con formato “gif”, simplemente tienes que quitar la almohadilla del comienzo de la línea. Por ejemplo, si queremos recuperar archivos comprimidos con formato “zip”, el archivo de configuración quedaría así:

0034_atareao@zorita: -home-atareao

Para cada tipo de archivo, en la configuración, se define además de la extensión, si el encabezado y el pie del archivo distinguen entre mayúsculas y minúsculas, el tamaño máximo de archivo, así como el encabezado y el pie del archivo. El pie del archivo es opcional, pero tanto el encabezado, como el tamaño, como la extensión, como si distingue entre mayúsculas y minúsculas son campos obligatorios. Cualquier línea que comienza con una “#” almohadilla se considera un comentario y no se evalúa.

El encabezado y el final del archivo son decodificados antes de su uso. Para especificar un valor en hexadecimal, hay que utilizar \x[0-f][0-f] y para utilizar el valor en octal hay que emplear \[0-3][0-7][0-7]. Los espacios se representan por “\s”. En el caso de que queramos poner cualquier carácter, se empleará “?”. Para buscar archivos sin extensión, en la columna correspondiente a la extensión hay que poner NONE

Recuperar archivos de OpenOffice/LibreOffice

Como habrás visto, no existe, en la configuración por defecto, información para recuperar archivos de LibreOffice, sin embargo, se pude modificar esta configuración con el propósito deseado, para ello, tienes que añadir lo siguiente:


#---------------------------------------------------------------------
# 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//\s(f=iso-8859-1) //\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

Utilizando Scalpel

Una vez definido en el archivo de configuración lo que queremos recuperar, suponiendo que se encuentra en la partición /dev/sdh1, nos situaremos en otra unidad y ejecutaremos la siguiente instrucción:


sudo scalpel /dev/sdh1 -o output

Por ejemplo, he copiado un archivo pdf, Los piratas son los padres, en un directorio dentro de una memoria usb, y he borrado el directorio, utilizando mayúsculas suprimir, con lo que no ha pasado por la papelera. He configurado Scalpel para recuperar archivos pdf, para ello, he desmarcado las dos líneas correspondientes, y he ejecutado la instrucción anterior:

0035_prueba

La duración es considerable. Estoy utilizando una memoria USB de 32 GB y el tiempo es de casi 20 minutos. No quiero ni pensar lo que puede tardar en buscar en un disco duro de 1 Tera.

Una vez terminado, nos muestra las estadísticas del proceso:

0039_atareao@zorita: -home-atareao

El siguiente paso es ir al directorio “output” y analizar la información aportada. Para ello, lo primero es cambiar la propiedad de este directorio, pues al haber ejecutado la instrucción como administrador es de su propiedad, para ello:


sudo chown atareao:atareao output
cd output
nano audit.txt

y veremos algo como ésto:

0040_atareao@zorita: -home-atareao-output

Donde nos dice que ha recuperado un archivo pdf, que lo ha guardado como “00000000.pdf”, solo nos queda ver lo que hemos obtenido:

0042_atareao@zorita: -home-atareao-output-pdf-0-0

0044_Layout 3

Todo correcto.

Conclusión

Otra herramienta de código abierto, a tu disposición, y altamente configurable para recuperar archivos, y como ves, no sólamente los que vienen por defecto en la configuración, sino que tu también puedes hacer tus pinitos, para recuperar otros archivos posibles. Todo es cuestión de intentarlo. De cualquier forma, lo más interesante, es no tener que recurrir a este tipo de herramientas.

Vía | Flossstuff’s Blog
Más información | HowtoForgeUbuntu Forums