OS X 10.9: ¿dónde se almacenan los hashes de contraseña?

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 del sistema operativo sin nombre cat.

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

Respuestas (3)

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

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

Para ver el contenido de un archivo shadow 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 -

En <username>los ejemplos anteriores, ¿dónde está el usuario para el 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 .

Esto no me funciona: dice que ShadowHashData no es una propiedad válida en <username>.plist...
@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?
Estoy usando 10.9 en modo de usuario único.
¿Qué sudo defaults read /var/db/dslocal/nodes/Default/users/${USER}.plistte muestra?
@MarkWright me pasó lo mismo osx: 10.10.5 Usar ese comando devuelve "Dominio /var/db/dslocal/nodes/Default/users/${USER}.plist no existe"
sudo plutil -ptodavía parece funcionar en 10.14, incluso con SIP habilitado.

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

sudo mkpassdb -dump

que le dará una lista de usuarios y sus respectivas ID de ranura. Copie la ID de la 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 con ellos 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 craqueo 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 agrietado. 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 desactivado explícitamente en su servidor, pero deberían estar allí de forma predeterminada.

El enlace está roto. También tenga en cuenta que las respuestas de solo enlace sin explicación están mal vistas.