OS X 10.9: donde se almacenan los hashes de contraseña

15

Creo que en versiones anteriores de OS X, la contraseña se almacenaba en el archivo / etc / shadow.

Sin embargo, este archivo no parece existir en las versiones posteriores del sistema operativo, específicamente OS X 10.9, que es la primera de las versiones de SO sin nombre de gato.

¿Alguien sabe dónde se almacenan los hashes de contraseña en OS X Mavericks?

usuario4493605
fuente

Respuestas:

19

Comenzando con Lion, OS X introdujo un archivo oculto por usuario que es un diccionario simple que contiene hashes de contraseña y otros GID / UID / kerberos y claves de tipo de directorio abierto.

Los archivos de sombra se almacenan en el sistema de archivos en /var/db/dslocal/nodes/Default/users. Están en formato plist, por lo que deberá utilizar el comando plutil para verlos o utilizar el comando predeterminado para extraer / escribir claves específicas si lo desea. Solo el rootusuario tiene acceso a los archivos.

Para ver el contenido de un archivo de sombra para un usuario:

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

Para obtener el 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 -

Donde <username>en los ejemplos anteriores es el usuario que está buscando el hash. Desea la <data>sección que corresponde a la <key>entropy</key>clave en esa salida de plist.

Para continuar intentando descifrar la contraseña, consulte este tutorial .

Ian C.
fuente
3
Esto no funciona para mí: dice que ShadowHashData no es una propiedad válida en <username> .plist ...
thepiercingarrow
@ MarkWright, ¿qué versión de OS X? Funciona muy bien para mí en 10.11.3. ¿Está utilizando LDAP para las cuentas o es una cuenta local?
Ian C.
Estoy usando 10.9 en modo de usuario único.
thepiercingarrow
¿Qué te sudo defaults read /var/db/dslocal/nodes/Default/users/${USER}.plistmuestra?
Ian C.
@MarkWright me pasó lo mismo osx: 10.10.5 El uso de ese comando devuelve "Domain /var/db/dslocal/nodes/Default/users/${USER}.plist no existe"
o.uinn
1

Quiero agregar a la respuesta aceptada, en caso de que alguien intente almacenar los hashes de contraseña en un servidor OS X en Open Directory. Para usuarios de red (OD) necesita

sudo mkpassdb -dump

que le proporcionará una lista de usuarios y sus respectivas ID de ranura. Copie la ID de ranura completa que comienza con 0x y emita

sudo mkpassdb -dump slot_id_that_you_retrieved

Verá varias entradas de resumen, entre las cuales * cmusaslsecretSMBNT es el hash de contraseña NTLM y * cmusaslsecretDIGEST-MD5 es el hash MD5 normal. Haz lo que quieras, pero me resultó más fácil enviarlos a https://hashkiller.co.uk/ntlm-decrypter.aspx, que es un servicio gratuito de descifrado de hash en línea. Acepta su hash y, si aún no está en su base de datos, comenzará a trabajar en él. Regrese una semana después y debería estar roto. Esto ha sido probado en OS X El Capitan y Mac OS Sierra. Es posible que no vea resúmenes si algunos métodos de autenticación se han deshabilitado explícitamente en su servidor, pero deberían estar allí de forma predeterminada.

Захар Joe
fuente