DEFCON 17. Hacking 40?000 passwords, or how to explain to your roommate why the electricity bill has increased. Part 1
I welcome all and thank you for making my presentation complete the DEFCON conference this year. I really appreciate it and will try not to disappoint you. My name is Matt Uyr, I am a graduate student at the University of Florida. Before we start talking about hacking passwords, I want to say that I'm working with a very good team, and to name its members right now. This is my supervisor, Professor, Dr. Sidir Eggrvol, who put his hand to my presentation and Professor Breno de Medeiros. I would also like to thank the National Institute of Justice and the National Center for Criminal Research "White Collars" for funding my research.
I really appreciate it, because this help has given my research a bit of legitimacy. Because when I went to the scientific council, that he approved the topic of my research, he began the conversation with the fact that it is devoted to cracking passwords. These words provoked an outraged reaction, so I had to explain that this was necessary in order, for example, to catch and bring to justice the criminals of minors and other criminals of this kind. www.reusablesec.blogspot.com [/b] or a site with my tools and documentation that are freely available on the Internet at www.reusablesec.sites.google.com . Please leave your comments and do not hesitate to say if you think that we are doing something stupid. I really appreciate such comments, because this is the best way to evaluate the effectiveness of our work.
You also do not need to feverishly record or be afraid to skip any of the slides on the screen, since this presentation is available on the conference CD-ROM, in addition, you can download these slides from the Internet. On the disc, I also recorded a few extra tools. Briefly I will tell about the used tools: this is our dictionary, created on the basis of the online version RainbowCrack Tables , several scripts for hacking passwords, scripts for parsing, which we used to analyze password lists and several lists of user passwords that we compiled ourselves.
It is noteworthy that we probably have the largest collection of single-line ASCII encodings of password samples on the Internet. So you can say that my parents can be proud of me. I note that people create passwords in this way, so you can take advantage of this and hack them.
You can say, "Oh, my God, passwords - it sucks! Users are idiots because they create stupid passwords, and in general, we are all doomed! " Yes, I could spend time mocking users because it's fun, but not at all productive. I mean, we know for years that the fire is hot, the water is wet, that the user simply chooses a 1-2-3 password. This is not new. But we, as a security community, should find out what to do about it.
I will not say that I'm an optimist, but I'm not too pessimistic about the future passwords. I mean, we are "stuck" on these asterisks, which need to be filled, and we will use them always, because they are really good.
There are many different factors that allow you to get rid of any "water", leaving only security. Hacking passwords becomes a difficult task, because people begin to use reliable encryption, stronger password hashes and refers to passwords with greater responsibility. I think that is why there is such an interest in cracking passwords. I hope that Windows 7 Finally, he will put an aspen stake in the heart of XP , and we begin to see fewer and fewer uses of the security algorithm. WEP for Wi-Fi networks, despite the fact that it is still widely distributed around. I mean that we should work on the problem of password protection against hacking instead of destroying the existing system.
This approach will actually improve the situation, so I want to focus on what the password cracking session is, what techniques are used and what steps to take to crack the password lists.
I want to focus on two different case studies. First of all, we created a password database for hacking using the data. CISSP - independent certification for information security. We collected a lot of passwords everywhere, but these two sources, phpbb.com and webhostingtalk.com , were the best, because there were very large lists of passwords in the public domain.
So first let's talk about hacking passwords from the list phpbb.com , and then about the results of hacking webhostingtalk.com . I will not arrange an introductory course in CISSP , because you know the language and the terminology. After that I will arrange a short break, and you can ask questions related to research using the program TrueCrypt , and also talk about some password phrases and non-standard passwords. So, let's talk about the basics of password cracking.
There are two different types of passwords and, accordingly, two ways of hacking them, and they are very different from each other. The first is online passwords. From movies you know that you generally can not have access to the site, if you do not know the password. Therefore, you are trying to penetrate there by selecting different usernames and passwords. The main thing in this is that the creators of sites try to protect themselves from hackers with the help of additional functions, for example, limiting the number of attempts to enter authorization data.
The second way is to crack passwords offline, when you download password hashes and hack it on your computer. This is a big problem of computer forensics, so you need to try to crack passwords before the police break into you with a warrant of arrest, knocking out the door with your feet. At the same time, they will remove the hard disk on which your program will be installed for hacking TrueCrypt along with cracked passwords. In addition, hacking passwords offline requires a very powerful computer and a lot of time.
In fact, after an attacker hacked a site and downloaded all the passwords and usernames, it is limited only by the time after which it can be caught.
The question is, why should a hacker crack passwords if he can just get full access to the site through the router. The answer is that people everywhere use the same password, so it's easier for you to access both e-mail, a bank account, and an account PayPal .
We did not do that. Having cracked passwords, we never used them for verification, for logging on to any site or to someone's account. I'm saying this not because I think there are a lot of federal agents in the audience, but because it's really not good.
So, there are three different steps taken when hacking a password. I want to differentiate them, because I will refer to them later. I have problems at each of these three stages.
The first stage concerns the autonomous hacking of passwords. Computer forensics assumes that you already have a hash of the password, in our case, this data was filled with the entire hard drive of the computer. So, the first step that you should do is to try to guess what the user came up with for the password. To do this, you use the first attempt, say password123 . Then you hash it and get a set of letters and digits 52F8A73082B1290 . In most cases, a simple and fast hashing algorithm is used. MD5 . After that, you compare this set with the hash of your user's real password, for example, 82503CA693453D1 . If it matches, you hacked the password. But since 52F8A73082B1290 ≠ 82503CA693453D1 , you try again and use the guess monkey123 . You repeat it again and again until you get bored and you do not quit.
Left: as the knowledge of encryption experts.
"His laptop is encrypted. Let's create a decryptor worth a million dollars and crack it! "
- "It will not work, it's 4096-bit cipher"!
- "Heck! Our criminal plan has failed! "
Right: as it usually happens.
"His laptop is encrypted. Let's call him and we'll beat this five-dollar wrench until he tells us the password "!
- "I agree"!
Let's talk about the "highlights" in the passwords. This information, which is added to the password, to complicate its hacking. It happens that two different people decided to use the same password. In this case, for example, to the password «Defcon» you can add different user names, and in this case, the hashes will be very different from each other.
This is especially important for passwords that are stored on the network. Often as a "highlight" to the password "Microsoft" people add their own username, but in reality it's a bad idea. Because "raisins" also protect against attacks by the method of hash-search. Typically, a hacker simply copies all hashes of passwords at a time, and if he needs to crack the password, he simply looks through the stolen hash, and it happens very quickly. But if you use "raisins", the hacker can not do this until he looks through the hash of each particular user for the presence of "zest".
Suppose that people have a "zest" for each password type "Microsoft" , then the hacker may not want to create a whole table with user names. However, he knows that among them there may be a very popular name "Administrator" , people are used to trusting him, so in this case the hacker can succeed.
Therefore, when creating "raisins" you need to consider such important things:
this is not a secret. Well, if you keep the principle of creating "highlights" for passwords in secret, but first of all you need to ensure the security of the password itself;
users do not need to know this. I do not mean that the user does not need to know that the passwords are stored on the server, I mean that the "highlight" should be unique for each user;
"Zest" will protect if an attacker targets only one user, and not a whole heap of passwords. In this case, it prevents attacks of hash-search.
However, this method does not protect the user from attacks of a different kind, and you still have to think about how to crack the password hash relatively "expensive" for the offender.
And now let's go directly to the issues of hacking passwords.
I'm usually asked what equipment I use when cracking passwords. I have a desktop computer with a dual-core processor with a frequency of 2.4 GHz, 3 GB of RAM and a video card NVidia GeForce 8800GTS , which is already 2 years old. This is not some kind of special machine for hacking passwords. I also use this little bit MacBook . So all I have is 2 computers.
Unfortunately, after a couple of weeks of research, the electricity bill has increased by 75%.
It's hard to talk to a roommate when the coolers of your computers are literally roaring in non-stop mode for the last 2 weeks. However, after I finished the work, the electricity consumption returned to normal.
Now, almost all operations for cracking passwords I spend on a computer in the institute laboratory. Previously, I used the generation of the dictionary RainbowCrack Table . When you hear people talking about you, like you have whole racks of something like Play Station 3 and a whole botnet for hacking passwords, I want to answer: "You know, dude, I have just a laboratory Dell." Therefore, when you are considering the modeling of threats, it should be taken into account that the attackerRedistribution can throw much more resources into this. For example, to hack a site like phpbb.com . This is the site of software developers phpbb . It was hacked again on January 1? 200? and this list was published on the Internet in early February. The attacker has posted a lot of information about password hashes, site user names, e-mail accounts, and a very detailed description of the attack itself.
It was a pretty good "reader", and the list itself contained approximately 259 thousand MD5 hashes of passwords without "raisings" and 83 thousand passwords with zheshichnymi "zest", which were created using the hash algorithm phpbb3 . However, this is a new and rather rare algorithm, so in our studies we hacked only passwords with traditional hashes MD5 . We excluded from consideration passwords with "zest", because their hacking is too time consuming, and we did not really understand this. So we focused on the password list MD5 . So passwords with "zest" are protected much better, and any hacker prefers to deal with something more easy.
But I want to emphasize once again that if you are attacked and your password list is revealed, you should still "cure" it and take the attack as a serious event, because later the attacker can use the result of his theft.
Next, we reviewed the list of passwords for the hacked site webhostingtalk . During one or two-week period, the hacker used online password cracking, trying to crack about 117 thousand accounts. As a result, he managed to extract 28635 passwords, which amounted to 24% of the total. So, analyzing the result, we can say that even as a result of a powerful online attack, a hacker can crack no more than a quarter of all available passwords.
Next, I will give a comparison of the effectiveness of online password cracking. Results are taken from the site http://www.hashkiller.com/ , most of them concern Germany. But Babel Fish does much better - they not only have their own online password cracker forums, but also track the effectiveness of most other cracker communities. According to statistics, the success of online hacking is from 20 to 40% of all passwords available to hackers. There are hacking utilities MD5 , which collect hashes of online passwords from multiple sites. They can be downloaded from this link: http://sourceforge.net/projects/md5-utils/ . Currently, there are 33 sites where these utilities can be used.
I want to warn you that there are serious privacy issues here, because if you think that those to whom you send password hashes will simply keep them for the collection, then you are a very trusting person.
Today there are several popular tools for hacking passwords.
The most popular is John the Ripper (John the Ripper), this free software, and I recommend it first. But the main reason for its popularity, over which it outstrips even paid programs, is the availability of open source code. If you want to crack passwords, this program will cope with everything you want. My favorite option is in JtR is STDIN . If you remember the introductory slides, in this case I do not need to perform stages 1 and ? I can write my own "guesswork" program, and then send the results JtR . And he deciphers the hashes and tries to crack the passwords. So if you are thinking about the way to generate "guesses", that is, user passwords, you can compose code and use this program, it is extremely powerful.
In the beginning, I acted like an idiot, although it is hard to believe. I used the old version of this program without checking for updates, and I did not know that it can not cope with a large list of passwords, it takes forever. In January, the creators released a patch, but I found out about it too late.
So I tried to switch from JtR for the program Cain & Able (Cain and Abel), for which I am still a little ashamed. Because JtR is constantly updated, and you can subscribe to the newsletter updates, and if it were not for my stupidity, then everything would be just perfect.
That's how much time I spent on hacking passwords, despite the problems with JtR :
4 hours - 38% of passwords were hacked;
1 week - 62% of passwords were hacked;
1 month and 1 week - 89%;
98% of passwords have been hacked to date, 95% of them with a unique hash MD5 .
The figures are different, because a lot of people use the same passwords. In fact, this is very bad. But I'm not the only one who achieved success in this. I used the contacts DefCon , to communicate on this topic with different people. For example, Brandon Enright hacked 95% of passwords with a hash MD5 , and he hacked 2525 passwords with which I failed, and I cracked 2677 passwords that he could not crack. For reasons of confidentiality, we exchanged with it not lists of passwords in the form of plain text, but a digital form of data.
I received a letter from another person who reports that his result reached 97%, and I believe him. Because we are still learning to crack passwords, and I'm not the coolest hacker, but just a student who is studying this business. Probably, there are better ways of hacking.
We managed to crack enough passwords with "zest" not because I had a lot of money or I'm an elite hacker, but because they were really weak, and the average length of these passwords was only 7.2 symbols. Only 6% of these passwords contained capital letters and only 1% - special characters, and 51% contained only lowercase letters. This is without taking into account 5% of passwords that we could not crack.
I want to note that we were limited in resources. We could not use attack type everywhere. brute-force , because they were limited in time. So we had to choose between different attack strategies, because we simply could not try them all. We had to first create in our heads the idea of how the user created his password, and depending on this, choose the attack method. Therefore, we tried to crack not all the passwords, but only the most common ones.
I want to say that it is enough for a person to create a really reliable password, just give it a bit of uniqueness. Do it the way others do not, and then the hacker will find it difficult to crack your password. Usually all you need to do is create a password so long that it is difficult to crack using brute-force . But it is difficult to make everyone be unique, this feature is not built into the person by default. It is through this that we can crack passwords.
I want to tell you about this type of attack on user passwords, like Dictionary Attack , or an attack using a dictionary. When I talk about "dictionary attack", I not only mean entering the words that are in the dictionary, but also using word-formation rules, such as adding 2 numbers at the end of words or writing a word with a capital letter.
There are two main reasons why Dictionary Attack can fail. The first is "illiteracy", when you just do not write the word as it appears in the dictionary. For example, you write zibra123 , with a word like zibra , there is no dictionary. The second is when you do not use the rules of word formation when writing complex words, that is, you do not just add the numbers 123 to the end of the password. So if you want to create a really strong password, you should not use the words that are available in the dictionary.
If you want to use many wordforms, you should reduce the size of the input dictionary, and vice versa, the fewer rules of word-building you use, the more a dictionary can be.
People tend to create an excessive collection of input-dictionaries. This leads to the fact that they become vulnerable to attacks brute-force . I call this the syndrome of "crazy koshatnitsy", which gets 50-60 cats in the house, and they cobble everything around. Therefore, using input dictionaries when creating passwords, think about how voluminous they should be, and do not "inflate" excessively vocabulary. Think about what it's better to use for security - 1 dictionary or 40.
Conference DEFCON 17. Hacking 40?000 passwords, or how to explain to a roommate why the electricity bill has increased. Part 2
Thank you for staying with us. Do you like our articles? Want to see more interesting materials? Support us by placing an order or by recommending to friends, 30% discount for Hubr users for the unique analogue entry-level servers, which we invented for you: The whole truth about VPS (KVM) E5-2650 v4 (6 Cores) 10GB DDR???GB SSD 1Gbps from $ 20 or how to divide the server correctly? (options are available with RAID1 and RAID1? up to 24 cores and up to 40GB DDR4).
VPS (KVM) E5-2650 v4 (6 Cores) 10GB DDR???GB SSD 1Gbps until December Free of charge when paying for a period of six months, you can order here .
Dell R730xd is 2 times cheaper? Only we have 2 x Intel Dodeca-Core Xeon E5-2650v???GB DDR4 6x480GB SSD 1Gbps 100 TV from $ 249 in the Netherlands and the USA! Read about that How to build a building infrastructure. class with the use of servers Dell R730xd E5-2650 v4 cost 9000 euros for a penny?
It may be interesting