A partire da Lion, esiste un file shadow per utente. Tutti questi sono memorizzati in /var/db/dslocal/nodes/Default/users
directory e sono accessibili solo da root. Ad esempio:
$ ls -lah /var/db/dslocal/nodes/Default/users/
total 296
drwx------ 77 root wheel 2.6K Jul 27 20:30 .
drw------- 12 root wheel 408B Jul 27 20:30 ..
-rw------- 1 root wheel 4.0K Jul 27 20:30 Guest.plist
-rw------- 1 root wheel 260B Jul 27 20:17 _amavisd.plist
-rw------- 1 root wheel 254B Jul 27 20:17 _appleevents.plist
-rw------- 1 root wheel 261B Jul 27 20:17 _appowner.plist
-rw------- 1 root wheel 276B Jul 27 20:17 _appserver.plist
Inoltre, quelli sono file di elenco di proprietà binarie. Il modo più semplice per visualizzarli è usare plist
comando. Ad esempio:
$ plutil -p /var/db/dslocal/nodes/Default/users/root.plist
{
"smb_sid" => [
0 => "XXXX-XXXX"
]
"uid" => [
0 => "0"
]
"passwd" => [
0 => "XXYYXX"
]
}
Mac OS X non usa lo standard /etc/passwd e /etc/shadow. Invece, utilizza un database. Di solito c'era una GUI chiamata NetInfo, ma è stata sostituita con dscl
comando (riga di comando dei servizi di directory).
$ dscl
> read /Local/Default/Users/David Password
Password: ********
Sfortunatamente, questo è quanto posso ottenere con l'utilità. Ha stampato degli asterischi invece della password. Forse c'è un modo per fargli rinunciare all'hash, ma non l'ho trovato.
È un articolo che descrive in dettaglio l'utilizzo di DSCL e il cracking delle password su un Mac.