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?
Sie benötigen folgende Dinge:
Ein neuer Mac- oder Linux-Rechner ( im Folgenden Zielrechner genannt )
Die System.keychain
Datei von der Quellmaschine.
/System/Library/Keychains
oder/Library/Keychains
SystemKey
Datei von der Quellmaschine. Diese enthält das eigentliche Passwort.
/var/db/SystemKey
Wir können es nicht SystemKey
unverä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 printf
Zeichenfolge im C-Stil, wenn Sie neugierig sind).
Das && echo
ist 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.
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 hexdump
Bibliothek 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 record
benannte 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.
Manu
mattpr
Mikey TK
Mikey TK