¿Cómo puedo acceder al valor cifrado de una contraseña de cuenta de usuario local en osx? ¿Sería posible verificarlo o incluso copiarlo en otra cuenta?
¿Cómo puedo acceder al valor cifrado de una contraseña de cuenta de usuario local en osx? ¿Sería posible verificarlo o incluso copiarlo en otra cuenta?
Respuestas:
Los hashes estaban en /var/db/shadow/hash/10.6 y anteriores, pero se almacenan /var/db/dslocal/nodes/Default/users/username.plisten 10.7 y 10.8.
Puede imprimir los datos hash con DaveGrohl ( sudo dave -s $USER) o algo así:
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/kcpasswordencriptada 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.include?(b); print [b ^ key[i % key.size]].pack("U*") }'
No sé mucho al respecto, pero por lo que pude reunir usando opensnoop:
loginaccede al servicio de directorio local (posiblemente relacionada con un poco de materia Kerberos - tal vez esa es la implementación subyacente para el directorio local, se lee /Library/Preferences/edu.mit.Kerberos, /etc/krb5.conf, /usr/etc/krb5.confetc.).
dscl, la utilidad de línea de comando del servicio de directorio, luego cd Local/Default/Users/yourusername, readrevela las cosas habituales relacionadas con la cuenta de unixy, además de: GeneratedUID: 1A5EF9B7-4DB6-4C01-919A-xxxxx(no sé las implicaciones, así que censuré un poco): también puede leer este UUID a través Accounts.prefPanede System Preferences.app.
¡Eso coincide con un nombre de archivo en el que/private/var/db/shadow/hash/ también se accede por login!
Supongo que su mejor opción es renombrar / 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 refutabilidad.
No tengo tiempo para tirar basura y restaurar mis cuentas de usuario, así que ahora estás solo. Buena suerte.
TLDR : Abra Accounts.prefPane, verifique su UUID(haga clic con el botón derecho en su usuario en la lista) y busque un archivo con ese nombre /private/var/db/shadow/hash/. No sé si funciona en absoluto . Buena suerte.
/private/var/db/shadow/hash/realmente contiene los hashes de contraseña (no como las contraseñas cifradas, no hay forma de restaurarlas directamente). También vea aquí y aquí .