OS X 10.9: di mana hash kata sandi disimpan

13

Saya pikir pada versi OS X sebelumnya, kata sandi disimpan dalam file / etc / shadow.

Namun demikian, file ini tampaknya tidak ada di versi sistem operasi yang lebih baru - khususnya OS X 10.9 yang merupakan yang pertama dari rilis OS tanpa nama kucing.

Adakah yang tahu di mana hash kata sandi disimpan di OS X Mavericks?

pengguna4493605
sumber

Jawaban:

17

Dimulai dengan Lion, OS X memperkenalkan file bayangan per pengguna yang merupakan kamus plist yang berisi hash kata sandi dan GID / UID / kerberos lainnya dan kunci jenis direktori terbuka.

File bayangan disimpan di sistem file di /var/db/dslocal/nodes/Default/users. Mereka berada dalam format plist sehingga Anda harus menggunakan perintah plutil untuk melihatnya atau menggunakan perintah default untuk mengekstrak / menulis kunci tertentu jika diinginkan. Hanya rootpengguna yang memiliki akses ke file.

Untuk melihat konten file bayangan untuk pengguna:

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

Untuk mendapatkan hash:

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

Di mana <username>dalam contoh di atas adalah pengguna yang Anda cari hash. Anda ingin <data>bagian yang sesuai dengan <key>entropy</key>kunci dalam output plist itu.

Untuk melanjutkan mencoba dan memecahkan kata sandi, lihat tutorial ini .

Ian C.
sumber
2
Ini tidak berfungsi untuk saya: ini mengatakan bahwa ShadowHashData bukan properti yang valid di <username>
.plist
@MarkWright versi OS X apa? Bekerja sangat baik untuk saya pada 10.11.3. Apakah Anda menggunakan LDAP untuk akun atau akun lokal?
Ian C.
Saya menggunakan 10.9 pada mode pengguna tunggal.
thepiercingarrow
Apa yang sudo defaults read /var/db/dslocal/nodes/Default/users/${USER}.plistditunjukkan untuk Anda?
Ian C.
@MarkWright sama terjadi pada saya osx: 10.10.5 Menggunakan perintah itu mengembalikan "Domain /var/db/dslocal/nodes/Default/users/${USER}.plist tidak ada"
o.uinn
1

Saya ingin menambahkan jawaban yang diterima, kalau-kalau seseorang mencoba untuk mendapatkan hash kata sandi yang tersimpan di OS X Server di Open Directory. Untuk pengguna jaringan (OD) Anda perlu

sudo mkpassdb -dump

yang akan memberi Anda daftar pengguna dan ID slot masing-masing. Salin seluruh slot ID yang dimulai dengan 0x dan terbitkan

sudo mkpassdb -dump slot_id_that_you_retrieved

Anda akan melihat beberapa entri intisari, di antaranya * cmusaslsecretSMBNT adalah hash kata sandi NTLM dan * cmusaslsecretDIGEST-MD5 adalah hash MD5 biasa. Lakukan dengan yang Anda inginkan, tetapi saya merasa lebih mudah untuk mengirimkannya ke https://hashkiller.co.uk/ntlm-decrypter.aspx yang merupakan layanan cracking hash online gratis. Ia menerima hash Anda dan jika belum di basis data mereka akan mulai mengerjakannya. Kembali seminggu kemudian dan itu harus retak. Ini telah diuji pada OS X El Capitan dan Mac OS Sierra. Anda mungkin tidak melihat intisari jika beberapa metode auth telah secara eksplisit dinonaktifkan di server Anda tetapi mereka seharusnya ada di sana secara default.

Joeахар Joe
sumber