¿Cómo descifrar hashes 'salt + SHA256 (salt + password)' con JTR?

3

Tengo un conjunto de hashes de contraseña. Muestra:

9e74437e97ff201ff38416138a22a7f3adfa3b9c10e947481bd94b16eed7df6b6e2806

A partir del código fuente de la aplicación que genera este hash, aprendí que la sal está precedida por los primeros 6 caracteres y el algoritmo general que produce el hash es:

salt + SHA256(salt + password)

Conociendo la contraseña de texto simple para el hash anterior ( helloworld ) pude confirmar mi suposición obtenida del código fuente en la línea de comando de Linux (comando + resultado):

printf 9e7443helloworld | sha256sum
7e97ff201ff38416138a22a7f3adfa3b9c10e947481bd94b16eed7df6b6e2806  -

Ahora, como dije, tengo un conjunto de esos hashes y me gustaría poner a John The Ripper contra ellos y usar el ataque de diccionario. Supongo que se puede hacer usando el indicador --rules y suministrando un archivo de configuración personalizado con reglas personalizadas. Pero no estoy seguro de que este sea el camino correcto y no estoy familiarizado con las reglas de manipulación de JTR.

¿Me puede mostrar el modo de lograr mi objetivo con JTR?

    
pregunta golem 29.06.2015 - 01:59
fuente

2 respuestas

6

por lo que sé, la opción --rules solo le permite definir reglas para la contraseña que el usuario puede usar (foobar, foobar123, f00bar ...).

--format corresponde al formato del hash: hay muchas reglas predefinidas ( enlace ), para que pueda modificar su archivo al formato salt:md5(salt+password) , por ejemplo: 9e7443:7e97ff201ff38416138a22a7f3adfa3b9c10e947481bd94b16eed7df6b6e2806 , y encontrar un formato que procese username:md5(username+password) , por ejemplo.

Otra opción sería usar scripts dinámicos ( enlace ). Este método será más complicado pero también más flexible.

    
respondido por el benard 29.06.2015 - 14:02
fuente
3

La solución fue usar formatos dinámicos predefinidos. Usando el ejemplo de mi pregunta, lo guardé en el hashes.txt en el siguiente formato:

username:7e97ff201ff38416138a22a7f3adfa3b9c10e947481bd94b16eed7df6b6e2806$9e7443

Y luego usó el formato dinámico predefinido:

john --format=dynamic_61 hashes.txt

El comando para enumerar todos los formatos dinámicos con JTR-jumbo:

john --list=subformats
    
respondido por el golem 29.06.2015 - 19:10
fuente

Lea otras preguntas en las etiquetas