Recuperar archivos borrados con Scalpel

por | 9 diciembre, 2013
2339615947_03edc44a01_b

image credits by Zhent_

Scalpel es de esas utilidades en GNU/Linux, al estilo de PhotoRec o Foremost, que nos permite recuperar los archivos que hemos borrado accidentalmente en nuestro equipo.

Scalpel («bisturí») como su nombre indica, nos permite diseccionar los archivos,  utilizando una técnica que se basa  en los encabezados, pies de página y estructura interna de los mismos, que le facilita acceder a la de la base de datos de bloques donde están los archivos borrados, identificarlos y recuperarlos casi al instante,lo que le convierte en una herramienta muy útil tanto para la investigación forense digital, como a la hora de restaurar nuestros datos.

Es una técnica conocida como File Carving (supongo que la traducción será «talla de archivo» o algo así!) que además tiene la ventaja de poder recuperar datos, independientemente del sistema de archivos utilizado: FAT, NFTS, EXT, HFS+ etc…pero mejor no nos enrollarnos con la teoría, vamos a ir al grano y lo primero que tenemos que hacer es…

Instalar Scalpel

En esta ocasión utilicé Lubuntu en vez de mi querida openSUSE, así que los que tengáis esta distro o similar, como son las derivadas de Debian, Ubuntu o la propia Linux Mint tan solo tenéis que hacer:

sudo apt-get install scalpel

Recuperando archivos

Después de instalarlo necesitamos editar el archivo de configuración (lo podéis encontrar en esta ruta /etc/scalpel/scalpel.conf),  y descomentar (quitar el símbolo #) las lineas correspondientes a las extensiones que nos interesa recuperar.

En mi caso voy a intentar recuperar unos archivos .jpg en mi pendrive, así que descomento la linea que corresponde a esa extensión.

scalpel_2.0.2_config

Ahora solo precisamos ejecutar el comando

sudo scalpel [nombre_partición/carpeta_a_recuperar] -o [directorio_de_salida]

En nuestro ejemplo sería algo así:

sudo scalpel dev/sdb1 -o prueba

Unos minutos después vemos que hemos recuperado unos cuantas fotos (más de 1000…)

scalpel_2.0.3_config

se nos crea un par de carpetas con los archivos recuperados y un log de salida

scalpel_2.0.4_finaly aquí tenéis las pruebas del delito XD

scalpel_2.0.5_final

Como véis una herramienta fantástica, que no es que haga milagros pero… casi, casi…

Image Credits | Gasmaskgirl ftw by Zhent_

20 pensamientos en “Recuperar archivos borrados con Scalpel

  1. 4ng3l

    Descubrí Scalpel hace tiempo, por pura necesidad. Borré accidentalmente unos datos muy, pero que muy importantes de mi trabajo. Poco tiempo después recobré datos valiosos de un disco duro moribundo. Es el tipo de utilidad que típicamente usas una vez cada dos años, o puede que incluso menos (a no ser que seas especialmente torpe) pero que te alegras de tener a mano cuando las cosas se tuercen. Y ahora ya no salgo de casa sin ella. Buena nota

    Saludos ccordiales.

    Responder
    1. tannhausser

      A mi no deja de sorprenderme lo rápido que va y lo bien que funciona! Porque esas fotos hacía más de un mes que las había borrado y desde aquella por ese pendrive USB pasaron un montón de pelis, series, PDFs etc…

      Saludos!

      Responder
  2. brunoolaf

    Hola. He intentado utilizar scalpel en openSUSE 13.1 gnome, lo instalé utilizando el buscador de software de openSUSE, supuestamente se realizó de manera correcta la instalación, pero en /etc no se creó la carpeta sclapel ni puedo encontrar el archivo scalpel.conf Y cuando intento utilizar scalpel me aparece el siguiente mensaje:

    Scalpel version 2.0
    Written by Golden G. Richard III and Lodovico Marziale.
    ERROR: Couldn’t open configuration file:
    scalpel.conf — No such file or directory
    Scalpel was unable to read a needed file and will abort.

    ¿Tienen alguna idea de en qué me habré equivocado o cómo lo puedo reparar?

    Agradeceré mucho cualquier apoyo.
    Saludos

    Responder
    1. tannhausser

      Tuve el mismo problema, en openSUSE se crea el archivo de configuración (más bien un ej. de archivo de configuración) en un directorio diferente.
      Fui incapaz de hacerlo funcionar, incluso intenté crear de forma manual el archivo en /etc pero me daba el mismo error.
      Al final me cansé e hice el tuto en Lubuntu…

      Responder
  3. geronimo

    Se ve bien ,,, no me acuerdo si era tesdisk el que probe una vez «menudo lio» ,, algo como recuva no estaria mal ,,,
    Buen tema , Saludos

    Responder
  4. pcfenix

    y uno que te recupere aparte de fotos archivos de libreoffice videos y otros cuando se formatea saludos a la espera.

    Responder
    1. tannhausser Autor

      Hoy vi una referencia a uno nuevo que hace eso, a ver si lo puedo probar el fin de semana, si funciona bien, prometo post 🙂

      Responder
  5. jmartintin

    Hola, quiero recuperar unos archivos con extension .aac de audio de una tarjeta de memoria, pero no esta esta extension dentro del archivo de configuracion, probe de agregarlo a mano, pero no se que parametros deberia agregarle luego de nombrar la extension, quizas si alguien pudiera explicar que significan los parametros que figuran luego de las extensiones en el archivo scalpel.conf, gracias

    Responder
  6. Kros

    Hola.
    Gracias por el tutorial y las explicaciones.
    A ver si podrías ayudarme, en mi caso quiero recuperar archivos con extensiones: .sii y .cfg
    El caso es que no se que poner en el scalpel.conf. Lo he probado así:
    sii y 100000
    cfg y 100000

    pero me pide los demás datos (que deben ir despues) pero claro, no se que poner ahí. Si tuvierar una ligera idea…

    Saludos y gracias.

    Responder
    1. Kros

      Me respondo a mi mismo:
      Despues de leer este artíiculo: http://www.linux-magazine.com/Online/Features/Recovering-Deleted-Files-with-Scalpel

      He comprobado los headers con otros archivos .sii y luego .cfg y todos empiezan por los mismos encabezados en hexadecimal:

      kros@debian:~$ hexdump -C -n 20 ‘/home/kros/ets2/profiles/6B75736572/config.cfg’
      00000000 23 20 70 72 69 73 6d 33 64 20 76 61 72 69 61 62 |# prism3d variab|
      00000010 6c 65 20 63 |le c|
      00000014
      kros@debian:~$ hexdump -C -n 20 /home/kros/ets2/config.cfg
      00000000 23 20 70 72 69 73 6d 33 64 20 76 61 72 69 61 62 |# prism3d variab|
      00000010 6c 65 20 63 |le c|
      00000014
      kros@debian:~$ hexdump -C -n 20 /home/kros/ets2/mods_info.sii
      00000000 53 69 69 4e 75 6e 69 74 0d 0a 7b 0d 0a 6d 6f 64 |SiiNunit..{..mod|
      00000010 73 5f 69 6e |s_in|
      00000014
      kros@debian:~$ hexdump -C -n 20 /home/kros/ets2/news.sii
      00000000 53 69 69 4e 75 6e 69 74 0d 0a 7b 0d 0a 7d 0d 0a |SiiNunit..{..}..|
      00000010

      Con lo que mi scalpel.conf quedará así:

      cfg y 100000 \x23\x20\x70\x72\x69\x73\x6d\x33\x64\x20\x76\x61\x72\x69\x61\x62\x6c\x65\x20\x63
      sii y 100000 \x53\x69\x69\x4e\x75\x6e\x69\x74\x0d\x0a\x7b\x0d\x0a

      100000 porque en mi caso estos archivos no exceden de 100 KB

      Ya os diré si funciona que estoy en ello y dice que demorará un poco.

      Saludos.

      Responder
      1. alvarolucas

        Yo he hecho algo parecido.
        Quería recuperar un qcow2 (un HD de KVM)

        $ hexdump -C -n20 disk001.qcow2
        00000000 51 46 49 fb 00 00 00 03 00 00 00 00 00 00 00 00 |QFI………….|
        00000010 00 00 00 00 |….|
        Así que he añadido al final del /etc/scalpel/scalpel.conf
        qcow2 y 10000000 \x51\x46\x49\xFB
        porque el fichero borrado ocupaba 7GBs
        Lo he ejecutado con scalpel /mnt/MVs -o /tmp/scalpel
        pero da un error. El ficheo audit.txt indica

        Scalpel version 1.60 audit file
        Started at Fri Jun 15 11:39:23 2018
        Command line:
        scalpel /mnt/MVs -o /tmp/scalpel

        Output directory: /tmp/scalpel
        Configuration file: /etc/scalpel/scalpel.conf

        Opening target «/mnt/MVs»

        The following files were carved:
        File Start Chop Length Extracted From
        ERROR: Memory exhausted at line 638 in file dig.c. Scalpel was
        allocating memory for carvelists when this condition occurred.
        Scalpel will abort.

        No es por falta de memoria, entiendo, porque tengo al menos 39GBs libres…
        total used free shared buff/cache available
        Memoria: 62G 15G 39G 651M 7,5G 46G
        Swap: 74G 4,0G 70G

        ¿alguna idea?

        Responder

Responder a jmartintinCancelar respuesta

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.