Openwall GNU/*/Linux - a small security-enhanced Linux distro for servers
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date: Thu, 2 Jan 2014 02:51:31 +0100
From: Frank Dittrich <frank_dittrich@...mail.com>
To: john-dev@...ts.openwall.com
Subject: Strange errors with dynamic formats > dynamic_4999

In my john.local.conf, I added 8 copies of dynamic_1025, naming them
dynamic_2025 - dynamic_9025.
I just changed the format names and the prefixes of the test hashes.

This is expected:

$ ./john --list=subformats |tail
UserFormat = dynamic_2011  type = dynamic_2011: md5($s.md5($p.$s)) (PW >
32 or salt > 23 bytes, sse2)
UserFormat = dynamic_2014  type = dynamic_2014: md5($s.md5($p).$s) (PW >
55 or salt > 11 bytes, sse2)
UserFormat = dynamic_2025  type = dynamic_2025: sha1(md5(md5($pass)))
(first 32 bytes)
UserFormat = dynamic_3025  type = dynamic_3025: sha1(md5(md5($pass)))
(first 32 bytes)
UserFormat = dynamic_4025  type = dynamic_4025: sha1(md5(md5($pass)))
(first 32 bytes)
UserFormat = dynamic_5025  type = dynamic_5025: sha1(md5(md5($pass)))
(first 32 bytes)
UserFormat = dynamic_6025  type = dynamic_6025: sha1(md5(md5($pass)))
(first 32 bytes)
UserFormat = dynamic_7025  type = dynamic_7025: sha1(md5(md5($pass)))
(first 32 bytes)
UserFormat = dynamic_8025  type = dynamic_8025: sha1(md5(md5($pass)))
(first 32 bytes)
UserFormat = dynamic_9025  type = dynamic_9025: sha1(md5(md5($pass)))
(first 32 bytes)


But this isn't:

$ ./john --list=format-details |cut -f 1|grep dynamic_.025
dynamic_1025
dynamic_2025
dynamic_3025
dynamic_4025

 $ for n in 5 6 7 8 9
> do
> ./john --list=format-details --format=dynamic_${n}025 |cut -f 1
> done
dynamic_5025
dynamic_6025
dynamic_7025
dynamic_8025
dynamic_9025

$ for n in 5 6 7 8 9; do ./john --test=0 --format=dynamic_${n}025;
doneTesting: dynamic_5025 [sha1(md5(md5($pass))) (first 32 bytes)
128/128 SSE2 10x4x2]... PASS
Testing: dynamic_6025 [sha1(md5(md5($pass))) (first 32 bytes) 128/128
SSE2 10x4x2]... PASS
Testing: dynamic_7025 [sha1(md5(md5($pass))) (first 32 bytes) 128/128
SSE2 10x4x2]... PASS
Testing: dynamic_8025 [sha1(md5(md5($pass))) (first 32 bytes) 128/128
SSE2 10x4x2]... PASS
Testing: dynamic_9025 [sha1(md5(md5($pass))) (first 32 bytes) 128/128
SSE2 10x4x2]... PASS

Then I renamed one format to dynamic_4999, the next one to 5000, and
repeated the tests.

Apparently, dynamic formats with numbers >= 5000 will be ignored by
almost any command unless specified directly.
The only exception is --list=subformats (or the obsolete --subformat=LIST).


Even
$ ./john --test=0 --format=dynamic
or
$ ./john --test=0 --format=dynamic_*
will skip format names >= dynamic_5000.


Since bash completion for dynamic formats uses --list=subformats,
completion will work (but the list is sorted alphabetically, not by
numbers):

(bleeding-jumbo)run $ ./john --format=dynamic_9[tab][tab]
dynamic_9     dynamic_91    dynamic_94    dynamic_97
dynamic_90    dynamic_92    dynamic_95    dynamic_98
dynamic_9025  dynamic_93    dynamic_96
(bleeding-jumbo)run $ ./john --format=dynamic_9


Frank

Powered by blists - more mailing lists

Your e-mail address:

Powered by Openwall GNU/*/Linux - Powered by OpenVZ