Rainbow tables is a form of attack method used to crack stored cryptographic hashes commonly used as passwords in various application.
It is similar to brute-force and dictionary attack that it will try to compare the resulting hash with the hash it attempts to crack, except in Rainbow tables, the possible matching hashes are all precomputed before hand, and it uses reduction function to double the lookup speeds at the expense of the storage space (time vs space trade off).
Project Rainbow-Crack offer downloadable binaries (free but not opensource) for GNU / Linux and Microsoft Windows operating system. The application package comes with several tools that can help in generating (rtgen), sorting (rtsort) and cracking (rcrack) sha1,md5 and NTLM hashes.
How to use rtgen, rtsort and rcrack ?
First before starting to crack sha1 hashes, we need to generate rainbow table with rtgen.
rtgen
rtgen sha1 loweralpha-numeric 1 8 0 5000 6553600 0
Usage:
rtgen <hash type> <loweralpha | loweralpha-numeric | numeric | mixalpha-numeric| alpha-numeric> <min length> <max length> <table_index> <chain_len> <chain_num> <part_index>
rtsort
Then we need to use rtsort to sort the rainbow tables generated by rtgen.
rtsort *.rt
rcrack
Finally run rcrack to crack the hashes
rcrack *.rt -l hash1.txt
or
rcrack *.rt -h af8978b1797b72acfff9595a5a2a373ec3d9106d
For more examples to generate and use rainbow tables, please refer to Project Rainbow-Table Example