Wo werden die Passwörter von Mac-Benutzerkonten gespeichert?

Wo werden die Passwörter von Mac-Benutzerkonten gespeichert?

Wie kann ich auf den verschlüsselten Wert eines lokalen Benutzerkontokennworts in OSX zugreifen? Wäre es möglich, es damit abzugleichen oder sogar auf ein anderes Konto zu kopieren?

Antwort1

Die Hashes waren /var/db/shadow/hash/in 10.6 und früher enthalten, sind aber /var/db/dslocal/nodes/Default/users/username.plistin 10.7 und 10.8 gespeichert.

Sie können die Hash-Daten ausdrucken mitDave Grohl( sudo dave -s $USER) oder so ähnlich:

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

Wenn die automatische Anmeldung aktiviert ist, wird das Kennwort des Anmeldeschlüsselbunds zusätzlich /etc/kcpasswordmit XOR-Verschlüsselung gespeichert.

sudo ruby -e 'key = [125, 137, 82, 35, 210, 188, 221, 234, 163, 185, 31]; IO.read("/etc/kcpassword").bytes.each_with_index { |b, i| break if key[i % key.size]==(b); print [b ^ key[i % key.size]].pack("U*") }'

Antwort2

Ich weiß nicht viel darüber, aber soweit ich es herausfinden konnte opensnoop,

logingreift auf den lokalen Verzeichnisdienst zu (möglicherweise im Zusammenhang mit Kerberos-Sachen – vielleicht ist das die zugrunde liegende Implementierung für das lokale Verzeichnis, es liest /Library/Preferences/edu.mit.Kerberos, /etc/krb5.conf, /usr/etc/krb5.confusw.).

dscl, das Befehlszeilenprogramm des Verzeichnisdienstes, zeigt dann cd Local/Default/Users/yourusernamedie readüblichen Dinge an, die mit Unix-Konten zu tun haben, und außerdem: GeneratedUID: 1A5EF9B7-4DB6-4C01-919A-xxxxx(ich kenne die Auswirkungen nicht, deshalb habe ich ein wenig zensiert) – Sie können diese UUID auch über Accounts.prefPanein lesen System Preferences.app.

Das entspricht einem Dateinamen in/private/var/db/shadow/hash/auch zugänglich über login!

Ich schätze, am besten benennen Sie die Dateien mit dem GeneratedUIDNamen um/kopieren sie oder ändern den Verweis im Verzeichnisdienst.

Habe meine gesamte „Recherche“ einbezogen, damit Sie meine Schritte nachvollziehen und widerlegen können.

Ich habe keine Zeit, meine Benutzerkonten zu löschen und wiederherzustellen, also sind Sie jetzt auf sich allein gestellt. Viel Glück.

Kurz zusammengefasst: Öffnen Sie Accounts.prefPane, überprüfen Sie Ihren UUID(klicken Sie mit der rechten Maustaste auf Ihren Benutzer in der Liste) und suchen Sie nach einer Datei mit diesem Namen in /private/var/db/shadow/hash/. Ich weiß nicht, ob es funktioniertüberhaupt. Viel Glück.

verwandte Informationen