Cómo descifrar el llavero del sistema de otro mac en la línea de comandos

1

Me acabo de encontrar con una situación en la que un usuario con una Mac que había sido interrumpida por una actualización interrumpida necesitada en su copia de seguridad de Time Machine fuera del proceso de recuperación normal. Desafortunadamente, habían olvidado la contraseña para hacer esto.

Tengo acceso al sistema de archivos en el Mac roto y necesito recuperar su contraseña de Time Machine, así como cualquier otra cosa en el llavero del sistema.

Dificultad: El llavero del sistema no usa una contraseña normal, usa bytes aleatorios .

¿Cómo se descifra un llavero del sistema?

    
pregunta Mikey T.K. 28.11.2017 - 18:27

1 respuesta

4

Necesitas lo siguiente:

  • Un Mac muerto con un sistema de archivos legible (llamado desde aquí la máquina Fuente )
  • Una nueva máquina Mac o Linux (llamada la máquina Destino desde aquí)

  • El archivo System.keychain de la máquina de origen.

    • Este archivo se encuentra en /System/Library/Keychains o /Library/Keychains
  • El archivo SystemKey de la máquina de origen. Esto contiene la contraseña real.
    • Ubicado en /var/db/SystemKey
  • acceso a Internet en la máquina de destino.

Paso 1: Recuperar la clave de cifrado para el llavero de origen

No podemos usar SystemKey tal como está: contiene bytes aleatorios que no se pueden ingresar en un diálogo de contraseña o en una línea de comando. Aún mejor, necesitamos 24 bytes de la mitad del archivo, después del número mágico que indica un archivo clave, pero antes de los bytes de suma de comprobación.

El comando correcto para obtener la clave hexadecimal correcta es:

hexdump -s 8 -n 24 -e '1/1 "%.2x"' /path/to/SystemKey && echo

Explicado: omita los primeros 8 bytes desde el principio del archivo, continúe 24 bytes después de eso, y use la cadena de formato para volcar los datos en una línea (es una cadena printf de estilo C, si ' re curioso).

El && echo es así que obtendremos una nueva línea de línea para que la salida no se ejecute al principio de tu indicador de shell una vez que finalice el comando.

Copia esta cadena a un lado. Esta es la clave de descifrado del llavero.

Paso 2: volcar el llavero con la contraseña

Necesitamos una herramienta de terceros para esto. Suponemos que la Mac muerta no se puede iniciar de tal manera que podamos usar su aplicación Keychain Access normalmente.

Esa herramienta será Chainbreaker , una secuencia de comandos de python. Tendrá que instalar la biblioteca hexdump para Python. Ejecute los siguientes comandos en la máquina de destino:

  • sudo pip install hexdump
  • git clone https://github.com/n0fate/chainbreaker
  • cd chainbreaker

Ahora simplemente le damos a Chainbreaker la clave que acaba de encontrar y el archivo:

python chainbreaker.py -f /path/to/system.keychain -k (the byte string from step 1)

Verá la contraseña en texto sin formato de todo el llavero del sistema. Para mi caso de uso, quería la contraseña de Time Machine, y esto se representará en la salida como Generic password record llamado Time Machine . La contraseña en texto simple estará debajo.

Ahora podemos simplemente usar el Finder para abrir Time Machine .sparsebundle, dar la contraseña que extrajimos del archivo de claves y continuar como siempre.

    
respondido por el Mikey T.K. 28.11.2017 - 18:27

Lea otras preguntas en las etiquetas