08 abril 2011

Crear y montar imágenes raw


Existen muchas opciones para obtener una imagen de un disco duro en un análisis forense. Una de las más económicas y utilizadas son las herramientas opensource que se proveen en distribuciones LiveCD de Linux enfocadas a este mismo propósito.

Estas distribuciones integran la utilidad "dd" y múltiples alternativas que facilitan y mejoran las funciones de la original, como son:

  • dc3dd: creada por Jesse Kornblum,  para el DoD Cyber Crime Center, junto a otras utilidades conocidas como foremost o md5deep. Esta aplicación es un parche para el comando "dd" al que añade nuevas características, como: 
    • Creación de hashes "en el vuelo", para no tener que ejecutar posteriormente otra herramienta para sacar los hashes de cada imagen.
    • Verificación de la correcta lectura y escritura de datos.
    • Barra de progreso.
    • Posibilidad de dividir de las imágenes resultantes entre varios ficheros.
    • Combinación de errores en los logs, para no generar cientos de líneas en fallos de lectura.
    • Posibilidad de ser utilizado para "wipear" datos.
  • dcfldd: creado por el U.S. Department of Defense Computer Forensics Lab, es muy similar al dc3dd en cuanto a sus características, pero a diferencia del anterior, no es un parche a aplicar al propio dd. Dcfldd es un fork que se mantiene independientemente. Una de las mejoras más destacables es la posibilidad de almacenar los datos en múltiples destinos, de tal forma que se pueda hacer más de una imagen a la vez de un mismo bloque de datos.
  • dd_rescue: orientada a la realización de copias de seguridad para la recuperación en caso de desastre. Entre sus principales ventajas y diferencias ofrece la posibilidad de configurar el tratamiento en caso de errores de lectura y la posibilidad de lectura inversa: comenzando por el final del archivo.
  • ddrescue: pese a la similitud en el nombre con el anterior, es una herramienta distinta con el mismo propósito. Esta aplicación ofrece la opción de resumir y continuar copias canceladas.

Por cierto, un truquito para conocer cuantos datos ha copiado el clásico dd es enviarle la señal USR1:

#
# dd if=/dev/zero of=/dev/null& pid=$!
# kill -USR1 $pid; sleep 1; kill $pid
24601995+0 records out
12596221440 bytes (13 GB) copied, 13.0529 s, 965 MB/s

Una vez hecha la imagen, que incluirá la tabla de particiones, la forma más sencilla de ir montando cada una de las particiones en otro equipo del laboratorio es con la herramienta kpartx. Sus   parámetros son muy sencillos:

# kpartx -l image.img
loop1p1 : 0 512020 /dev/loop1 61
loop1p2 : 0 512000 /dev/loop1 412062
loop1p3 : 0 44056010 /dev/loop1 924060
# kpartx -a -v image.img
add map loop1p1 (253:6): 0 512020 linear /dev/loop1 61
add map loop1p2 (253:7): 0 512000 linear /dev/loop1 412062
add map loop1p3 (253:8): 0 44056010 linear /dev/loop1 924060
# ls -l /dev/mapper
total 0
crw-rw---- 1 root root  10, 62 2010-06-15 17:40 control
brw-rw-r-- 1 aramosf aramosf 253,  6 2019-08-16 00:28 loop1p1
brw-rw-r-- 1 aramosf aramosf 253,  7 2011-04-01 00:28 loop1p2
brw-rw-r-- 1 aramosf aramosf 253,  8 2011-04-01 00:28 loop1p3
# mount /dev/mapper/loop1p1 /mnt -o ro
# umount /mnt
# kpartx -d image.img
loop deleted : /dev/loop1

1 comments :

Alejandro Ramos dijo...

He borrado un comentario de un anónimo que nada tenia que ver con la entrada original, si alguien quiere algo, que escriba directamente un correo electrónico. Un saludo.