So entschlüsseln Sie den Systemschlüsselbund von einem anderen Mac über die Befehlszeile

Ich bin gerade auf eine Situation gestoßen, in der ein Benutzer mit einem Mac, der durch ein unterbrochenes Update schwer beschädigt wurde, außerhalb des normalen Wiederherstellungsprozesses in sein Time Machine-Backup musste. Leider hatten sie das Passwort dafür vergessen.

Ich habe Zugriff auf das Dateisystem auf dem kaputten Mac und musste das Time Machine-Passwort sowie alles andere im System-Schlüsselbund wiederherstellen.

Schwierigkeit: Der System-Schlüsselbund verwendet kein normales Passwort, sondern zufällige Bytes .

Wie entschlüsselt man einen Systemschlüsselbund?

Antworten (1)

Sie benötigen folgende Dinge:

  • Ein toter Mac mit einem lesbaren Dateisystem ( von hier an Quellmaschine genannt)
  • Ein neuer Mac- oder Linux-Rechner ( im Folgenden Zielrechner genannt )

  • Die System.keychainDatei von der Quellmaschine.

    • Diese Datei befindet sich entweder in /System/Library/Keychainsoder/Library/Keychains
  • Die SystemKeyDatei von der Quellmaschine. Diese enthält das eigentliche Passwort.
    • Befindet sich in/var/db/SystemKey
  • Internetzugang auf dem Zielcomputer.

Schritt 1: Wiederherstellen des Verschlüsselungsschlüssels für den Quellschlüsselbund

Wir können es nicht SystemKeyunverändert verwenden - es enthält zufällige Bytes, die nicht in einen Kennwortdialog oder eine Befehlszeile eingegeben werden können. Noch besser, wir brauchen 24 Bytes aus der Mitte der Datei – nach der magischen Zahl, die eine Schlüsseldatei angibt, aber vor den Prüfsummenbytes.

Der richtige Befehl, um den richtigen Inbusschlüssel zu erhalten, lautet:

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

Erklärt: Überspringen Sie die ersten 8 Bytes vom Anfang der Datei, fahren Sie danach 24 Bytes fort und verwenden Sie die Formatzeichenfolge, um die Daten in einer Zeile auszugeben (es ist eine printfZeichenfolge im C-Stil, wenn Sie neugierig sind).

Das && echoist so, dass wir danach einen einzelnen Zeilenumbruch erhalten, damit die Ausgabe nicht am Anfang Ihrer Shell-Eingabeaufforderung läuft, nachdem der Befehl beendet ist.

Kopieren Sie diese Zeichenfolge beiseite. Dies ist der Entschlüsselungsschlüssel für den Schlüsselbund.

Schritt 2: Entleeren Sie den Schlüsselbund mit dem Passwort

Dazu benötigen wir ein Drittanbieter-Tool. Wir gehen davon aus, dass der tote Mac nicht so gebootet werden kann, dass wir seine Keychain Access-App normal verwenden können.

Dieses Tool wird Chainbreaker sein - ein Python-Skript. Sie müssen die hexdumpBibliothek für Python installieren. Führen Sie die folgenden Befehle auf dem Zielcomputer aus:

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

Jetzt geben wir Chainbreaker einfach den soeben gefundenen Schlüssel und die Datei:

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

Sie sehen das Klartext-Passwort von allem im System-Schlüsselbund. Für meinen Anwendungsfall wollte ich das Time Machine-Passwort, und dies wird in der Ausgabe als Generic password recordbenannte Time Machine. Das Klartext-Passwort wird unten angezeigt.

Jetzt können wir einfach den Finder verwenden, um das Time Machine .sparsebundle zu öffnen, das Passwort eingeben, das wir aus der Schlüsseldatei ausgegraben haben, und wie gewohnt fortfahren.

Solide Anleitung. Ich habe gerade meine WLAN-Passwörter aus einem Time Machine-Backup damit wiederhergestellt.
Hilfreiche Antwort. Sie implizieren, dass wir das Drittanbieter-Tool verwenden, weil wir keinen Zugriff auf ein funktionierendes KeychainAccess-Programm haben? Ich bin gespannt, ob dies direkt mit Keychain Access funktioniert ... dh Sie laden den Schlüsselbund vom alten Laufwerk in KeyChain Access auf dem neuen Computer und entsperren ihn dann mit dem aus SystemKey extrahierten Kennwort. Scheint auf den ersten Blick nicht zu funktionieren, aber vielleicht können Sie mehr Licht ins Dunkel bringen, warum das funktioniert oder nicht. In meinem Fall möchte ich die Artikel in einen neuen Schlüsselbund migrieren.
@mattpr Das Problem, das Sie mit dem normalen Schlüsselbund-Zugriffsprogramm haben würden, besteht darin, dass es nur versucht, den Schlüsselbund zu entsperren, den Sie mit SystemKey hinzugefügt haben - einer zufälligen Binärdatei. Und da es sich um eine zufällige Binärdatei handelt, können Sie sie nicht in einen Kennwortdialog einfügen. Es muss einen Weg geben, aber leider weiß ich nicht, was das ist.
Erwähnenswert ist, dass neuere Versionen von ChainBreaker es Ihnen ermöglichen, die SystemKey-Datei einfach so zu verwenden, wie sie ist, wodurch Schritt 1 überflüssig wird.