Password Cracking with RainbowCrack
Summary
This documentation shows that salted passwords are more secure than unsalted passwords. A practical test was performed using the RainbowCrack tool. Simple passwords were used, both unsalted and salted, and then rainbow tables were created to crack the passwords. The test clearly shows that unsalted passwords were cracked, while salted passwords remained secure.
Requirements
- Hashing tools/websites: To generate the hash values
- RainbowCrack: A tool for creating and using rainbow tables. RainbowCrack
Description
Step 1 - Installation
Installing the RainbowCrack tool: Download the RainbowCrack tool from here
After downloading the .zip folder, it must be unpacked. The tool is then ready for use.
Step 2 - Choice of password and password hashing
Selection of the passwords to be cracked and the algorithm to be used to hash them.
For this practical test, the following passwords were used and hashed using the md5 algorithm.
| plain text without salt | hash | plain text with salt | hash |
|---|---|---|---|
| abcde | ab56b4d92b40713acc5af89985d4b786 | abcde1 | 0565a9d4889781545eae12fc99050921 |
| abc | 900150983cd24fb0d6963f7d28e17f72 | abcwxz | 7bc7789b9e7a66c74c7222a8db097cbd |
| abc23 | 3be5ef429769acbb7b9bb73443ea9fee | abc23zyx | da18289e8de951b4a16e3da7ab6e5951 |
| bc23 | 44af58e2ce5327a8f6a846e43085478c | bc23xyz | f4cdbc7a935c6ee7d283963228c3c44a |
Step 3 - Creating rainbow table
The command to create a rainbow table is "rtgen". This stands for "rainbow table generate".
The Syntax for creating the rainbow table:
For this test we create the following rainbow table:
rtgen md5 loweralpha-numeric 1 6 1 2400 100000 0
md5 ... Specifies the hash algorithm to use. In this case, it is the MD5 hashing algorithm.
loweralpha-numeric ... Defines the character set to be used for the passwords.
- loweralpha = Lowercase letters (a-z)
- numeric = Numbers (0-9)
Combined, the set includes all lowercase letters and numbers.
1 ... This is the minimum password length for the generated Rainbow Table.
6 ... This is the maximum password length for the generated Rainbow Table.
1 ... Represents the table index. This is used to distinguish between multiple tables for the same parameters.
2400 ... Specifies the chain length. The chain length determines how many hashes and plaintext combinations will be included in each chain.
100000 ... Indicates the number of chains in the table.
0 ... Used to split a large rainbow table into smaller files.
Step 4 - Sorting the rainbow table
Once the rainbow table has been created, it needs to be sorted so that it can be used correctly.
The command "rtsort ." sorts the rainbow table.
Step 5 - RainbowCrack UI
Opening of the RainbowCrack user interface for password cracking.
Click on the following file to open the UI:
The UI looks like this:
Step 6 - Adding the hashed passwords
Now the hashed passwords can be added.
By clicking on "File" -> "Add Hashes...":
Step 7 - Inserting the rainbow table
Now the created rainbow table can be inserted:
Step 8 - Cracking passwords
Now the tool will try to crack the passwords.
The unsalted ones were cracked, the salted ones remained secret.
Conclusion
This experiment clearly shows how effective rainbow tables are at cracking unsalted passwords, and how adding a salt significantly increases security. Unsalted passwords can be cracked quickly using pre-built rainbow tables, while salted passwords resist these attacks because each password is made unique by the individual salt.
Related
Password Security, Threats and Measures