Come fa hashcat a capire SHA CRYPT ROUNDS su una password Linux

4

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 .

    
posta user1720897 11.07.2015 - 15:45
fonte

1 risposta

3

Modifica: ho visto che hai trovato la tua risposta, ma la aggiungerò qui per completezza. (E ho già annotato questo).

Hashcat non indovina il numero di round e la quantità di round specificati in /etc/login.defs non viene applicata correttamente.

Ho preso un esempio dalla mia macchina Linux:

$6$elIIOT8d$lXVE7ZxTaBnvyi3kgrVGOpq.I/tQU9CN.G2FgpcjyxovibRB1TjDbk7NFkOwo7ySt.w8BwnacxQ0876/hz6l//

È lo stesso di:

$6$rounds=5000&elIIOT8d$lXVE7ZxTaBnvyi3kgrVGOpq.I/tQU9CN.G2FgpcjyxovibRB1TjDbk7NFkOwo7ySt.w8BwnacxQ0876/hz6l//

Se la quantità di round è stata impostata correttamente, vedresti un numero diverso invece di 5000 nell'hash.

Linux

Sulla mia scatola che eseguiva Kali Linux, ero in grado di specificare il numero di cicli andando a /etc/pam.d/common-password e trovando la linea (riga 25 nel mio caso):

password [success=1 default=ignore] pam_unix.so obscure sha512

Ho aggiunto "rounds = 1234" ad esso:

password [success=1 default=ignore] pam_unix.so obscure sha512 rounds=1234

salvato e creato un utente:

$> adduser test3

E ho finito con questo nel mio /etc/shadow -file:

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

test3:$6$rounds=1234$SzWcxuIH$YX1QDmE1PG7grJ/4rJ8LkwggmEffoo9vUCuPAhL3x2sBQZJ8n2a2OeHpFEKaWDH2o.NGYwbLFZNabfOQlQuZ21:16627:0:99999:7:::

Hashcat

Puoi specificare manualmente quante iterazioni Hashcat dovrebbe fare aggiungendo round = [# di iterazioni] dopo la firma, ad es.

$6$rounds=5000&elIIOT8d$lXVE7ZxTaBnvyi3kgrVGOpq.I/tQU9CN.G2FgpcjyxovibRB1TjDbk7NFkOwo7ySt.w8BwnacxQ0876/hz6l//

Questo sarà, tuttavia, applicato automaticamente se la quantità di colpi! = 5000, in /etc/shadow

    
risposta data 11.07.2015 - 18:21
fonte

Leggi altre domande sui tag