Unter OS X 10.11 - Ich habe die .plist
Datei meines Benutzers geöffnet und in die Datei hineingeschaut.
Ich habe das mit folgendem Befehl gemacht:
sudo defaults read /var/db/dslocal/nodes/Default/users/<username>.plist ShadowHashData|tr -dc 0-9a-f|xxd -r -p|plutil -convert xml1 - -o -
Die Datei stand SALTED-SHA512
darin, also nahm ich an, dass es ein SHA512-Hash war.
Aber ich ging zu einigen SHA512-Hash-Generator-Sites und gab mein Passwort ein. Am Ende bekam ich einen anderen Hash als den in der .plist
Datei.
Wie konvertiere ich also das, was sich in der .plist
Datei befindet, in einen tatsächlichen Hash oder genau welche Art von Hash ist in der Datei gespeichert?
macos
el-capitan
password
Fackel-Katze
quelle
quelle
SALTED-SHA512-PBKDF2
(OS X 10.10)!/var/db/shadow/hash
?Antworten:
Passwort-Cracking (gültig ab OS 10.8)
Zuerst möchte ich Ihren Befehl erklären:
Der erste Teil des Befehls liest den Schlüssel ShadowHashData in der Plist
Ergebnis (meist hex):
Der zweite Teil des Befehls
tr -dc 0-9a-f
entfernt alles außer 0-9a-f.Ergebnis (hex):
Der dritte Teil setzt
xxd -r -p
es in eine (fehlerhafte) Binärdatei um:und der letzte Teil
plutil -convert xml1 - -o -
erstellt eine wohlgeformte XML-Liste:Um eine echte Datei zu erhalten, ersetzen Sie diese
-o -
durch-o ~/Desktop/tempuser.plist
Die Liste enthält drei Schlüsselteile : Iterationen , Entropie und Salz .
Iterationen sind nur eine ganze Zahl, aber Entropie und Salt sind Base64-codiert. Um mit ihnen weiterarbeiten zu können, müssen Sie sie dekodieren und xxdieren:
Um salt zu dekodieren, entfernen Sie alle Leerzeichen und neuen Zeilen aus dem Datenteil und verwenden Sie
Mit meinen Daten darüber ist das
mit dem Salz (hex) Ergebnis:
Das gleiche gilt für die Entropie:
mit dem entropie (hex) ergebnis:
Wenn Sie eine Textdatei für hashcat benötigen , um das Kennwort zu knacken, müssen Sie die gefundenen Hashdaten in einer einzigen Zeichenfolge kombinieren:
Mit meinen Beispiel-Hash-Daten ist das:
Speichern Sie diese in einer Datei mit dem Namen hash.txt und verwenden Sie sie in hashcat. Der richtige Brute-Force-Befehl zum Auffinden des Passworts (= mein einfaches Testpasswort, das nur 4 Ziffern enthält) lautet:
Das resultierende Passwort nach 3 Minuten Cracken (in einer VM) ist 1111 .
Nun das Gegenteil: Erstellen von ShadowHashData (gültig ab OS 10.8)
Dies erklärt, warum Sie keinen einfachen SHA512-Hash-Generator verwenden können, um Ihre "Passwort" -Daten zu erstellen. SHA512 ist dennoch wichtig. Der Hintergrund wird hier erklärt: PBKDF2-Key_derivation_process .
Du brauchst:
DK = PBKDF2 erstellen (PRF, Passwort, Salt, c, dkLen)
Um DK ~ den Entropieschlüssel in SALTED-SHA512-PBKDF2 zu erstellen (der einzige Teil in der Zwischenliste, der sich auf Ihr Passwort stützt), verwenden Sie php hash_pbkdf2 :
Im Terminal (PHP ⩾ 5.5 wird benötigt) geben Sie ein:
Die in $ salt verwendete Zeichenfolge ist die hexadezimale (\ x) Darstellung von salt (hex):
0dba6246 ... -> \ x0d \ xba \ x62 \ x46 ...
Da Sie den Hash-Algorithmus definieren oder kennen (er muss für Mac 10.8 und höher sha512 sein), Iterationen (eine Zahl größer als Null und kleiner als 2 ^ 32-1), Salt (Länge 64 Byte hex, aber zufällig!) Und Länge (256 Byte) Sie können eine wohlgeformte Plist-Zwischendatei erstellen, indem Sie alle obigen Befehle umkehren.
Indem Sie Ihren Befehl (besser: jeden der Unterbefehle) vom ersten Schritt an umkehren, können Sie die Daten des Schlüssels ShadowHashData in der ursprünglichen Liste mithilfe der Zwischenliste erstellen.
Und um Ihre Frage endlich zu beantworten: Der Hash-Algorithmus, mit dem das OS X-Passwort (und andere Daten wie das Salt) verarbeitet werden, ist SHA512. Sie können jedoch nicht sagen, dass Ihr Benutzerpasswort als SHA512-Hash gespeichert ist .
Dein Passwort und das Salz werden von sha512 viele Male gegrillt, dann ist das Ergebnis base64'ed und reverse xxd'ed. Zusammen mit dem Salt und den Iterationen ist es wieder xxd'ed und base64'ed.
Ich hoffe, ich habe keinen Schritt vergessen.
quelle
Sie benötigen das Salt Ihres Benutzerkontos auf diesem System. Das ist eine zufällige Zeichenfolge, die Sie erfunden haben, als Sie Ihr Konto erstellt haben (oder vielleicht, als Sie Ihr Passwort zuletzt geändert haben). Sie müssen das Ihrem Passwort hinzufügen, zB:
[das massive Stück von Zahlen unten dann ...] [Ihr Passwort]
Sie sind sich nicht sicher, ob dies auf der Vorder- oder Rückseite angegeben ist: [yourPassword] [salt]? Wer weiß.
Für den Benutzer
USERNAME
können Sie den Hash hier sehen:Dann kommt raus:
Interessanterweise habe ich zwar einige der zufällig aussehenden Zahlenblöcke oben geändert, damit Stack nicht mein Salz erhält (Sie bemerken möglicherweise einige wiederholte zufällige Blöcke, die meine Paste-Arbeit waren!), Aber ich habe die am Ende nicht über die Blöcke geklebt … Es scheint sich am Ende in Nullen aufzulösen, diese 512 SHA-Hashes sind interessant !!!
PS. Sie haben es ein bisschen verschoben ... waren früher wirklich gut versteckt. Ich habe mich verlaufen und konnte meins nicht finden (siehe unten), es ist in irgendeiner bösen Ordnerstruktur von 'Nam!
quelle