¿Dónde se almacenan las contraseñas de las cuentas de usuario de Mac?

¿Dónde se almacenan las contraseñas de las cuentas de usuario de Mac?

¿Cómo puedo acceder al valor cifrado de la contraseña de una cuenta de usuario local en OSX? ¿Sería posible compararlo o incluso copiarlo a otra cuenta?

Respuesta1

Los hashes estaban en /var/db/shadow/hash/10.6 y anteriores, pero están almacenados en /var/db/dslocal/nodes/Default/users/username.plist10.7 y 10.8.

Puede imprimir los datos hash conDave Grohl( sudo dave -s $USER) o algo como esto:

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

Si el inicio de sesión automático está habilitado, la contraseña del llavero de inicio de sesión también se almacena /etc/kcpasswordcifrada con cifrado XOR.

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*") }'

Respuesta2

No sé mucho al respecto, pero por lo que pude deducir usando opensnoop:

loginaccede al servicio de directorio local (posiblemente relacionado con algunas cosas de Kerberos; tal vez esa sea la implementación subyacente para el directorio local, lee /Library/Preferences/edu.mit.Kerberos, /etc/krb5.conf, /usr/etc/krb5.confetc.).

dscl, la utilidad de línea de comandos del servicio de directorio, luego cd Local/Default/Users/yourusername, readrevela las cosas habituales relacionadas con las cuentas de Unixy, además: GeneratedUID: 1A5EF9B7-4DB6-4C01-919A-xxxxx(no conozco las implicaciones, así que lo censuré un poco): también puede leer este UUID a través Accounts.prefPanede System Preferences.app.

Que coincida con un nombre de archivo en/private/var/db/shadow/hash/también accedido por login!

Supongo que lo mejor que puede hacer es cambiar el nombre/copiar los archivos con el GeneratedUIDnombre o cambiar la referencia en el servicio de directorio.

Incluí toda mi "investigación" para permitirle volver sobre mis pasos y permitir la refutación.

No tengo tiempo para tirar a la basura y restaurar mis cuentas de usuario, así que ahora estás solo. Buena suerte.

TLDR: Abra Accounts.prefPane, verifique su UUID(haga clic derecho en su usuario en la lista) y busque un archivo con ese nombre en /private/var/db/shadow/hash/. No se si funcionaen absoluto. Buena suerte.

información relacionada