martes, 24 de marzo de 2009

Recuperar archivos borrados con Scalpel

Scalpel es un escultor rápido de archivos que lee una base de datos de cabeceras y pies de paginas y extrae los archivos que coinciden desde un conjunto de archivos de imágenes o archivos de dispositivos. Scalpel es independiente del sistema de archivo y puede tallar archivos desde FAT, NTFS, ext2/3. Es muy útil para investigación forense digital y recuperación de archivos. Este pequeño articulo te mostrara como usar Scalpel para recuperar archivos borrados.

Antes que nada ten en cuenta que Scalpel no garantiza que la recuperación de archivos sea exitosa.

Instalando Scalpel

En Debian o Ubuntu puedes ejecutar:

sudo aptitude install scalpel


Usando Scalpel

Para saber como usar Scalpel ejecuta:

man scalpel


Antes de usar Scalpel, debes definir algunos tipos de archivos que Scalpel buscara en /etc/scalpel/scalpel.conf. Por defecto todos los tipos de archivos están comentados. En este ejemplo, se va a recuperar los archivos borrados tipo PDF, por eso se descomentan las siguientes lineas:

nano /etc/scalpel/scalpel.conf

[...]
pdf y 5000000 %PDF %EOF\x0d REVERSE
pdf y 5000000 %PDF %EOF\x0a REVERSE
[...]

Scalpel puede ser usado como sigue para tratar de recuperar los archivos:

scalpel /dev/sda1 -o salida

La opcion -o define el directorio donde Scalpel ubicara los archivos recuperados, en este caso el archivo se llamara "salida" y es un sub directorio del directorio donde estamos ejecutando Scalpel, el directorio no debe existir por que de otro modo Scalpel no empezara.

Si no sabes en que partición buscar, dale un revisada a la salida del comando:

mount

server1:~# mount
/dev/sda1 on / type ext3 (rw,errors=remount-ro)
tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
udev on /dev type tmpfs (rw,mode=0755)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)
nfsd on /proc/fs/nfsd type nfsd (rw)
server1:~#

Después que Scalpel a terminado, encontraras un directorio llamado "salida" dentro del directorio donde ejecutaste el comando:

ls -la

server1:~# ls -la
total 36
drwxr-xr-x 5 root root 4096 2009-03-12 17:53 .
drwxr-xr-x 21 root root 4096 2009-02-16 13:10 ..
drwx------ 2 root root 4096 2009-02-16 13:15 .aptitude
-rw------- 1 root root 377 2009-02-16 13:32 .bash_history
-rw-r--r-- 1 root root 412 2004-12-15 23:53 .bashrc
drwxr-xr-x 2 root root 4096 2009-02-16 13:17 .debtags
drwxr-xr-- 3 root root 4096 2009-03-12 17:53 salida
-rw-r--r-- 1 root root 140 2007-11-19 18:57 .profile
-rw------- 1 root root 3480 2009-03-12 17:06 .viminfo
server1:~#

ls -l salida

server1:~# ls -l salida
total 8
-rw-r--r-- 1 root root 386 2009-03-12 19:10 audit.txt
drwxr-xr-x 2 root root 4096 2009-03-12 19:10 pdf-0-0
server1:~#

El archivo audit.txt contiene un resumen de lo que Scalpel ha hecho:

cat salida/audit.txt

server1:~# cat salida/audit.txt

Scalpel version 1.60 audit file
Started at Thu Mar 12 19:01:50 2009
Command line:
scalpel /dev/sda1 -o salida

Output directory: /root/salida
Configuration file: /etc/scalpel/scalpel.conf

Opening target "/dev/sda1"

The following files were carved:
File Start Chop Length Extracted From
00000000.pdf 5712642048 NO 437138 sda1


Completed at Thu Mar 12 19:10:33 2009
server1:~#

Y el subdirectorio pdf-0-0/ contiene los archivos pdf que Scalpel ha recuperado:

ls -l salida/pdf-0-0/

server1:~# ls -l salida/pdf-0-0/
total 432
-rw-r--r-- 1 root root 437138 2009-03-12 19:10 00000000.pdf
server1:~#

Antes de ejecutar Scalpel la siguiente vez en el mismo directorio, deberás borrar o renombrar el directorio actual "salida", por que Scalpel no iniciara si ese directorio ya existe o especifica otro nombre para el directorio.

Fuente.

No hay comentarios: