experiments with dictionary attacks against password hashes, in Python

I

Irmen de Jong

Hi,

I've been experimenting a little with dictionary attacks against password hashes.

It turned out that Python is plenty fast for this task, if you use precomputed hash
databases. I used a few rather large dictionary files (most of the words of the English
language, and most of the words of the Dutch language including derived forms) for a
total of almost 600,000 precomputed hashes. With that the program can "crack" 10,000
password hashes in under a second on my 3 year old PC.

I've also used a list of 600 'most commonly used' passwords that I gathered from a few
sources. That list is used to generate a couple of variations, such as prefixing them
with a digit, or typing the word in uppercase, etc. I did this to be able to quickly
scan for the most common passwords, but it turned out that using all of the 600,000
precomputed hashes isn't much slower for the experiments that I did.
The variations however increase the hit rate because words like "Jennifer9" are not in a
normal dictionary file. This one however *is* part of the 'most common' list.
So if that is your password, go change it right now ;-)


I thought the code I wrote might interest other people as well, so I share it here:
(It should run on Python 2.6 and up, including Python 3.x.)

Download:
http://www.razorvine.net/download/dictionary_attack/

Or by Subversion:
svn://svn.razorvine.net/Various/PythonStuff/trunk/dictionaryattack


Have fun,
Irmen de Jong
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,755
Messages
2,569,534
Members
45,007
Latest member
obedient dusk

Latest Threads

Top