So yea, I was talking to one of my best-mates on the phone, he appreciated for the articles I put on here, and that too regularly maintaining a blog like this is hard for some people, but I did it. Then when I asked him about some suggestions, like if there’s any way that I can make it better, or just any suggestions on what should be my next article about, he gave me this beginner-friendly topic that others could understand easily. Thanks pal, and let’s get on with — PASSWORD CRACKING!!!
What is Password Cracking?
Password cracking is the process of attempting to gain unauthorized access to restricted systems using common passwords or algorithms that guess passwords. In other words, it’s an art of obtaining the correct password that gives access to a system protected by an authentication method.
Password cracking employs a number of techniques to achieve its goals. The cracking process can involve either comparing stored passwords against word list or use algorithms to generate passwords that match.
Password cracking techniques
There are a number of techniques that can be used to crack passwords. The most commonly used are:
- Dictionary attack — This method involves the use of a wordlist to compare against user passwords.
- Brute force attack — This method is similar to the dictionary attack. Brute force attacks use algorithms that combine alpha-numeric characters and symbols to come up with passwords for the attack.
- Rainbow table attack — This method uses pre-computed hashes. Let’s assume that we have a database which stores passwords as md5 hashes. We can create another database that has md5 hashes of commonly used passwords. We can then compare the password hash we have against the stored hashes in the database. If a match is found, then we have the password.
- Guess — As the name suggests, this method involves guessing. Passwords such as qwerty, password, admin, etc. are commonly used or set as default passwords. If they have not been changed or if the user is careless when selecting passwords, then they can be easily compromised.
- Spidering — Most organizations use passwords that contain company information. This information can be found on company websites, social media such as Facebook, twitter, etc. Spidering gathers information from these sources to come up with word lists. The word list is then used to perform dictionary and brute force attacks.
Password cracking tool
These are software programs that are used to crack user passwords. We already looked at a similar tool in the above example on password strengths.
Note: Not only, tools are available to crack the password, there are sites on the web which can be used to crack password. For example, website www.md5this.com uses a rainbow table to crack passwords. Some of the most commonly used tools are:
John the Ripper
John the Ripper uses the command prompt to crack passwords. This makes it suitable for advanced users who are comfortable working with commands. It uses to wordlist to crack passwords.
Hydra is a parallelized login cracker which supports numerous protocols to attack. It is very fast and flexible, and new modules are easy to add. This tool makes it possible for researchers and security consultants to show how easy it would be to gain unauthorized access to a system remotely.
Hashcat is the world’s fastest and most advanced password recovery utility, supporting five unique modes of attack for over 200 highly-optimized hashing algorithms. hashcat currently supports CPUs, GPUs, and other hardware accelerators on Linux, Windows, and OSX, and has facilities to help enable distributed password cracking.
Cain & Abel
It is used to recover passwords for user accounts, recovery of Microsoft Access passwords; networking sniffing, etc. Unlike John the Ripper, Cain & Abel uses a graphic user interface. It is very common among newbies and script kiddies because of its simplicity of use.
Ophcrack is a cross-platform Windows password cracker that uses rainbow tables to crack passwords. It runs on Windows, Linux and Mac OS. It also has a module for brute force attacks among other features.
I personally prefer john, hashcat and hydra, because these three tools offer stability on almost all platforms, with a nice password cracking algorithm.
Now in future, I will try to dedicate a single article to all these tools, but for now, let’s see if there’s anyway we can take any counter-measures against these types of attacks.
Also let me know if you want to know some top used wordlists to crack these passwords, and I’ll also upload an article on that.
- An organization can use the following methods to reduce the chances of the passwords been cracked
- Avoid short and easily predicable passwords
- Avoid using passwords with predictable patterns such as 11552266.
- Passwords stored in the database must always be encrypted. For md5 encryptions, its better to salt the password hashes before storing them. Salting involves adding some word to the provided password before creating the hash.
- Most registration systems have password strength indicators, organizations must adopt policies that favor high password strength numbers.
On a sidenote, here’s a cheatsheet for some common linux commands, made by PCWDLD: https://www.pcwdld.com/linux-commands-cheat-sheet