-
Notifications
You must be signed in to change notification settings - Fork 43
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Very poor results - is there a bug or did I do it wrong? #4
Comments
Thanks for trying out and sharing your thoughts. Would be great if you can share the datasets used (your version of rockyou and NT hashes used). If I find the time, I'll investigate the issue. You can send me an encrypted email via maximilian (-dot-) golla -at-/ rub (-dot-) de |
I was able to identify the problem. It is a documentation flaw on our side and related to the technique you generated the alphabet. OMEN expects the alphabet to be sorted by the char frequencies and we forgot to mention that in our ReadMe.md file. I will update the description to make it clear. Sorry. You generated the alphabet like this:
resulting in an alphabet file with the following content:
But the alphabet OMEN expects, looks like this (and it is only 94 not 95 chars, seems some char is not present in our rockyou-training file or we have another bug here):
I will show you how to generate it below. The order in which the characters appear in the file is important (and we forgot to write this in our documentation, sorry for this). In OMEN, we included a utility called In your case, you need to do the following
All the best, P.S.: Please let me know if this fixes your problem, then I will close the issue. P.P.S.: Something helpful for your JTR Markov workflow (automatically extracting the correct level): |
Ah, I suspected it was something silly like that. I did try the alphabetCreator but failed to give it an empty alphabet file so it ended up with an alphabet identical to the perl script. I'll start over from scratch with my testing, thanks! |
Just curious: What is the purpose of the -a option to alphabetCreator? You should probably document it. During my failed attempt (before OP) I did try the alphabetCreator but since an input alphabet was mandatory I gave it a start similar to the perl thing (ASCII order) and it ended up with a build alphabet identical to the input one. |
Well you can use this option to provide a "base" alphabet, so characters you really want to use, besides of what the training corpus is telling you. You can even influence the order. I think for people who are not experimenting with password modeling there is no much use in classical preimage attacks. I think for this, the best option is to limit it to the training corpus by providing an empty file. |
Sorry for lengthy post.
I did some quick tests with this because it looked interesting. I was going to post results to john-users mailing list (and consider implementing it natively in JtR) but results were so poor I suspect something is wrong - a bug, or user error on my side?
I used the rockyou list (with dupes but ASCII only) to train OMEN (full ASCII alphabet) as well as JtR's incremental and markov modes. I ran them against a set of real-world NT hashes scraped from pastebin.
Wow :-( Not only was it way slower, the result was also very poor. The low speed was partly due to pipe overhead but mostly not because of that. And anyway the poor result was even more discouraging. Actually, 82 of those 83 cracks were passwords consisting of just digits.
Similar tests with 1G candidates show same poor results. I can't see what I'm doing wrong here?
Very slow, and again all but one (of the very few) cracks were digits-only. Note that only 104 correct guesses were generated in total over 35 minutes. Compare that to JtR markov's 47 correct guesses per second.
Here's a completely different test. At which point do they find "123456" or "password" which are among the most common RockYou passwords? JtR's markov mode is not tested here since it's not supposed to produce best-early.
So hundreds of millions of candidates were generated but the 4th most common rockyou password wasn't among them. Something's amiss. I did try a different set of test hashes (subset of LinkedIn) but results were equally sad. I also tried using the -s option to enumNG (which would need it to be incorporated into JtR codebase IRL) and it didn't help noticably.
The text was updated successfully, but these errors were encountered: