Cryptohaze GPU Rainbow Tables
The GPU rainbow table tools are a very high performance implementation of rainbow tables. They are capable of searching quite large password spaces very quickly, and are designed from the ground up to deal with very large table files that do not fit in RAM (100s of GB or larger). The tools will use all available GPUs in the system and are capable of handling multiple hashes at a time.
Contents |
Overview of the tools
There are two sets of tools: Generate tools, and cracking tools. A brief overview of them is provided here, with details linked.
Generate tools and utilities
There are several tools in the generate chain.
- GRTGen: The basic table generation tool that generates table parts to be merged. There are two tools: One for CUDA devices, and one for OpenCL devices.
- GRTAnalyze: Analyzes a table to determine how many bits of hash should be retained for optimum size/performance.
- GRTMerge: Merges separate table parts into large full or perfect tables.
- GRTConvert: Converts a table between formats, or reduces the number of bits stored in the hash to reduce size.
- GRTBulkConvert: Bulk converts tables from V3 tables to V2 tables (useful for distributed generation).
- GRTIndex: Creates indexes for table files to speed searching.
- GRTMakeTestFile: Generates a test file based on a table. Useful for developers.
- GRTVerify: Verifies a table to ensure it is correct.
- GRTSearchTables: Standalone table search utility used for WebTables.
- ShowConfig-OpenCL: Shows the current OpenCL configuration.
Cracking tools
- GRTCrack: Uses the generated rainbow tables to crack passwords. There is one version for CUDA and one for OpenCL.
Quick Cracking Howto
As most people here are more interested in using the generated tables to crack passwords, the crack process will be described here, with the generate process being described in detail on other pages.
Get the tables from somewhere: GRT Table Sources
GRTCrack-CPP -h <hash type> -f <hash file> <table files>
The basic operation involves running GRTCrack, specifying the hash type, specifying the list of hashes to crack, and specifying the table files.
On Linux, this may look like:
./GRTCrack-CPP -h NTLM -f test_hashes/Hashes-NTLM-Full.txt output/NTLM*.grt
Windows will look similar.
You typically have to specify *.grt if you use wildcards, otherwise they will pick up the index files too - these are automatically loaded, and should not be used as table files.