Password Cracking with RainbowCrack

From Embedded Lab Vienna for IoT & Security
Jump to navigation Jump to search

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.

Used Passwords
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:

Syntax of the rtgen command

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.

rtsort command

Step 5 - RainbowCrack UI

Opening of the RainbowCrack user interface for password cracking.

Click on the following file to open the UI:

File to open the UI

The UI looks like this:

The UI

Step 6 - Adding the hashed passwords

Now the hashed passwords can be added.

By clicking on "File" -> "Add Hashes...":

Adding the Hashes


Adding the Hashes


Hashes added

Step 7 - Inserting the rainbow table

Now the created rainbow table can be inserted:

Insert the rainbow table

Step 8 - Cracking passwords

Now the tool will try to crack the passwords.

The cracked 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

References