[plug] john the ripper

Matt Kemner zombie at penguincare.com.au
Wed Jul 6 21:07:38 WST 2005


On Wed, 6 Jul 2005, quoth W.Kenworthy:

> Google is not a lot of help here ranging from "JtR is a fast cracker" to
> "forever" so I am after "whats a reasonable time"

> 1. how long could I expect it to take until finish?

IF your passwords are reasonably secure then in theory any brute-force
method could take literally millennia (with current processor power)

Just do the math: Say you know you are cracking a password with mixed case
and numbers (no symbols) of at least 8 characters, that means there are
(26+26+10)^8 possible permutations  (218 340 105 584 896)
My aging Dual PIII 800 can check around 100000 combinations/second per
CPU, I expect your Athlon 2500 can do much better than that - hit any key
while john is running and it will tell you the combinations/second it is
achieving, as well as which combinations it is currently trying

Let's say you can do 500 000 combinations per second, that's still
436680211 seconds or more than 5000 years to try them all.

That's the whole point of encryption (or in this case, cryptographic
hashing) - if you use a large enough keysize it is almost impossible to
brute-force, unless you are very very lucky.

> 2. if its an infinite/near infinite time, how long is considered
> adequate?

I'd say if john hasn't cracked it in a week or so, it is unlikely to any
time soon - by that stage it should have cycled through the most
obvious, so you'd have more luck winning the lottery.

The reason many people (blackhats and whitehats) like john, is because
when the password isn't very secure it is VERY fast.

It has (or had when I last used it regularly, might be more by now) 3
modes of operation.  Single, dictionary and incremental.

Back in a previous lifetime when I still ran an ISP I regularly ran john
over the password files to make sure no customer accounts could easily be
cracked.  I would start with single mode (which is by far the quickest,
and took less than a minute to check ~2500 users) which first tries the
most obvious (try the username as the password, then variations of their
real name (from the GECOS field in /etc/passwd) - and then it does
simple leet-speak type substitutions like matt -> m4tt, m477, ma77

Next I would run it in dictionary mode, feeding it a huge dictionary I
built from various sources (including ones containing common passwords)
This would take several minutes.

Then I would run it in incremental mode for a few days.

Also, incremental mode doesn't just start with a, b ... z then aa, ab .. zz,
it has smarts in it to try the most common combinations first which is why
it is so quick to find non dictionary words even in incremental (brute
force) mode.

eg. I once ran it on a password file I obtained from a second-hand machine
I had purchased which hadn't been wiped, tried single and dictionary modes
which found nothing, but then incremental mode found the answer within 2 minutes.

It was a 6 letter non-dictionary word (a trademark - "baygon")

 - Matt




More information about the plug mailing list