OS X 10.9: Wo werden Passwort-Hashes gespeichert?

15

Ich denke, in früheren Versionen von OS X wurde das Passwort in der Datei / etc / shadow gespeichert.

Trotzdem scheint diese Datei in späteren Versionen des Betriebssystems nicht vorhanden zu sein - insbesondere in OS X 10.9, der ersten der nicht als Cat bezeichneten OS-Versionen.

Weiß jemand, wo die Passwort-Hashes auf OS X Mavericks gespeichert sind?

user4493605
quelle

Antworten:

19

Beginnend mit Lion führte OS X eine Schattendatei pro Benutzer ein , bei der es sich um ein Plist-Wörterbuch handelt, das Kennwort-Hashes und andere GID / UID / Kerberos sowie Schlüssel vom Typ Open Directory enthält.

Die Schattendateien werden im Dateisystem unter gespeichert /var/db/dslocal/nodes/Default/users. Sie sind im Plist-Format, daher müssen Sie sie mit dem Befehl plutil anzeigen oder mit dem Befehl defaults bestimmte Schlüssel extrahieren / schreiben, falls dies gewünscht wird. Nur der rootBenutzer hat Zugriff auf die Dateien.

So zeigen Sie den Inhalt einer Schattendatei für einen Benutzer an:

sudo plutil -p /var/db/dslocal/nodes/Default/users/<username>.plist

Um den Hash zu bekommen:

sudo defaults read /var/db/dslocal/nodes/Default/users/<username>.plist ShadowHashData|tr -dc 0-9a-f|xxd -r -p|plutil -convert xml1 - -o -

Wo <username>in den obigen Beispielen der Benutzer ist, für den Sie den Hash suchen. Sie möchten den <data>Abschnitt, der dem <key>entropy</key>Schlüssel in dieser Plist-Ausgabe entspricht.

Weitere Informationen zum Knacken des Passworts finden Sie in diesem Tutorial .

Ian C.
quelle
3
Dies funktioniert nicht für mich: Es heißt, dass ShadowHashData keine gültige Eigenschaft in <Benutzername> .plist ist ...
thepiercingarrow
@ MarkWright welche OS X Version? Funktioniert hervorragend für mich am 10.11.3. Verwenden Sie LDAP für die Konten oder handelt es sich um ein lokales Konto?
Ian C.
Ich verwende 10.9 im Einzelbenutzermodus.
Thepiercingarrow
Was sudo defaults read /var/db/dslocal/nodes/Default/users/${USER}.plistzeigt sich für Sie?
Ian C.
@MarkWright dasselbe ist mir passiert osx: 10.10.5 Mit diesem Befehl wird "Domain /var/db/dslocal/nodes/Default/users/${USER}.plist existiert nicht" zurückgegeben
o.uinn
1

Ich möchte die akzeptierte Antwort ergänzen, nur für den Fall, dass jemand versucht, die Kennwort-Hashes auf einem OS X-Server in Open Directory zu speichern. Für Netzwerkbenutzer (OD) müssen Sie

sudo mkpassdb -dump

Dadurch erhalten Sie eine Liste der Benutzer und ihrer jeweiligen Steckplatz-IDs. Kopieren Sie die gesamte Steckplatz-ID beginnend mit 0x und geben Sie sie aus

sudo mkpassdb -dump slot_id_that_you_retrieved

Sie sehen mehrere Digest-Einträge, darunter * cmusaslsecretSMBNT ist der NTLM-Passwort-Hash und * cmusaslsecretDIGEST-MD5 ist der reguläre MD5-Hash. Machen Sie mit denen, was Sie wollen, aber ich fand es einfacher, diese an https://hashkiller.co.uk/ntlm-decrypter.aspx zu senden, einem kostenlosen Online-Hash-Cracking-Service. Es akzeptiert Ihren Hash und wenn noch nicht in der Datenbank, wird daran gearbeitet. Kehre eine Woche später zurück und es sollte geknackt sein. Dies wurde unter OS X El Capitan und Mac OS Sierra getestet. Möglicherweise werden Digests nicht angezeigt, wenn einige Authentifizierungsmethoden auf Ihrem Server explizit deaktiviert wurden, sie sollten jedoch standardmäßig vorhanden sein.

Joeахар Joe
quelle