A rainbow table attack is a type of dictionary attack in which the passwords in the wordlist have been pre-computed into their corresponding hash values, and then compressed in a highly efficient manner. This makes offline password cracking attacks faster. The cracker does not have to spend time computing the hash of every password it tries. Most operating systems do not store user credentials in cleartext. Instead, they store hashes of the passwords. When a user logs on, the system takes the submitted password and hashes it. It then compares the result to the hash in its credentials file. If there is a match, the user is assumed to have supplied the correct password and is permitted entry.

If you manage to steal the credentials file that contains the users' hashed passwords, you could conduct an offline attack on that file. If your dictionary contained pre-computed hashes instead of plaintext passwords, your password cracker could simply compare the password hashes to the dictionary hashes until a match is found. The crack would be exceptionally fast. The trade-off, however, is that most hashes are considerably larger than the original password. The size of your dictionary could become unwieldy. A rainbow table is a compromise between a plaintext table and a pure hash table. It uses a special reduction function to dramatically reduce the size of the dictionary. For example, 2.5 million hashes could be stored in a text file of 25 entries. For comparison, a rainbow table that is 64 GB in size can calculate over 70 trillion hashes. By contrast, a plaintext dictionary of the same size would contain about 6.5 billion passwords. A pure hash table would contain only about 4 billion hashes. The downside of a rainbow table is that it requires more computational power to use than a pure hash table. This is because it has to perform some calculations from its hash "chains" to produce the values that it does not directly store. However, it is by far the best choice for cracking complex passwords and orders of magnitude more efficient than a plaintext dictionary.

Password crackers that use rainbow tables include:

  • Ophcrack
  • RainbowCrack
  • CAPEC

Note: For more information on rainbow tables, see the following: https://blogs.msdn.microsoft.com/tzink/2012/08/29/how-rainbow-tables-work/ and http://project-rainbowcrack.com/table.htm