8 votos

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

Acabo de encontrarme con una situación en la que un usuario con un Mac que se había roto por una actualización interrumpida necesitaba en su copia de seguridad de Time Machine en el exterior del proceso normal de recuperación. Por desgracia, habían olvidado la contraseña para hacerlo.

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

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

¿Cómo se desencripta un llavero del sistema?

12voto

Mikey T.K. Puntos 1220

Necesitas las siguientes cosas:

  • Un Mac muerto con un sistema de archivos legible (llamado Fuente máquina de aquí en adelante)

  • Una nueva máquina Mac o Linux (llamada Objetivo máquina de aquí en adelante)

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

    • Este archivo se encuentra en /System/Library/Keychains o /Library/Keychains
  • El SystemKey de la máquina de origen. Contiene la contraseña real.

    • Situado en /var/db/SystemKey
  • Acceso a Internet en la máquina de destino.

Paso 1: Recuperar la clave de cifrado del llavero de origen

No podemos usar SystemKey tal cual - contiene bytes aleatorios que no pueden ser introducidos en un diálogo de contraseña o línea de comandos. Incluso mejor, necesitamos 24 bytes fuera de la mitad del archivo - después del número mágico que indica un archivo de claves, pero antes de los bytes de suma de comprobación.

El comando adecuado para obtener la llave hexagonal correcta es:

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

Explicado: Omitir los primeros 8 bytes del principio del archivo, continuar 24 bytes después de eso, y usar la cadena de formato para volcar los datos en una línea (es un estilo C printf cadena, si tienes curiosidad).

El && echo es para que obtengamos una sola línea nueva después para que la salida no se ejecute en el comienzo de su símbolo del sistema después de que el comando termine.

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

Paso 2: Volcar el llavero con la contraseña

Necesitamos una herramienta de terceros para esto. Vamos a suponer que el Mac muerto no puede ser arrancado de tal manera que podamos utilizar su aplicación Keychain Access normalmente.

Esa herramienta será Rompecadenas - un script de Python. Tendrá que instalar el 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ás la contraseña en texto plano de todo lo que hay en 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 un Generic password record llamado Time Machine . La contraseña en texto plano será la siguiente.

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

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X