The ‘Cracken’: The Evolution of Password Cracking
I remember the days when an eight-character password was considered secure. But that’s not the case anymore, so let’s talk a little bit about the history of password cracking, how far we have come and what X-Force Red has built.
The Current State of Password Cracking
First, a little teaser of where we are at today: The image below shows theoretical MD4 hash rates for Microsoft Windows NT LAN Manager (NTLM) with no salting. We have two of these rigs, so we could do 664GH/s of NTLM.
What does that mean? If you have a seven-character password, I can brute-force all possibilities in about a three-minute run. Eight characters, you say? It takes us about 12 hours to brute-force it.
Source: IBM Security
Now let’s talk about where we came from. In the early 2000s, we had John the Ripper for password cracking. John was a great tool for breaking Unix password hashes. You just needed to compile a good list of dictionaries together, and it would plow though the list of password hashes in a few hours, days or weeks, depending on the hashes that you were attempting to break and how many central processing units (CPUs) to you had.
Back then, you were lucky to have a dual or even quad core machine to use for cracking password hashes. Sometimes you would use your own desktop or, if you were lucky enough to get it to cross-compile one of the Sun Sparc servers with four or eight CPUs, you could let your password hashes run for a week or so. It wasn’t fast, and it didn’t have a huge list of passwords or the crazy permutations that we have today, but it mostly worked because very few people deviated from a standard password that looked like it came from the dictionary.
Then came rainbow tables. The concept behind this method is that it’s basically a giant lookup table for password hashes. These took up 500 GB to 2 TB, depending on the hashing algorithm and how complex you wanted the dataset.
Rainbow tables were perfect for breaking LAN manager password hashes because the hash was computed by splitting it into two seven-character password segments, then hashing each side. This means that your 14-character password became two seven-character passwords — a flaw that made password cracking so easy. It could take 20 to 60 minutes to run a rainbow table attack on some systems.
Cracking More Complex Passwords
Then people got wise to password cracking and started disabling LAN manager hashes and using longer passwords. Sometimes, they required numbers or even — gasp — special characters for their passwords.
For LAN manager hashes, rainbow tables worked great. However, when it came time to crack NTLM hashes, which were 16 bytes long, it was a different story. Rainbow tables were only good for short passwords of eight or nine characters. No longer could you split a password into two seven-character passwords — it was all or nothing.
A while back, John the Ripper was forked and made what was known as the MagnumRipper — Jumbo Repo. This fork included experimental hashes as well as support for OpenCL, multithreading, CUDA drivers and more. It was an improvement, but it was hardly a twofold performance factor increase on systems.
New Innovations From DEF CON
Then along came KoreLogic rule sets from the DEF CON 18 Crack Me If You Can contest. These made cracking 10- and 14-character passwords much easier. It took several hours, if not a full day, to run though your word lists and the rules, but if someone was using “Winter2010,” “Monday2010” or “Passw0rd!2012,” there was a high chance of being able to recover it.
At the same time this was going on, a group started developing hashcat/oclHashCat/cudaHashcat. In our next post, we will review our hardware, how we speced it out and how not to burn down your house/closet/data center. I will also show a teardown of one of these cards, and what putting some new thermal grease on one card has done.