Recuperar partición cifrada

From zerutek.com
Jump to: navigation, search

RECORDATORIO

Esto es el típico recordatorio, una anotación en un papel que siempre extravías.

Fuera de su contexto puede no tener ningún sentido.



09/06/2011

Recuperar partición cifrada

Imaginemos que hipotéticamente destrozas los primeros sectores de el disco duro de tu portátil. La recuperación del contenido que no haya sido afectado puede ser larga y tediosa, pero si adem;as tienes una partición cifrada, el proceso puede complicarse.

Esto es una pequeña receta para intentar solucionar algunos de estos males.

Herramientas utilizadas

Para realizar éste proceso de recuperación se ha utilizado SystemRescueCd

Realizando una imagen

Cuando se hacen pruebas de recuperación, la prueba y el error no suelen ser buenas compañeras, porque cuando hay un error los datos no pueden volverse a regenerar. Para poder realizar todas las pruebas sin miedo a las consecuencias, primero realizamos una imagen del disco duro afectado:

dd if=/dev/sda of=/mnt/backup/imagen.dd

Esto nos puede llevar muuuchoooo tieeemmmpooooo. Recordad que esos discos duros que caben en un bolsillo no son un ejemplo de velocidad.

Buscando la partición

Buscamos una partición que, por suerte, hemos creado con LUKS. Para localizarla utilizaremos hexedit, buscando la cadena hexadecimal 4C554B53BABE. Seguro se puede afinar más 'esta búsqueda, pero me ha sido suficiente.

Luks-header.png

Como vemos en la imagen, hemos encontrado la partición requerida en la dirección 0x4B4530000

Convertimos a decimal

Para poder asignar una offset al fichero de imagen y utilizar la partición, se requiere convertir la dirección conseguida a decimal, para lo que utilizaremos bc:

$ bc
ibase=16
4B4530000
20205207552

El numero que nos interesa es 20205207552

Configuramos el dispositivo para el montaje

Ahora vamos a generar un dispositivo que apunte a la imagen generada con el número de offset necesario para apuntar a la partición que deseamos. La utilidad que necesitamos es losetup:

losetup -o 20205207552 /dev/loop3 imagen.dd

Podemos comprobar que todo funciona correctamente con el comando file:

# file -s /dev/loop3
/dev/loop3: LUKS encrypted file, ver 1 [aes, cbc-essiv:sha256, sha1] UUID: 5522e5d2-db18-4848-1722-8396eab1ed10


Montaje de la partición LUKS

Ya tenemos todo preparado. Sólo nos queda montar el dispositivo y tener suerte.

  • Abrimos el dispositivo LUKS
# cryptsetup luksOpen /dev/loop3 LUKS
Enter passphrase for /dev/loop3:
  • Montamos el dispositivo LUKS
mount /dev/mapper/LUKS /mnt/recuperar

Resultado

Si habéis tenido mucha, mucha suerte, puedes recuperar toda la información. Si no sólo te queda intentar recuperar lo que se pueda como si /dev/mapper/LUKS fuera un filesystem más.

Referencias

http://www.sysresccd.org

http://code.google.com/p/cryptsetup/