El formato del archivo passwd de John the Ripper con Salt no funciona

3

Estoy probando la fortaleza de la contraseña de prueba en uno de nuestros sitios de comercio electrónico. Estoy usando john the ripper para forzar un archivo de contraseñas. El algoritmo utilizado por PHP es:

$hash = md5($salt . $pass)

No se realiza ninguna otra transformación ni en $ sal ni en el pase, he comprobado manualmente un ejemplo. He encontrado en la documentación que el subformato que acompaña al algoritmo es dynamic_4. El problema es que el formato de archivo passwd como está escrito en la documentación, no parece funcionar, John no puede cargar los hashes, este es el formato que he usado:

// user:$dynamic_4$hash$salt
emi:$dynamic_4$83a3f08cfb2d9d0bac5d1a1619d8b7dd$Z3MkG2FZsaoV9EDCpmSRWvgANQAeXOeN7oadrAugu0rKEvfKqoNj6D9a

He intentado cambiar la sal para el hash pero todavía nada

He probado la siguiente combinación de parámetros:

john --single passwd
john --format=dynamic_4 --single passwd
john --subformat=dynamic_4 --single passwd
john --format=md5 --single passwd
john --format=raw-md5 --single passwd
    
pregunta user2253620 20.09.2013 - 18:22
fuente

1 respuesta

4

He buscado el código fuente de John the Ripper y su sintaxis de usar John The Ripper.

  • En john the ripper hash subformats sales length están limitados.
src/dynamic_preloads.c: 

static DYNAMIC_Setup Setups[] =
{
    { "dynamic_0: md5($p) (raw-md5)",           _Funcs_0, _Preloads_0, _ConstDefault, MGF_NO_FLAG, MGF_KEYS_INPUT },
    { "dynamic_1: md5($p.$s) (joomla)",         _Funcs_1, _Preloads_1, _ConstDefault, MGF_SALTED, MGF_NO_FLAG, -32 },
    { "dynamic_2: md5(md5($p)) (e107)",         _Funcs_2, _Preloads_2, _ConstDefault, MGF_NO_FLAG, MGF_KEYS_INPUT|MGF_SET_INP2LEN32 },
    { "dynamic_3: md5(md5(md5($p)))",           _Funcs_3, _Preloads_3, _ConstDefault, MGF_NO_FLAG, MGF_KEYS_INPUT|MGF_SET_INP2LEN32 },
    { "dynamic_4: md5($s.$p) (OSC)",            _Funcs_4, _Preloads_4, _ConstDefault, MGF_SALTED, MGF_NO_FLAG, -24  },
    { "dynamic_5: md5($s.$p.$s)",               _Funcs_5, _Preloads_5, _ConstDefault, MGF_SALTED, MGF_NO_FLAG, -12, 31, 56  },
    { "dynamic_6: md5(md5($p).$s)",             _Funcs_6, _Preloads_6, _ConstDefault, MGF_SALTED, MGF_KEYS_BASE16_IN1, -23, 55, 80 },
    ...
    ...
    ...

por ejemplo, dynamic_0 es de 32 bytes, dynamic_4 es de 24 bytes, dynamic_5 es de 12 bytes, y ...

Debe modificar el código fuente y volver a compilar JTR para admitir un valor más que defualt para las sales.

  • el campo dynamic_4 no está permitido en el archivo de contraseña.

Simple de romper un hash salado:

sajjad@xxx:~/Downloads/john-1.7.9-jumbo-7/run$ cat pass.txt
admin:d5fedea70cf14c3191fc8e94fe4ca8b9$Y0g7Wx78AdpjIdZd

sajjad@xxx:~/Downloads/john-1.7.9-jumbo-7/run$ ./john -form=dynamic_1 -w=password.lst pass.txt
Loaded 1 password hash (dynamic_1: md5($p.$s)  (joomla)  [128x1 (MD5_Body)])
admin            (admin)
    ...
    ...
    ...

Para mostrar la contraseña dañada, use la opción --show

sajjad@xxx:~/Downloads/john-1.7.9-jumbo-7/run$ ./john --show pass.txt
    
respondido por el Sajjad Pourali 20.09.2013 - 20:14
fuente

Lea otras preguntas en las etiquetas