Threat Level: green Handler on Duty: Tom Webb

SANS ISC: InfoSec Handlers Diary Blog - Those Look Just Like Hashes! InfoSec Handlers Diary Blog


Sign Up for Free!   Forgot Password?
Log In or Sign Up for Free!

Those Look Just Like Hashes!

Published: 2013-12-10
Last Updated: 2013-12-10 04:47:50 UTC
by Rob VandenBrink (Version: 1)
8 comment(s)

Have you ever during a penetration test collected a list of values that look very much like hashes, and thought "I could maybe start cracking those, if I only knew what algorithm was used to calculate those hash values".

I had exactly this happen recently.  In the past I've found any one of the dozens of lists of hash outputs on the net to be handy - Hashcat for instance has a pretty complete list posted ( http://hashcat.net/wiki/doku.php?id=example_hashes ).  But this time I donned my googles and found the handy Hash Identifier python script at https://code.google.com/p/hash-identifier/ .  This tool really saves a lot of work - these days my eyes are too old and my fingers are too big to be counting tiny characters in a hash string with any accuracy.

Hash_ID.py does a nice job of the more commmon hashes.  Of course, if someone has the bad judgement to hash the output of one algorithm with another one (this is a really BAD idea if you are trying to prevent collisions), an identification utility like this will only id the last hash algorithm used.

Did it work for me?  Yes, yes it did!  It nicely identified the hash algorithms used.  With the hashes and the algorithm, I was able to dump the list into OCLHashcat on a VM I've got for this (described here https://isc.sans.edu/forums/diary/Building+Your+Own+GPU+Enabled+Private+Cloud/16505).  And the values did indeed give me a list of passwords, which I was then able to use against several different systems.

The finding of course in this situation was NOT "Nyah Nyah, I got in!", that's NEVER the finding.  What goes in the report is (in a tactful way) "Application XYZ is using a simple unsalted hash algorithm to protect passwords", along with an english-language explanation of why exactly this is a bad idea, worded so that the manager of the coder who owns the XYZ application will understand it.

The end goal of a pentest isn't really to get in.  The goal of a pentest is to explain to your client why fixing security related issues will benefit their business, and to get that explanation in front of the folks who decide which projects get priority.  Breaking in is usually just the most fun way to make your point effectively.

Back to the tool at hand - if you've used a different hash identification utility, let us know using the comment form at the bottom of this page!

===============
Rob VandenBrink
Metafore

8 comment(s)
Diary Archives