¿Cómo ha averiguado hashcat los SHA CRYPT ROUNDS en una contraseña de Linux?

4

Una parte de mi archivo /etc/login.defs se ve así:

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

Por lo que entiendo de esto, es que la contraseña pasará a través de 6000 rondas de hash.

Ahora, cuando usé una herramienta como hashcat , ¿cómo le digo que el hash ha pasado por el número de rondas 'x'?

Soy capaz de usar hashcat así: hashcat -m 1800 -a 0 -o found.txt hash.txt rockyou.txt y todavía puedo encontrarlo. ¿Es capaz de calcular el número de rondas por sí mismo?

Editar : acabo de descubrir que la caja de Linux en realidad no estaba usando 6000 rondas de hash, aunque pensé que la había configurado para usar 6000 rondas. En su lugar, fue sólo 5000.

Con algunos códigos Python, pude replicar el cifrado de contraseña "SHA512" en Linux:

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

El hash resultante es $6$rounds=6000$6EGwX1iP$oMerxGPimb/4ZXcI0Vbt87sNfw07eh7VPzcQwHOls8t3hLYGLQR0KjncrpyAjLTfPC3Fj7jhFoZKeuPRfTbJa/

Esta cadena, por supuesto, tiene el número de rondas que se pueden pasar a hashcat .

    
pregunta user1720897 11.07.2015 - 15:45
fuente

1 respuesta

3

Edit: vi que encontraste tu respuesta, pero la agregaré aquí para completarla. (Y ya lo tenía escrito).

Hashcat no adivina el número de rondas y la cantidad de rondas especificadas en su /etc/login.defs no se aplica correctamente.

Tomé un ejemplo de mi caja de Linux:

  

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

Esto es lo mismo que:

  

$ 6 $ rounds = 5000 & elIIOT8d $ lXVE7ZxTaBnvyi3kgrVGOpq.I / tQU9CN.G2Fgpcjyxovq8pk1TjDbk7NFkOwo7ySt.w8Bwnacxpk8 / 1

Si la cantidad de rondas se estableció correctamente, verías un número diferente en lugar de 5000 en el hash.

Linux

En mi casilla que ejecuta Kali Linux pude especificar el número de rondas yendo al /etc/pam.d/common-password y encontrando la línea (línea 25 en mi caso):

  

contraseña [éxito = 1 predeterminado = ignorar] pam_unix.so obscure sha512

Le agregué "rounds = 1234":

  

contraseña [éxito = 1 predeterminado = ignorar] pam_unix.so oculta sha512 rounds = 1234

guardó y creó un usuario:

$> adduser test3

Y terminé con esto en mi /etc/shadow -file:

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

  

test3: $ 6 $ rounds = 1234 $ SzWcxuIH $ YX1QDmE1PG7grJ / 4rJ8Lkwggmm0Effoo_pañol

Hashcat

Puede especificar manualmente cuántas iteraciones debe hacer Hashcat agregando rondas = [# de iteraciones] después de la firma, por ejemplo:

  

$ 6 $ rounds = 5000 & elIIOT8d $ lXVE7ZxTaBnvyi3kgrVGOpq.I / tQU9CN.G2Fgpcjyxovq8pk1TjDbk7NFkOwo7ySt.w8Bwnacxpk8 / 1

Sin embargo, esto se aplicará automáticamente si la cantidad de rondas! = 5000, en /etc/shadow

    
respondido por el Mrtn 11.07.2015 - 18:21
fuente

Lea otras preguntas en las etiquetas