web-dev-qa-db-fra.com

Comment Hashcat découvre-t-il le SHA Crypy autour d'un mot de passe Linux

Une partie de mon /etc/login.defs Le fichier ressemble à ceci:

ENCRYPT_METHOD SHA512

# Define the number of SHA rounds.
# If not specified, the libc will choose the default number of rounds (5000).
# The values must be inside the 1000-999999999 range.
# If only one of the MIN or MAX values is set, then this value will be used.
# If MIN > MAX, the highest value will be used.
#
# SHA_CRYPT_MIN_ROUNDS 5000

SHA_CRYPT_MAX_ROUNDS 6000

D'après ce que je comprends, c'est que le mot de passe passera à 6000 tours de hachage.

Maintenant, quand j'ai utilisé un outil comme hashcat Comment puis-je dire que le hachage a traversé le nombre de rondes "x".

Je suis capable d'utiliser Hashcat comme si: hashcat -m 1800 -a 0 -o found.txt hash.txt rockyou.txt Et il est toujours capable de le trouver. Est-il capable de comprendre le nombre de tours en soi?

Edit: Je viens de découvrir que la boîte de Linux n'utilisait pas 6000 tours de hachage, bien que je pensais que je l'avais configuré pour utiliser 6000 tours. Au lieu de cela, c'était seulement 5000.

Avec certains Python code, j'ai pu répliquer le cryptage de mot de passe "SHA512" sous Linux:

from passlib.hash import sha512_crypt
sha512_crypt.encrypt("testing123",rounds=6000,salt="6EGwX1iP")

Le hachage résultant est $6$rounds=6000$6EGwX1iP$oMerxGPimb/4ZXcI0Vbt87sNfw07eh7VPzcQwHOls8t3hLYGLQR0KjncrpyAjLTfPC3Fj7jhFoZKeuPRfTbJa/

Bien sûr, cette chaîne présente le nombre de rondes pouvant être transmises à hashcat.

4
user1720897

EDIT: J'ai vu que vous avez trouvé votre réponse, mais je l'ajouterai ici pour l'intérêt de l'exhaustivité. (Et j'ai déjà eu ceci écrit).


Hashcat ne devine pas le nombre de tours et la quantité de tours spécifiée dans votre /etc/login.defs n'est pas correctement appliqué.

J'ai pris un exemple de ma boîte Linux:

$ 6 $ ELIIOT8D $ LXVE7ZXTABNVYI3KGRVGOPQ.I/TQU9CN.G2FGPCJYXOVIBBB1TJDBK7NFKOWO7YST.W8BWNACXQ0876/HZ6L //

C'est la même chose que:

$ 6 $ ronds = 50 & eliiot8d $ lxve7zxtabnvyi3kgrvgopq.i/tqu9cn.g2fgpcjyxovibbb1tjdbk7nfkowo7yst.w8bwnacxq0876/hz6l //

Si la quantité de tours était correctement définie, vous verriez un numéro différent au lieu de 5000 dans le hachage.

Linux

Sur ma boîte, Kali Linux, j'ai pu spécifier le nombre de tours en allant au /etc/pam.d/common-password et trouver la ligne (ligne 25 dans mon cas):

mot de passe [SUCCESS = 1 Par défaut = Ignorer] PAM_UNIX.SO Obscure SHA512

J'ai annexé "tours = 1234" pour cela:

mot de passe [SUCCESS = 1 Par défaut = Ignorer] PAM_UNIX.SO Obscure Rounds SHA512 = 1234

enregistré et créé un utilisateur:

$> adduser test3

Et fini avec cela dans mon /etc/shadow-déposer:

$>tail --lines=1 /etc/shadow

test3: $ 6 $ tours = 1234 $ SZWCXUIH $ YX1QDME1PG7grJ/4RJ8LKWGGMEffo/4RJ8LKWGGMEFFOO9VUCUPAHL3X2SBQZJ8N2A2OOEHPFEKAWDH2O.NGYWBLFZNABFoqLquz21: 16627: 0: 99999: 7 ::::

Hashcat

Vous pouvez spécifier manuellement combien d'itérations hachcat devraient faire en ajoutant des tours supplémentaires = [# d'itérations] après la signature, E.g:

$ 6 $ ronds = 50 & eliiot8d $ lxve7zxtabnvyi3kgrvgopq.i/tqu9cn.g2fgpcjyxovibbb1tjdbk7nfkowo7yst.w8bwnacxq0876/hz6l //

Cela sera toutefois automatiquement appliqué si la quantité de tours! = 5000, en /etc/shadow

3
Mrtn