Cómo acceder a un directorio de inicio cifrado de FileVault con una contraseña olvidada

Para facilidad del lector, la versión corta:

MacBook Pro con Mountain Lion. Un usuario ha olvidado su contraseña de FileVault y su código maestro de recuperación. FileVault 2 no está habilitado, solo el directorio de inicio del usuario está encriptado y existe como un paquete disperso. Descifraría el paquete disperso, pero tengo problemas para obtener el hash. Todo lo que realmente quiero/necesito hacer es poder decodificar la carpeta del usuario para poder acceder a sus datos nuevamente.

Por cierto, vi en alguna parte que puede hacer que Apple restablezca la contraseña de FileVault usando su ID de Apple. ¿Es esto cierto cuando el cifrado de disco completo de FileVault 2 no está habilitado?


La versión larga:

Esto involucra una Macbook Pro que ejecuta Mountain Lion donde el usuario cambió su contraseña de usuario y no puede recordar ni la contraseña original ni la contraseña a la que se cambió. Todo lo que recuerdan de las contraseñas es que no eran palabras reales, ya que eran siglas de la primera letra de cada palabra en una oración (que él tampoco recuerda), minúsculas y mayúsculas y probablemente contenían algunos símbolos. Podría tener entre 4 y 9 caracteres de largo. Para recuperar el acceso a la computadora, inicié en modo de usuario único y me hice una cuenta de administrador, luego usé esa cuenta para cambiar la contraseña de inicio de sesión del usuario original. Ahora, cuando el usuario original inicia sesión con la nueva contraseña, se le dice que su contraseña de FileVault no es su contraseña de inicio de sesión y que debe ingresar la contraseña anterior antes de poder iniciar sesión. El problema es, por supuesto, él no lo recuerda. No, él conoce el código de recuperación maestro de FileVault.

Esto es lo que creo que sé hasta ahora: sería inútil descifrar la contraseña del usuario, ya que ya se conoce. Todavía estoy un poco dudoso con los llaveros, pero solo almacenan la contraseña actual, ¿correcto? Las contraseñas de inicio de sesión de usuarios anteriores no se almacenan en ningún lugar, ¿verdad?

Hablando de llaveros, tengo las claves públicas y privadas para el llavero maestro de FileVault. ¿Hay algo que pueda hacer con estos para desbloquear el llavero maestro de FileVault sin saber la contraseña de FileVault? ¿O puedo usarlos de alguna manera para decodificar el paquete disperso?

El Macbook Pro ejecuta OSX Mountain Lion, pero FileVault 2 NO está habilitado, solo la carpeta del usuario está cifrada y existe como un paquete disperso. Cambié los permisos para poder acceder al paquete disperso... por lo que entiendo, podría intentar descifrar el llavero master.filevault o el paquete disperso en sí. Por algo que leí, me hacen creer que el hash de sparsebundle podría no tener sal porque es una Mac actualizada. Supongo que eso significaba que se calculó en una versión anterior de OSX que no salía los hashes, pero realmente no lo sé.

Con respecto al llavero master.filevault, el hash está en texto sin formato, rodeado de ceros, ¿correcto? Realmente no importa, supongo, ya que tratar de descifrarlo probablemente sería demasiado difícil ya que tendría que usar fuerza bruta con letras mayúsculas y minúsculas, símbolos y 4-9 caracteres. Tengo una computadora forense con tarjetas de video 3xATI lista y esperando, pero dijo algo así como 320,000 años. (Pregunta adicional: ¿es posible usar una lista de diccionario como palabras que la contraseña NO será? La contraseña aquí, si recuerdas, era la primera letra de cada palabra de alguna frase, por lo que definitivamente NO es una palabra en inglés o una variante de uno.)

Entonces, supongo que voy a intentar descifrar el paquete de imágenes dispersas; ¿Alguien puede decirme cómo obtener el hash para ello? ¿Está realmente en /private/var/db/shadow bajo el GUID del usuario? ¿Es este el hash de la contraseña de FileVault para el usuario, o solo de la contraseña de inicio de sesión del usuario? Lo que leí no estaba claro en ese punto y las instrucciones sobre cómo extraer el hash del archivo GUID eran un poco confusas.

Lo que estoy preguntando, supongo, es si alguien me puede ayudar; todo lo que realmente quiero/necesito hacer es poder decodificar la carpeta del usuario para poder acceder a sus datos nuevamente. Ya sea desbloqueando el llavero filevault.master, usando de alguna manera la clave privada y el certificado del llavero filevault.master para otorgar acceso, descifrando la contraseña de la imagen sparsebundle o cualquier otra cosa, no me importa. Si sabes cómo puedo hacerlo, soy todo oídos.

Por cierto, vi en alguna parte que puede hacer que Apple restablezca la contraseña de FileVault usando su ID de Apple. ¿Esto es solo para el cifrado de disco completo de Filevault 2, o se aplica a todos los archivos/carpetas codificados con FileVault? ¿Solo funciona en Maverick? Me encantaría que esto fuera cierto, ya que su ID de Apple es quizás la ÚNICA contraseña que realmente recuerda.

Cualquier ayuda sería bienvenida, gracias de antemano por la respuesta;)

¿Su propia respuesta a apple.stackexchange.com/questions/80060/… no ayuda aquí?
No, cuando trato de abrir el archivo que contiene el hash, no se parece en nada al del ejemplo... no hay buenos 00 y luego octetos: hay cosas en todas partes, por lo que no estaba seguro de dónde está el hash... Voy a ir y mirar de nuevo, aunque tal vez era un tonto cuando lo miré antes.
En realidad, no ayuda (Creo) porque asume que la contraseña del usuario es la misma que la contraseña de FileVault (que en este caso no lo es) y le dice cómo obtener el hash de la contraseña del usuario. Esto es de lo que no estaba seguro.
@Ron Kyle: Ha pasado un tiempo, ¿cómo terminó la historia? He estado mirando FileVaultMaster.keychainy no pude determinar la estructura interna del archivo y dónde podría estar ubicado el hash, ya que encontré varias secciones que contenían hexágono con forma de llave. Con respecto a su pregunta secundaria sobre el uso de un diccionario como un filtro que no se debe probar: no creo que eso sea posible y teniendo en cuenta el posible impacto en el rendimiento en la generación de candidatos con pwd probablemente tenga poco sentido. Ah, y Passware (tm) parece ser capaz de recuperar el pwd de FVMaster.keychain de alguna manera, pero bastante lento/sin usar GPU.

Respuestas (1)

Si puede desbloquear FileVaultMaster.keychain, es posible que pueda recuperar los datos del usuario de la imagen de disco cifrada. Tengo una guía disponible desde aquí en formato PDF:

https://app.box.com/s/g3z57u54xc3fz6sr1tfn

La sección a la que querrá hacer referencia es la parte de Recuperación de FileVault de la línea de comandos de la Sección VII: Solución de problemas de la documentación de FileVault. Esa sección cubre la resolución de problemas y la recuperación de datos para FileVault heredado.

Bien, aquí está mi pregunta. Si restablezco la contraseña maestra de FileVault eliminando el llavero, ¿funcionará el llavero/contraseña maestra de FileVault para descifrar el paquete disperso? Sparsebundle es la carpeta de usuario de un usuario que NO tiene FileVault habilitado. Gracias.
No, no lo hará, para responder a mi propia pregunta.
Desafortunadamente, eliminar el llavero existente significa que la opción de recuperación que aprovecha FileVaultMaster.keychain ahora no funcionará. Esto se debe a que el contenido de FileVaultMaster.keychain es lo que realmente hace la recuperación. FileVaultMaster.keychain es un llavero específico de FileVault, cuyo contenido es un certificado SSL y una clave privada. Estas dos claves se usan específicamente para la autenticación basada en certificados de FileVault. Cuando ambas claves están disponibles, puede usarlas para desbloquear o descifrar el cifrado sparsebundle cifrado sin conocer la contraseña de la cuenta cifrada de FileVault.
¿EN REALIDAD? Eso es lo que he estado tratando de averiguar; Realmente sentí que eso debería ser posible. Tengo las claves públicas y privadas, pero aparentemente soy un tonto que no sabe cómo usarlas y cuando busco información sobre claves públicas y privadas, etc., no encontré NADA sobre cómo usar el llaves juntas para NO tener que saber la contraseña. Pensé que esto significaba que no era posible o que era tan conocido que nadie se había molestado en explicarlo en ninguna parte. Oh, espera, ¿tienes que saber la contraseña maestra de FileVault y desbloquear el master.keychain para hacerlo?
Desafortunadamente, el filevaultmaster.keychain está codificado en 1024 bits, por lo que tengo pocas o ninguna posibilidad de forzar ESO... Supongo que el sparsebundle encriptado es solo un cifrado de 128 bits y está al alcance de mi plataforma de craqueo. Sin embargo, no he tenido suerte al localizar el hash de dicha contraseña en el sparsebundle. Encontré dónde se supone que debes unir el archivo del token con la primera banda y luego mirarlo en un editor hexadecimal, cambiar un poco o dos y luego se supone que dmg2john.py extrae algo (supongo que NO el pase hash) que JohnTheRipper puede utilizar para descifrar el pase. ¿Conoces otras opciones?
La contraseña maestra es la contraseña para desbloquear FileVaultMaster.keychain. Desafortunadamente, sin esa contraseña, no puede desbloquear el llavero FileVaultMaster. Sin poder desbloquear ese llavero o la contraseña de la cuenta cifrada, no sé cómo desbloquear el paquete disperso sin un ataque de fuerza bruta.