Using Google To Crack MD5 Passwords
stern writes "A security researcher at Cambridge was trying to figure out the password used by somebody who had hacked his Web site. He tried running a dictionary through the encryption hash function; no dice. Then he pasted the hacker's encrypted password into Google, and voila — there was his answer. Conclusion? Use no password that any other human being has ever used, or is ever likely to use, for any purpose. I think."
No, the conclusion is you should always use salted hashes.
Repeat after me: I will salt all my MD5 passwords.
He could have discovered this if he had used a database complete with names, something I don't think would have been too difficult for him.
This Google search idea is kind of moot if the user uses some very basic password construction such as what I've commented on before. Also, as the blog mentions, this discussion is worthless if WordPress used salting which is related to nonces used in security engineering. I think that stuff has been around for, what about five years now? Wake up WordPress!
My work here is dung.
In Soviet Amerika, MD5 passwords crack you.
The password he searched for was 'Andrew', so it's not too surprising he found it in google. Any non-dictionary password should still be safe.
Most MD5 password hashes, such as those used in *nix, are salted, and hence secure from this sort of vulnerability. That Wordpress uses unsalted MD5 sums to store passwords boggles my mind. It shows that the developers know even less about cryptography than I do. That's scary.
My blog
So the combination is 827ccb0eea8a706c4c34a16891f84e7b. (lifts mask) That's the stupidest combination I've ever heard in my life. That's the kinda thing an idiot would have on his luggage.
Uh, I thought the conclusion (which the article acknowledges near the beginning as a "preclusion") is to salt before you apply your hash function.
As copyright owner of this comment, I authorize everyone to defeat any technological measure which limits access to it.
The password was hunter2?
The grass is always greener on the other side of the light cone.
This goes to show the importance of using the technique of adding salt values to passwords before hashing. Also, your salt value shouldn't be a common word ( or something which would make a common word or phrase in combination with something people are likely to use in a password).
Try decades! The good old days of Unix even had salts (even if they were just two bytes)
XML is like violence. If it doesn't solve the problem, use more.
But if I ever need to run a hash against a password database, I'll remember this lesson and first perform a Google search. Saves a lot of time and CPU cycles.
I am already doing this for telephone calls I cannot place. If it's an institution or a person that is calling because of profession, the chances that the telephone is listed somewhere on a (search engine) accessible web page is *very* large.
Actually an alternative to storing hashes of passwords altogether is Password-authenticated key agreement.
Stealing from wikipedia since this explains it better than I can:
"[a] method to amplify a shared password into a shared key, where the shared key may subsequently be used to provide a zero-knowledge password proof or other functions."
"ensuring that password verification data stolen from a server cannot be used by an attacker to masquerade as the client, unless the attacker first determines the password"
Actually zero knowledge proofs confuse me quite a bit.
5f4dcc3b5aa765d61d8327deb882cf99 is the MD5 hash for 'password'.....
search enough systems and you're bound to see some doosh has used it.
John cracks the hash in 0s and that's even faster than google does.
Do I also get a slashdot story if I crack a SHA1 hash with google?
Damn it found mine... 286755fad04869ca523320acce0dc6a4
I just hate douche bags who can't spell.
You're correct. You have totally invalidated the points I brought up in my post. Good show.
But how is this surprising, I've done that many times, it's basically just a quicker way of searching milw0rm since it's likely that at some point every hash has been seen (and therefore cached) by google
hmm .. slashdoting the milcracker.. *cowers*
:-)
http://milw0rm.com/cracker/insert.php
Also, it is indexed by google
I guess the lesson is to search google first, and if it's not there, submit to the milcracker.
A horse can't be sick, you know, even if he wants to.
If you use letters, numbers and a symbol or two then it's not going to be in any database of MD5 hashes.
I have personally been using Google this way for a while. This is the first thing I do when I encounter a passwd hash during a pentest. This is a technique that works very well especially for hashes produced by random apps that you have no idea what hashing algorithm they use. It works well not because the public passwd hash databases indexed by Google are large (they are not), but because they are very diverse, both in term of number of algorithms (MD5(), MD5(uppercase()), SHA1(), etc) and in terms of number of hash formats (hexadecimal value, decimal value, base64, etc).
And above all, it only takes 2 sec to perform the Google search.
A horse can't be sick, you know, even if he wants to.
- I found this file on my computer and I forgot where it came from.
- I downloaded this file but I forget where I got it. It's too big to email so I would like to send a friend a link to the original file.
- I want to see if anyone has taken this pic from my site and posted it elsewhere.
- This download is taking FOREVER. Is anyone else hosting this exact file?
and many, many more. I had this idea years ago and sent it in to them but haven't heard anything since. I don't want any credit**, just implement it and let me know when it's up and running! And the funny thing is, I'm sure Google is already checksumming every file as part of how they do all their magic. All they have to do is post the data!* and, since collisions are possible, it would provide a nice corpus to study collisions, etc. in the real world.
** this isn't an entirely original idea. Linux distros have been posting checksums for years as a way to let users verify that their downloads were not corrupted; as a bonus, I (and I'm sure some others) have done searches of those values to find sites hosting that particular release.
Dear Slashdot: next time you want to mess with the site, add a rich-text editor for comments.
If you agree so heartily then why the hell did you encrypt your agreement?
Results 1 - 10 of about 101,000 for d41d8cd98f00b204e9800998ecf8427e. (0.04 seconds)
Well, that's obvious: 97b5930495ceb44ee0503b7ea8eb7941
As I write this message, this story has been posted for only about an hour. However, a google search for the hash already throws up this article as the second link. Damn they index the web fast!
Admittedly, both salting and complex passwords increase the size of the database involved. However, there's no reason one couldn't generate those databases as well. In fact, one of the Google results is for an on-line Password hash database. So, all a group of hackers has to do is put the thing online in some manner of distributed storage, and wait for Google to index all the pages for 'em.
Fortunately, the problem grows exponentially with the number of allowable characters. Unfortunately, so does Google's headaches. I suspect Google will take some "don't be evil" measures on this shortly, if only to keep their Data Storage department from needing to give Earth a second moon....
//Information does not want to be free; it wants to breed.
I know of efforts in this regard that date back 3 years or so, although I'm not aware of whether these projects are still online. There are some good discussions about the idea at http://ibneko.livejournal.com/668715.html and http://www.dragoslungu.com/2007/06/22/google-md5-hash-search-engine/. My interest is that I'm attempting to get Google to index such hashes at http://www.nth-dimension.org.uk/utils/ghash.php. In my case I'm actually attempting to get Google to cache my hashes to minimise my storage costs as rainbow tables take a fair bit of disk space to store although the idea hasn't been particularly successful due to Google algorithms :(.
Tim Brown
Am I the only one who thinks that a "security researcher" whose site gets hacked and is about as credible as an accountant who fails an audit?
And for his sake I really hope that he knew about rainbow tables and just decided for some indecipherable reason not to mention that they are far more effective for password cracking than Google searches.
And who submitted this story to Slashdot with the sensational summary about "any password used by anybody, ever" being vulnerable to Google searches? That's an easy enough claim to completely debunk by taking MD5 hashes of several passwords and sampling which ones come back. Let's see:
92259762923b4e79d2073ecb03217462 (hash for 'july2007') - Nothing
6e933f3054f533c63dd59479ca9f4b6f (hash for 'hello_world') - Nothing
2c6c8ab6ba8b9c98a1939450eb4089ed (hash for 'abc123') - Google found this one as an md5 example
6a51f1fe97bdebece7652842a0e2351e (hash for 'pickles') - Nothing
5eaaf94141c371ce96675aa6445003c4 (hash for 'happy') - Nothing
So basically not even common words get picked up by Google, much less "any password used by anybody else, ever".
That's what you think.
Mine beats yours 3:1
My 0.02 cents
Keep in mind that this was a hash of a userid (not a password) that was captured in a google index, and it's highly unlikely that someone will choose a userid on a google-indexed site that just-so-happens to be your 10+ character password that has mixed-case and special characters. I think the same "good password advice" still applies, even in a google-world.
Pshaw!
..Check and Mate.
This is why I all MY passwords are salted hashes that I then re-hash and re-salt. To Taste.
827ccb0eea8a706c4c34a16891f84e7b. That's amazing! I've got the same combination on my luggage! Prepare Spaceball 1 for immediate departure! And change the combination on my luggage!
It's no worse than Subversion's insistence on storing user passwords for any protocol but SSH public keys in a local plaintext file.
Do not *EVER* allow a Subversion system to use the same passwords as the user system, and if you have access to the user's accounts, run a check of their stored Subversion passwords to make sure they didn't use their same password somewhere else as for their local user account.
09F911029D74E35BD84156C5635688C0
But nobody will guess that the search string "jennifer lopez" is my actual password. I am still safe for now.
Obama likes poor people so much, he wants to make more of them.
Google is now shutting down servers and re-routing as they try and halt the spread of the newly-detected worm that tries to do a DOS on google, by making affected machines do a google search with random strings that look like 0cfa9f600839f57e90e5559b8ee54864
:)
But seriously, as fun as it is to look up all your hashed responses on google, I'm going back to por... work
You might also want to check out http://utilitymill.com/utility/Goog_Your_Hash to see if your password is 'safe'.
A horse can't be sick, you know, even if he wants to.
Comment removed based on user account deletion
No, it means that as the attacker, security through obscurity is not only advantageous but should be highly encouraged. It doesn't work when designing security, but it's quite effective in conjunction with other basic protections when used in limited cases for nefarious means. For instance, you know where to find resources on MD5, SHA-1, et cetera but do you know where to find resources about WQEWERSDF (the crappy but effective and thoroughly obfuscated hashing method i just made up)?
Consider that with the fact that the vast majority of everybody, but especially incident responders, sysadmins, et al can barely read strace output, must less reverse my backdoor, regardless of whether i pack it full of fun for the RCE or not.
Well, we're all just having fun. You're the one gathering up "+5 informative" karma...
a rad ass custom mod chip that the user injects into the cerebral cortex and obdulla loongggatta and up down undah. The user then develops Tourettes Syndrome out the ass and has shit for brains now and only has to utter some crazy fucking ass phrase to seed a crazy fucking password in the solid-state gene-erator cuz they've gone fucking goddam crazy over that motherfuckin' chip in their ass and brain.
Crazy fucking luser. Crazy fucking assword. Crazy fuckin' whirled up world.
The above is the 1.0 tourettes pack, silver. Stainless-fucking-steel adds an additional language pack...
Previously: "Linux... Toward the Sunrise..." Now: "Linux... Toward the-- No, now, part of Every Sunrise"
Like GData. That has been around since the summer of 2005.
I suppose about anything gets logged nowadays.
I like to search for a part of my password on my computer every once in a while to see if programs store in plain text.
If my password would be "zxcvbbn.34#$" then I would search for "vbbn".
So for google; you can search for a part of your hash but still be secure.
If you mod this up, your slashdot background will turn into a beautiful sunset!
but can I get some salt with my password? ;)
I laughed long and hard at the 'hunter2' tag. Little things like that are what keeps me coming to /.
You can use the standard HMAC algorithm on top of MD5 or SHA1 to adequately hash a password. It's much better than simply appending or prepending garbage to your cleartext.
PHP5 has a function built-in and I'm sure most other languages have comparable implementations available. It's not fool proof by any stretch, but if you use a randomly generated fixed "key," it at least prevents someone from using Google to discover the cleartext.
Better still: Use a unique value for the account + a randomly generated key. For example:
Key = "c,.rcph203p9h"
UserID = 12
HMAC_KEY = "c,.rcph203p9h::12"
That will make it computationally difficult to crack, as each password must be brute-forced individually.
Search: the hashes [8df045510696cde422acede21a727c1b]
Search: generate an md5 hash [goooogle]
Search: the hashes [8df045510696cde422acede21a727c1b]
Oops.
Bruce Schneier ran the code-base through crypt first and then audited the hash with a single roundhouse kick. He then fixed all the flaws by pile-driving his server.
Salt is nice, but pepper is better.
Parent is funny even if you don't know what d41d8cd98f00b204e9800998ecf8427e is the hash of, but I had to check...
/dev/null
/dev/null
To save you time it is the MD5 hash of an empty file:
md5sum
d41d8cd98f00b204e9800998ecf8427e
... As I read through the replies to this article it occurred to me I should investigate the possibility of purchasing large quantities of metal futures. So I headed over to http://www.metalprices.com/ and realized it was a good time to buy aluminum and tin.
Thanks again!!
Opinion:=TMyOpinion.Create(Me);
OK, so we all agree that we should salt passwords with something. But even without that we should also make the hashing algorithm as slow as possible, perhaps running MD5 recursively 10 times, or using a slower algorithm on itself multiple times, or running different algorithms on the output of others etc. Most of the time this isn't going to have a significant effect on performance of the whole system and it also becomes infeasible to create a rainbow table because each hash will take a lot longer to create.
You don't realize how many developers have no clue what a salted hash is and how it works. I've had discussion with developers who weren't complete morons when it comes to programming that had no fscking idea what I was talking about. They fully knew what a hash was, but it was unconceivable that you could store a salt value next to a hash. They were massively deniyng that it could work, trying to make fun of me "it's impossible, that's not how cryptographic hashes work" etc.
On a related side not you'd be amazed at the number of developer that have no fscking clue about how public key cryptosystems works.
The site http://md5.noisette.ch/ try to reverse MD5 hashes in looking up into multiples other existing databases. It "knows" most of the hashes posted into the comments...