¿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?
fuente
¿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?
Los hashes estaban en /var/db/shadow/hash/
10.6 y anteriores, pero se almacenan /var/db/dslocal/nodes/Default/users/username.plist
en 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/kcpassword
encriptada 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
:login
accede 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.conf
etc.).dscl
, la utilidad de línea de comando del servicio de directorio, luegocd Local/Default/Users/yourusername
,read
revela 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ésAccounts.prefPane
deSystem Preferences.app
.¡Eso coincide con un nombre de archivo en el que
/private/var/db/shadow/hash/
también se accede porlogin
!Supongo que su mejor opción es renombrar / copiar los archivos con el
GeneratedUID
nombre, 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 suUUID
(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.fuente
/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í .