Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <a4f72200927388f795a5e4f8baa61adf@smtp.hushmail.com>
Date: Sun, 15 Jul 2012 21:11:01 +0200
From: magnum <john.magnum@...hmail.com>
To: john-dev@...ts.openwall.com
Subject: Re: Another CVS core bug: Does not load bare hashes

On 2012-07-15 16:14, jfoug wrote:
>>> This may be better 'fixed' with a 1 line change in loader.c
>>> 
>>> In the bottom of the !ciphertext block:
>>> 
>>> } *p = 0; *login = no_username; +		fields[1] = *ciphertext; }
>>> 
>>> I am testing now, to be 100% sure this does fix 'everything', but
>>> I believe it will.
>> 
>> By itself, it does not
>> 
>> Still problems in all net*lm* formats (and mschapv2).   Likely a
>> very similar problem.
> 
> With this change in loader.c  (i.e. all of the comments, were code)
> 
> //	if ((options->flags & DB_WORDS) || options->shells->head) { for (i
> = 2; i < 10; i++) fields[i] = ldr_get_field(&line,
> options->field_sep_char); //	} else { //		for (i = 2; i < 4; i++) //
> fields[i] = ldr_get_field(&line, options->field_sep_char); //		for (;
> i < 10; i++) //			fields[i] = "/"; //	}
> 
> Now, the net*lm* formats are working fine.  However, Alex made this
> change, and I am not sure why, so I will not propose cutting out
> these lines, UNTIL he can explain why the change was made.  Prior
> code always filled all 10 items.  Some formats require more than the
> first 4

Thanks! This is obvious once looking around these lines. This is a
memory saver I suppose. I did this:

diff --git a/src/loader.c b/src/loader.c
index db1bca3..a7f94c5 100644
--- a/src/loader.c
+++ b/src/loader.c
@@ -259,6 +259,9 @@ static int ldr_split_line(char **login, char
**ciphertext,
        } else {
                for (i = 2; i < 4; i++)
                        fields[i] = ldr_get_field(&line,
options->field_sep_char);
+               // Next line needed for l0phtcrack (in Jumbo)
+               for (; i < 6; i++)
+                       fields[i] = ldr_get_field(&line,
options->field_sep_char);
                for (; i < 10; i++)
                        fields[i] = "/";
        }


This fixes everything in Test Suite, except raw-md5u - which use bare
hashes. If I do this:

sed -ri 's/^/:/' rawmd5u_raw_tst.in

...the tests passes (but this does not fix the real problem of course).
And like I said, Not even core John cracks bare DES hashes.

magnum

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.