En OS X 10.11: he abierto el .plist
archivo de mi usuario y he buscado dentro del archivo.
Hice esto con el siguiente comando:
sudo defaults read /var/db/dslocal/nodes/Default/users/<username>.plist ShadowHashData|tr -dc 0-9a-f|xxd -r -p|plutil -convert xml1 - -o -
El archivo decía SALTED-SHA512
en él, así que supuse que era un hash SHA512.
Pero, fui a algunos sitios generadores de hash SHA512 y puse mi contraseña. Terminé obteniendo un hash diferente al que estaba en el .plist
archivo.
Entonces, ¿cómo convierto lo que está en el .plist
archivo en un hash real, o exactamente qué tipo de hash está almacenado en el archivo?
macos
el-capitan
password
Gato Flare
fuente
fuente
SALTED-SHA512-PBKDF2
(OS X 10.10)!/var/db/shadow/hash
?Respuestas:
Descifrado de contraseñas (válido en OS 10.8 y posterior)
Primero quiero explicar tu comando:
La primera parte del comando lee la clave ShadowHashData en el plist
Resultado (principalmente hexadecimal):
la segunda parte del comando
tr -dc 0-9a-f
elimina cualquier cosa excepto 0-9a-f.Resultado (hex):
la tercera parte lo
xxd -r -p
revierte a un binario (mal formado):y la última parte
plutil -convert xml1 - -o -
crea un plist xml bien formado:Para obtener un archivo real, reemplácelo
-o -
por-o ~/Desktop/tempuser.plist
El plist contiene tres partes clave : iteraciones , entropía y sal .
iteraciones es solo un número entero, pero la entropía y la sal están codificadas en base64. Para seguir trabajando con ellos, debes decodificarlos y xxd:
Para decodificar sal, elimine todos los espacios y líneas nuevas de la parte de datos y use
Con mis datos anteriores eso es
con el resultado de sal (hex):
Lo mismo para la entropía:
con el resultado de entropía (hexadecimal):
Si necesita un archivo de texto para que hashcat descifre la contraseña, debe combinar los datos hash que ha encontrado en una sola cadena:
Con mi ejemplo de datos hash que es:
Guarde esto en un archivo llamado hash.txt y úselo en hashcat. El comando de fuerza bruta adecuado para encontrar la contraseña (= mi contraseña de prueba simple que solo contiene 4 dígitos) es:
La contraseña resultante después de 3 minutos de descifrado (en una VM) es 1111 .
Ahora lo contrario: crear ShadowHashData (válido en OS 10.8 y más reciente)
Esto aclara por qué no puede usar un simple generador de hash SHA512 para crear sus datos de "contraseña". Sin embargo, SHA512 sigue siendo importante. El fondo se explica aquí: PBKDF2-Key_derivation_process .
Necesitas:
para crear DK = PBKDF2 (PRF, Contraseña, Salt, c, dkLen)
Para crear DK ~ la clave de entropía en SALTED-SHA512-PBKDF2 (la única parte en la lista intermedia que se basa en su contraseña) use php hash_pbkdf2 :
En la Terminal (se necesita PHP ⩾ 5.5) ingrese:
La cadena utilizada en $ salt es la presentación hexadecimal escapada (\ x) de salt (hex):
0dba6246 ... -> \ x0d \ xba \ x62 \ x46 ...
Como puede definir o conocer el algoritmo hash (tiene que ser sha512 para Mac 10.8 y posterior), iteraciones (un número mayor que cero y menor que 2 ^ 32-1), salt (longitud 64 bytes hexadecimal pero aleatorio) y de longitud (256 bytes) puede crear un archivo plist intermedio bien formado, invirtiendo todos los comandos anteriores.
Al invertir su comando (mejor: cada uno de los subcomandos) desde el primer paso, puede crear los datos de la clave ShadowHashData en la lista original usando la lista intermedia.
Y para responder finalmente a su pregunta: el algoritmo hash utilizado para procesar la contraseña de OS X (y otros datos como el salt) es SHA512. Pero no puede decir que su contraseña de usuario se almacena como hash SHA512 .
Su contraseña y la sal son asadas por sha512 muchas veces, luego el resultado es base64'ed e inverso xxd'ed. Junto con la sal y las iteraciones , xxd'ed y base64'ed nuevamente.
Espero no haber olvidado ningún paso.
fuente
Necesitaría la sal de su cuenta de usuario en ese sistema. Esa es una serie aleatoria de caracteres inventados para usted cuando creó su cuenta (o tal vez cuando cambió su contraseña por última vez). Debería agregar eso a su contraseña, por ejemplo:
[esa gran cantidad de números a continuación, entonces ...] [su contraseña]
No estoy seguro si esto se agrega al frente o atrás: [su Contraseña] [sal]? quién sabe.
Para el usuario
USERNAME
, puede ver el hash aquí:Entonces sale:
Curiosamente, aunque he alterado algunos de los bloques de números de aspecto aleatorio anteriores para que Stack no obtenga mi sal (¡puede notar algunos bloques aleatorios repetidos que fueron mi trabajo de pegado!) Pero no pegué sobre los que están al final ... parece disolverse en ceros al final, estos 512 hash SHA interesantes !!!
PD. Lo han movido un poco ... solía estar muy bien escondido. Me perdí y no pude encontrar el mío (ver más abajo), está oculto en una estructura de carpetas malvada de 'Nam!
fuente