New Online MD5 Hash Database
Gravix writes with a shameless plug for his new site "Sporting over 12 million entries, project GDataOnline is one of the largest non-RainbowTable based MD5 crackers on the internet. The database spans over 7 languages, 35 topics, and contains common mutations to words that include numbers and capitalization. Average crack time for 5 hashes: .04 seconds. No more waiting weeks for your results!" Shameless plug aside, the site still seems worth a closer look.
Does anyone know how to get a hold of a database such as this? As part of our IT auditing I'd like to be able to do a join of our md5-encoded user passwords (no salts or anything) with this to see whose password is insecure... yeah, that's it...
It also seems very limited to dictionary words, there's no attempt at some useful things like IP addresses (I've seen a few BBSes who don't publish IPs, but instead publish hashes).
Linux distros these days use MD5 by default -- but they use it in a way that's not so horribly stupid as to be broken by this attack.
/etc/shadow. A few lines of perl, /usr/share/dict and 30 seconds later and I had the root password, the same password as other more important machines. Naturally I mentioned this to the tutors (aftre some subtle brainfucking)
In an "intro to linux" course I had to take a while back as part of a general engineer course, I noticed that one of the test machines wasn't using
A friend of mine got his account terminated for a manoeuver like this -- he ran crack over an unshadowed /etc/passwd on one of the machines at his school and sent the output to the sysadmin:-)
More often then not people are dumb and easily scared. Every time you do something they don't expect you to do, they might treat you as a criminal, no matter what your intentions. If I'd come across someone else's root password, I'd think twice before telling them. That is, unless I wasn't their boss, or hired by their boss to do this.
BTW, I bet the root password you got was "god", "the plague", or something from the same wavelength:-).
>You all use salted md5 hashing in your applications, don't you?
I was just reviewing some popular browser extensions that create site-specific passwords. Click a widget, enter a keysequence or something like that and they fill in a password that's an MD5 hash of the site name concatenated with a master password from the user.
No salt.
There are probably blackhats out there who have *memorized* the MD5 of "passwordpaypal.com".
it's also VERY worthwhile to read about forcing Windows to store only the NTLM hash and drop the LM hash.
I thought NTLMv2 was MD4, which is still broken according to its inventors?
You jest, but I seem to recall "pepper" being used to describe a related scheme under which the salt is secret and has a relatively small domain (but large enough to make dictionary attacks much harder). The idea was that if you provide the right password, the computer can exhaust the possible pepper values until it gets a match, but the correct value never needs to be stored.
Sound familiar to anyone else? Anyone know if it's used in practice?
Consistency requires you to be as ignorant today as you were a year ago. -Bernard Berenson
Actually I have seen many applications that fail to salt passwords before hashing them; it's depressing. Salt should be long enough to be globally unique when randomly generated. Old-style Unix passwords used a 12-bit salt, which was pathetic; 128 bits would be plenty.
In addition, it's best to iterate the hash many times, which slows down dictionary attacks. See Kelsey, Schneier et al, "Secure Applications of Low-Entropy Keys":
http://www.schneier.com/paper-low-entropy.html
The proofs in that paper are based on the assumption that the hash function is collision free, which of course MD5 isn't; another hash function might be preferable.
Xenu loves you!
Y it's so unsecure because there is this public database of IPs availible so they won't have to try many hosts to find the one with your password.
VPS hosting Guide
but as previously pointed out, with a few minor additions (as to which it depends on whether you prefer salt or pepper :p) to the procedure, this database becomes a minor security concern.
"Nobody ever went broke underestimating the intelligence of the American public." - HL Mencken
Interestingly, do a MD5 hash of 1
The result is c4ca4238a0b923820dcc509a6f75849b
Do a google search for that string.
That results in roughly 2000 hits. That's 2000 people running un-salted hashes...
The Mini Repository - more links
It's kind of strange how the moderation of a post can change its meaning. I was reading the parent post when it was modded "+5 interesting". I thought it was a crock, as everyone knows that since hashes have collisions, they cannot be used for lossless (or practical lossy) compression.
Anyway, I pressed Reload to see if there were any new posts, and stumbled upon the parent again, now moderated "+5 funny". My first thoughts were "what a subtle parody....wait a minute, this looks familiar".
princess
function pepperMatch(password, hash) {
var pepper = ['po', '3g', '37', 'ax'];
var p;
for p in pepper {
if (md5(pepper[p] + password) == hash)
return true;
}
return false;
}
Beyond the obvious downside to this (4 times the CPU time for legitimate matches) the advantage is obviously that the cracker has 4 times the bruteforcing to do. But if your security has been comprimised enough to allow someone to find out this hash then you probably have bigger things to worry about.
Maybe tricks like these will come into their own once people realise just increasing hash length or changing the function isn't going to make them any more secure when users still aren't using 'good' passwords.
If you think about it hashing your passwords in a database is almost an admittance either that 1) you're database will probably be comprimised or 2) you're users shouldn't trust you. I wonder if it's possible to grep the likes of MySQL's storage files for MD5 hashes (thereby bypassing the databases authentication)?
--Including next week's winning lottery numbers, a picture of your face, blue prints to your house, your brain, and a nice little faster-than-light getaway vehicle and the formula for its shocking-pink meteorite-resistant paint.
It's just a matter of finding the right sequences. Or building a device which can find those sequences for you upon request. --I call such a device an, "Infinity Box".
-FL
Am I behind the times in modern security?
AFAIK, for years all *NIX-like systems put their hashes in a root-only readable file (/etc/shadow), and its a prerequisite to either hack root or exploit some rare and obscure local exploit that may dump the contents of the shadow file (core dumps, or whatever).
Now, as far as I am concerned. Any system that has been root compromised, then all user accounts are assumed to be compromised as well. Instead of only wasting time trying to brute force passwords now that you can access the shadow file, you can add a new account for yourself, modify an existing account with the 'passwd' command, trojan an existing binary (not very useful since most everybody checks their system binaries, right???), or do whatever people do when they root a box (usually something really evil like install an IRC bot).
I've never understood fascination around password security, when they are probably the least exploited weakness in computers since WOMPR was broken into with the 'joshua' password.
I've used passphrase protected ssh keys instead of passwords for years. If I had more informed users I would not even allow passworded access via ssh, but that would probably cause me more headaches than its worth. Also, on a side note, does anybody know why the ssh daemon cannot tell if a public key access to the system has been protected with a passphrase? I understand why there are passphraseless keys, but it should be known to the daemon and possible to reject non-protected public keys.