Obtener Los Hashes De Todos Los Archivos Residentes En Un Sistema De Archivos

Durante un proceso de análisis forense, se requiere frecuentemente obtener los hashes correspondientes a cada uno de los archivos residentes en un disco o dispositivo de almacenamiento. Para este propósito es factible utilizar el comando “find”, y una opción la cual permita ejecutar un comando sobre cada archivo encontrado. De esta manera será factible obtener una lista muy útil de los hashes para cada archivo.

Para el siguiente ejemplo se utiliza la imagen forense capturada desde un disco flexible.

Se procede a montar la imagen forense.

$ sudo mount -t vfat -o ro,noexec,loop practical.floppy.dd /mnt/floppy/

En el directorio donde se ha realizado el montado, se procede a realizar un listado recursivo de archivos y directorios.

$ ls -alR

Se ejecuta un comando el cual encontrará todos los archivos regulares residentes en el sistema de archivos, para luego ejecutar un comando el cual generará los hashes desde todos ellos.

El comando “find” permite buscar archivos. El “punto” indica iniciar la búsqueda en el directorio actual. La opción “-type f” indica buscar cualquier archivo regular. La opción “-exec” indicar ejecutar el comando “sha1sum” sobre todos los archivos encontrados. “{}”. La salida es redireccionada hacia un archivo de nombre “/tmp/hashes.txt”. El “\;” es una secuencia de escape para finalizar el comando “-exec”.

$ find . -type f -exec sha1sum {} \; > /tmp/hashes.txt

El resultado es una lista de archivos generados a partir del contenido en el punto de montaje y sus respectivos hashes SHA1.

$ cat /tmp/hashes.txt

También se puede utilizar Linux para hacer la verificación, y de esta manera corroborar nada ha sido cambiado en el dispositivo de almacenamiento original. Para esto puede utilizar la opción “-c” con el comando “sha1sum”. Si el contenido del dispositivo no ha sido alterado, el comando devolverá un “OK”.

$ sha1sum -c /tmp/hashes.txt

Los hashes SHA en el archivo serán comparados con los hashes SHA tomados desde el dispositivo de almacenamiento (en el punto de montaje). Si algo ha cambiado, el programa presentará un mensaje ”failed” o Fallido. Los archivos sin cambio serán marcados con un “OK”. Esta es la manera más rápida de verificar los hashes.

Anotar los nombres de archivos inician con “./”. Esto indica una ruta relativa. Eso significa se debe estar en el mismo directorio relativo cuando se verifiquen los hashes, pues es donde el comando buscará por los archivos.

Fuentes:

http://linux.die.net/man/1/find
http://linux.die.net/man/1/sha1sum
http://linuxleo.com/

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s