Una parte del mio file /etc/login.defs
assomiglia a questo:
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
Da quanto ho capito, la password passerà attraverso 6000 round di hash.
Ora, quando ho usato uno strumento come hashcat
come faccio a sapere che l'hash ha attraversato il numero "x" di round.
Sono in grado di usare hashcat in questo modo: hashcat -m 1800 -a 0 -o found.txt hash.txt rockyou.txt
ed è ancora in grado di trovarlo. È in grado di calcolare da solo il numero di round?
Modifica : ho appena scoperto che il box Linux non utilizzava in realtà 6000 giri di hash, anche se pensavo di averlo configurato per utilizzare 6000 round. Invece era solo 5000.
Con un po 'di codice Python, sono stato in grado di replicare la crittografia della password "SHA512" in Linux:
from passlib.hash import sha512_crypt
sha512_crypt.encrypt("testing123",rounds=6000,salt="6EGwX1iP")
L'hash risultante è $6$rounds=6000$6EGwX1iP$oMerxGPimb/4ZXcI0Vbt87sNfw07eh7VPzcQwHOls8t3hLYGLQR0KjncrpyAjLTfPC3Fj7jhFoZKeuPRfTbJa/
Questa stringa ovviamente ha il numero di round che possono essere passati a hashcat
.