A todos nos ha pasado alguna vez, que guardamos algo tan seguro, tan seguro, tan seguro,…. que no nos acordamos dónde lo dejamos. Hace unos días me tocó tirar de un disco duro que guardo cifrado, mediante el sistema de ficheros HFS+ de Mac, con las opciones Journaled, Encrypted.
Cuando insertas el USB, Mac te muestra un Pop-Up, en el que se te pide la contraseña de desbloqueo del volumen. Todo esto está bien cuando usas esa contraseña a menudo, pero cuando no es el caso dices… por qué habré puesto una contraseña de cifrado tan rara.
A todo esto, el pop-up, no te permite ver la contraseña en claro, por lo que si te has equivocado en una letra, te toca volverla a escribir completa. Tampoco permite hacer copy-paste, por lo que no podemos escribirla en un bloc de notas y pegarla en la caja de texto, así que volvemos al paso 1.
Como la contraseña era bastante complicada, me puse a investigar la opción de hacer el montaje desde un terminal.
El comando diskutil tiene múltiples combinaciones que nos permiten gestionar, entre otras cosas, los volúmenes cifrados.
Con el flag “cs list”, el CoreStorage nos muestra la estructura formada por los diferentes Grupos de Volúmenes, Volúmenes Físicos, Familias de Volúmenes Lógicos y finalmente los Volúmenes Lógicos que ve el sistema operativo. Si tenemos habilitado Filevault2 para el cifrado del disco completo (opción muy recomendable), nos aparecerá el primero de ellos, con el volumen desbloqueado (Unlocked dentro del campo Encryption Status)
En el caso que se ve arriba, dentro de la sección Logical Volume, AA0E91…. etc… se puede ver que el Status es Locked.
Con Diskutil y los flags unlockvolume , te pediría por línea de comandos la contraseña de desbloqueo. Si además le añadimos -passphrase , ya nos permite hacerla en claro y ver si nos estamos equivocando o no, hacer copy/paste o incluso… montarnos un bruteforcer. Ya que estaba, he hecho algo muy sencillito pero que si a alguien le puede ser de ayuda, pues aquí lo tiene:
Tan fácil como pasarle con el parámetro -u el UID del volumen a desbloquear y con un -d un fichero “diccionario”, que previamente habremos generado. En este punto, la inteligencia a aplicar es diferente y no voy a entrar. Que haya palabras concatenadas con números, caracteres especiales o lo que queráis, es otra historia diferente.
Una vez el script acierta con la contraseña, lo deja desbloqueado, pero sin montar.
Nos dice cuál era la contraseña, por si sólo necesitamos eso. Si queremos montarlo, tan sencillo como “diskutil mount disk4” (en este caso) y ya está!
Lo que es un axioma innegable es que la prisa que te corre recuperar lo que hay dentro de un contenedor cifrado, es directamente proporcional a las posibilidades que te pegues con una contraseña que no funciona (o que no recuerdas ;D)