Hola secuaces:
Hemos visto cómo adquirir una imagen, bit a bit, de un disco duro en un entorno Windows.
Ahora vamos a ver cómo hacerlo desde un entorno Linux.
Linux da mucho juego. Cuando digo que da mucho juego es que es muy flexible y ofrece múltiples posibilidades. Vamos a ver varias formas para realizar esta operación.
La primera de ellas es usar un entorno Live, (en este caso me decantaré por DEFT), y hacer uso de Guymager.
Para ello, arrancamos el sistema desde el dispositivo USB y elegimos la opción ‘DEFT Linux 8 live’
Una vez que arrancado el sistema, levantamos una consola de terminal y tipeamos
guymager
De esta forma se ejecuta esta herramienta, que nos presenta las unidades de disco que tenemos disponible.
Si seleccionamos una de ellas y realizamos un clic derecho con el ratón, se nos desplegará un menú contextual, en el que elegiremos la opción ‘Acquire image’.
Ahora se nos presentará la ventana con las opciones de configuración de la adquisición forense.
En esta ventana, tendremos opción de elegir el formato de salida del fichero de imagen, (por compatibilidad recomiendo el formato .dd). Podremos elegir si dividir el fichero de imagen del disco en otros más pequeños. Tendremos que elegir el directorio de salida, (a otro medio extraíble, recordad). Y tendremos que dar un nombre al fichero originado.
En lo referente al cálculo Hash y la verificación… ¿Tenemos prisa? NINGUNA. Por ello vamos a calcular los hashes en sus algoritmos MD5, (De este, realmente, se podría prescindir), en SHA-1 y SHA-256. Marcaremos la opción de releer el recurso después de la adquisición y marcaremos también la opción de verificar la imagen después de la adquisición.
Toda medida es poca para garantizar la integridad de la evidencia.
Cuando estemos seguros, clicaremos en el botón ‘Start’, que dará comienzo al proceso de adquisición.
Mientras se encuentra activo el proceso podemos observar la información del mismo, en la parte inferior de la ventana.
Y una vez que ha finalizado, lo veremos en el estado, con un aviso en verde, que nos dictará ‘Finished – Verified & ok’, y el progreso en el 100%.
Ahora podemos listar los ficheros generados, con
ls -l | grep ImagenDisco
Podemos ver, también, el fichero de información de la adquisicón.
Si queremos unir los ficheros posteriormente, para comenzar a trabajar con la imagen, basta con ejecutar
cat ‘/media/root/TOSHIBA EXT/ImagenDisco.000’ ‘/media/root/TOSHIBA EXT/ImagenDisco.001’ ‘/media/root/TOSHIBA EXT/ImagenDisco.002’ ‘/media/root/TOSHIBA EXT/ImagenDisco.003’ … > ‘/media/root/TOSHIBA EXT/ImagenDiscoUnida’
Que, entre otras, nos devuelve información del disco adquirido.
E información del proceso de adquisición.
Este fichero deberá de ser adjuntado al informe pericial correspondiente.
Vamos a ver ahora cómo realizar esta operación con ‘DD’, en modo local y en remoto.
Uso de DD en local
Para adquirir la imagen en bruto de un disco duro con ‘DD’ en modo local, basta con tipear en la consola
sudo dd conv=sync,noerror bs=64K if=/dev/sda | pv | dd ‘of=/media/marcos/TOSHIBA EXT/ImagenDiscoDuro.dd’
Con ‘sudo’ ejecutamos la utilidad con privilegios de administración, (es necesario).
dd llama a la utilidad.
conv=sync,noerror le dice a la utilidad que omita los errores del disco, (sectores defectuosos).
bs=64K establece la medida del bloque.
if=/dev/sda indica el disco o partición de origen, (input file).
pv es una utilidad para monitorizar el progreso, (de esta forma no tendremos que usar ‘time’.
dd vuelve a llamar a la utilidad
‘of=/media/marcos/TOSHIBA EXT/ ImagenDiscoDuro.dd’ le dice a la utilidad dónde tiene que escribir el fichero generado, (output file).
Uso de DD en remoto con NC, (Netcat)
Para adquirir la imagen en bruto de un disco duro con ‘DD’, en modo remoto con ‘NC’, (Netcat), lo primero que hay que saber es la IP de la máquina desde la que queramos trabajar, (en mi caso he elegido trabajar sobre la máquina de destino del fichero). Para ello ejecutamos
ifconfig
Hecho esto, levantamos la consola y tipeamos
nc -l -p 3333 | sudo dd ‘of=/media/marcos/TOSHIBA EXT/ImagenDiscoNC.dd'
nc –l –p 3333 llama a la utilidad y le dice que permanezca a la escucha de una conexión entrante en el puerto 3333
sudo eleva los privilegios, (es necesario)
dd llama a la utilidad
‘of=/media/marcos/TOSHIBA EXT/ImagenDiscoNC.dd’ indica la ubicación del fichero de salida. Este fichero, este disco externo, debe estar conectado en esta máquina, (por algo le indicamos que el fichero de salida lo genere ahí.
Ahora nos vamos a la máquina objeto de la extracción del disco.
En ella, tras levantar un terminal, tipeamos
sudo dd conv=sync,noerror bs=64K if=/dev/sda | pv | nc 192.168.1.39 3333
sudo eleva los privilegios, (es necesario).
dd llama a la utilidad
conv=sync,noerror le indica que ignore los errores del disco, (sectores defectuosos).
bs=64K establece la medida del bloque.
if=/dev/sda indica el disco o partición de origen.
pv es una utilidad para monitorizar el progreso, (de esta forma no tendremos que usar ‘time’.
nc 192.168.1.39 3333 indica llama a la utilidad Netcat y le indica que se conecte a la máquina con IP 192.168.1.39 a través del puerto 3333.
Uso de DD en remoto, a través de SSH, (1)
Para adquirir una imagen de un disco duro, a través del protocolo SSH, lo primero que hay que saber el la IP de la máquina con la que deseemos trabajar. Vamos a ver las dos formas, (desde la máquina objeto de la extracción y desde la máquina destino del fichero de imagen. Tipeamos
ifconfig
Es necesario, si no está levantado, iniciar el servicio SSH. Para ello escribimos
sudo service ssh start
Ahora nos vamos a la otra máquina y probamos la conexión, mandando 3 paquetes, con
ping -c 3 192.168.1.38
Si no tenemos problemas de conexión, podemos proceder con la extracción, mediante
ssh -p 22 marcos@192.168.1.38 “sudo dd if=/dev/sda | gzip -1 –“ | pv | dd ‘of=/media/marcos/TOSHIBA EXT/ImagenDiscoRemoto’
ssh –p 22 indica que queremos establecer conexión mediante este protocolo a través del puerto 22.
marcos@192.168.1.38 indica el nombre de usuario y el host de destino.
sudo eleva los privilegios de la utilidad que se llamará a continuación.
dd llama a la utilidad
if=/dev/sda indica el disco o partición objeto de la extracción.
gzip -1 – indica que queremos comprimir la imagen que se genere en ese nivel de compresión, (1).
pv es una utilidad para monitorizar el progreso, (de esta forma no tendremos que usar ‘time’).
dd vuelve a llamar a la utilidad
‘of=/media/marcos/TOSHIBA EXT/ImagenDiscoRemoto’ indica la ubicación del fichero de salida. Este fichero, este disco externo, debe estar conectado en esta máquina, (por algo le indicamos que el fichero de salida lo genere ahí.
Uso de DD en remoto, a través de SSH, (2)
La otra forma de realizar este proceso, es ejecutando la orden en la otra máquina.
Para ello, deberemos saber también su dirección IP, con
ifconfig
Volvemos a levantar el servicio SSH, mediante
sudo service ssh start
Después de esto, si desconocemos qué disco queremos extraer, podemos ejecutar
sudo fidisk -l
Realizamos una prueba de conexión entre ambas máquinas, enviando 3 paquetes, con
ping –c 3 192.168.1.39
Ahora procedemos a la adquisición del disco, mediante
sudo dd if=/dev/sda | gzip -1 - | pv | ssh -p22 marcos@192.168.1.39 dd ‘of=/media/marcos/TOSHIBA EXT/ImagenRemota’
sudo eleva los privilegios.
dd llama a la utilidad.
if=/dev/sda indica el disco o partición objeto de la extracción
gzip -1 indica que queremos comprimir el fichero originado en el nivel 1.
pv monitoriza el progreso de adquisición
ssh –p22 indica que queremos conectarnos a través del protocolo SSH y del puerto 22
marcos@192.168.1.39 indica el usuario y el host de la otra máquina.
dd vuelve a llamar a la utilidad
‘of=/media/marcos/TOSHIBA EXT/ImagenRemota’ indica la ruta donde se generará el archivo de imagen del disco.
Para terminar, SIEMPRE, SIEMPRE, SIEMPRE, sin limpiar la pantalla, (clear), listaremos ese fichero que hemos adquirido, calcularemos su firma digital, como mínimo con el protocolo SHA-1, y copiaremos ese fichero a otro medio extraíble. Para ello, escribimos
ls -l ‘/media/marcos/TOSHIBA EXT’ | grep ImagenDiscoRemoto sha1sum ‘/media/marcos/TOSHIBA EXT/ImagenDiscoRemoto’ cp ‘/media/marcos/TOSHIBA EXT/ImagenDiscoRemoto’ ‘/media/marcos/TOSHIBA EXT/CopiaImagenDiscoRemoto’ ls -l ‘/media/marcos/TOSHIBA EXT’ | grep ImagenDiscoRemoto
Tras esto, realizamos una captura de pantalla, que será adjuntada al informe pericial correspondiente.
Hay más formas de adquirir una imagen de disco. Sólo os he mostrado algunas.
Con esto hemos terminado la fase de adquisición de evidencias.
Esto es todo, por ahora. Nos leemos en la siguiente entrada. Se despide este minion, entregado y leal, de vosotros… por ahora.
Marcos @_N4rr34n6_
3 comentarios en «Clonación, bit a bit, de un disco con #Guymager y #DD en #Linux»
Estoy viendo que los hashes (sha1sum) son distintos si sacas con dd y con guymager, no deberian ser iguales ???
Hola, Antonio. Gracias por preguntar. Efectivamente, si se usan los mismos algoritmos, y se usa el mismo medio objeto de la imagen, debieran ser iguales. En caso contrario quiere decir que, o se han manipulado, o no se trata del mismo medio objeto de la imagen, (como era este caso). Los discos no eran los mismos. Un saludo.
Hola,
Si quiero usar esta imagen dd como backup, y levantarla en otro disco como si fuera el original, cual seria la mejor opción?
Los comentarios están cerrados.