Password guessing as an attack vector

Over the years we've been taught a strong password must be long and complex to be considered secure. Some of us have taken that notion to heart and always ensure our passwords are strong. But some don't give a second thought to the complexity or length of our password. Password guessing in my view is the oldest hack in the book, and unfortunately some of us are making it too easy for the bad guys. From simple things like password equal to username (I still see this often) to blank passwords or super easy combination's like 'qwerty'. As a system Administrator it is our job to serve and protect. However, despite our best efforts users often give things away too easily. Therefore how do we know our users are doing the right thing and how can we audit poor or weak passwords.

We could purchase a commercial password auditing tool, but in my view that is a waste of money. The open source community has many excellent tools for this job. Two that I personally know on a first name basis are THC-Hydra and Medusa. Both are excellent password guessing tools, which if used correctly can help eliminate weak passwords from your environment.

While Hydra has been ported to Windows, Medusa at this time is Linux only. In fact the author has put out a call to the community. He said, "If anyone can compile Medusa under Cygwin I'll buy you a beer at the next Defcon." ~ so far no takers.

If you want to learn more about each tool check them out here:

Medusa - http://www.foofus.net/~jmk/medusa/medusa.html
THC-Hydra - http://thc.org/thc-hydra/

The coolest part about these tools is the fact they support a huge shopping list of protocols. From Windows LM to RDP, SSH, TELNET, HTTP, VNC, IMAP, POP and many others. While both are similar in function, Medusa is currently my top choice because it supports more protocols, including MS-SQL and has recently been updated to version 2.0. Medusa is fast, and because its available with my favourite distro its my tool of choice.

As a penetration tester, once I let Medusa loose on your network I look for two to three things.

1. Accounts where password is equal to username
2. Accounts where password is blank
3. Accounts where passwords are simple dictionary words

With Medusa, these are all easy, however with option 1, I typically see this with shared accounts, or accounts which are not used very often, typically some obscure low key service. Most often these accounts have regular user status in the domain, and that is exactly what I need. From a nobody to somebody in one step.

Blank passwords are stupid easy, again shared accounts or really old accounts which were created under Windows NT 4 and were migrated from 2000, 2003 to 2008 over the years. I see this often in Manufacturing, where Windows 98 and DOS rules to this day.

Lastly, the real power of Medusa or Hydra for that matter is Dictionary attacks. It can pump through a fairly large dictionary in minutes. And those of you believing a second language is more secure, think again. As long as its a dictionary word (in any language) you're done like dinner (as one of my students used to say).