11 votes

Comment décrypter le trousseau de clés du système à partir d'un autre mac en ligne de commande

Je viens de rencontrer un utilisateur dont le Mac avait été endommagé par une mise à jour interrompue et qui avait besoin d'accéder à sa sauvegarde Time Machine. à l'extérieur du processus normal de récupération. Malheureusement, ils avaient oublié le mot de passe nécessaire à cette opération.

J'ai accès au système de fichiers du Mac en panne et j'ai besoin de récupérer leur mot de passe Time Machine ainsi que tout ce qui se trouve dans le trousseau de clés du système.

Difficulté : Le trousseau de clés du système n'utilise pas un mot de passe normal, mais des octets aléatoires. .

Comment décrypter un trousseau de clés système ?

15voto

Mikey T.K. Points 2555

Vous avez besoin des éléments suivants :

  • Un Mac mort avec un système de fichiers lisible (appelé le Source machine à partir d'ici)

  • Une nouvelle machine Mac ou Linux (appelée Cible machine à partir d'ici)

  • En System.keychain de la machine source.

    • Ce fichier se trouve dans l'un ou l'autre des dossiers suivants /System/Library/Keychains ou /Library/Keychains
  • En SystemKey de la machine source. Il contient le mot de passe actuel.

    • Situé en /var/db/SystemKey
  • Accès à Internet sur la machine cible.

Étape 1 : Récupérer la clé de chiffrement du trousseau source

Nous ne pouvons pas utiliser SystemKey tel quel - il contient des octets aléatoires qui ne peuvent pas être saisis dans une boîte de dialogue de mot de passe ou dans une ligne de commande. Mieux encore, nous avons besoin de 24 octets au milieu du fichier - après le nombre magique qui indique un fichier clé, mais avant les octets de la somme de contrôle.

La commande correcte pour obtenir la bonne clé hexagonale est la suivante :

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

Expliqué : Sauter les 8 premiers octets du début du fichier, continuer 24 octets après, et utiliser la chaîne de format pour vider les données sur une seule ligne (c'est un style C). printf si vous êtes curieux).

En && echo c'est pour obtenir une seule nouvelle ligne après, afin que la sortie ne se retrouve pas au début de l'invite de votre shell après la fin de la commande.

Copier cette chaîne de caractères à part. Il s'agit de la clé de décryptage du trousseau.

Étape 2 : Vider le trousseau à l'aide du mot de passe

Nous avons besoin d'un outil tiers pour cela. Nous partons du principe que le Mac mort ne peut pas être démarré de manière à ce que nous puissions utiliser son application Keychain Access normalement.

Cet outil sera Brise-chaîne - un script Python. Vous aurez besoin d'installer le fichier hexdump pour Python. Exécutez les commandes suivantes sur la machine cible :

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

Il suffit maintenant de donner à Chainbreaker la clé que vous venez de trouver et le fichier :

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

Vous verrez le mot de passe en clair de tout ce qui se trouve dans le trousseau de clés du système. Pour mon cas d'utilisation, je voulais le mot de passe de Time Machine, et il sera représenté dans la sortie sous la forme d'un Generic password record nommée Time Machine . Le mot de passe en clair sera indiqué ci-dessous.

Il suffit maintenant d'utiliser le Finder pour ouvrir le fichier .sparsebundle de Time Machine, de donner le mot de passe que nous avons extrait du fichier clé et de continuer comme d'habitude.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X