v0.1.3
GPUCrack 0.1.3
Features
- NTLM rainbow table generation on GPU, with adjustable number of endpoints (mt) and characters used
- Online attack on CPU
- Tables are generated as non-compressed files (one file for start points, one file for endpoints)
Changelog
- v0.1.3 (05/03/2022) -- Added table filtration. Drastically improved file writing speed. User can now specify the cracked passwords' character length when generating tables. Changed function calls. Improved prints and debugs.
- v0.1.2 (28/02/2022) -- Added coverage test on online phase. Improved online phase speed. Changed number of characters to 5 for offline phase in order to test the program on virtually any machine.
- v0.1.1 (21/02/2022) -- Fixed memory leak and stack smashing issue in online phase
- v0.1.0 (20/02/2022) -- Initial release
How to build
-
Download GPUCrack_X.X.X.zip and extract it.
-
Open a terminal in GPUCrack_X.X.X, and run:
cmake .
Note : if you only want to use the online phase, edit
CMakeLists.txt
and only keep this:add_executable(online src/common/online.c)
If it prompts you with this error:
CMake Error at CMakeLists.txt:2 (project):
No CMAKE_CUDA_COMPILER could be found.
Tell CMake where to find the compiler by setting either the environment
variable "CUDACXX" or the CMake cache entry CMAKE_CUDA_COMPILER to the full
path to the compiler, or to the compiler name if it is in the PATH.
Then you need to find where nvcc
is located in your machine. In this example, it is located at /usr/local/cuda/bin/nvcc
Once you've located it, execute this command (replace /usr/local/cuda/bin/nvcc
by the path to your nvcc
) :
cmake -DCMAKE_CUDA_COMPILER:PATH=/usr/local/cuda/bin/nvcc .
- Then:
cmake --build .
How to use
To generate a table (offline attack), execute this command:
./generateTable c mt (startpath) (endpath)
, where:
- c is the passwords' length (in characters);
- mt is the number of endpoints in the table (50'000'000 for example);
- (optional) startpath is the path to the start points file to create;
- (optional) endpath is the path to the end points file to create.
This will create two separate files at the specified paths. These files contain the filtered startpoints and endpoints.
To crack a password (online attack), you can use the files you just generated.
Usage:
./online startpath endpath -p pwd
, where pwd is the password you're looking for;
or ./online startpath endpath -h hash
where hash is the hash of the password you're looking for;
or ./online startpath endpath -c aaa
(you can put anything you want instead of aaa. This will test the coverage of the tables you're using, by trying to crack 1000 random passwords.
startpath and endpath are the path to, respectively, the startpoints file and the endpoints file.
Below are some commands you can use to try the program:
./generateTable 5 50000 testStart.txt testEnd.txt
(note that you can specify any - or no - format for the files. txt is just more handy when opening the files in text editors)
./online testStart.txt testEnd.txt -p aaaaa
--> Will hash the password aaaaa
and then try to crack its hash.
./online testStart.txt testEnd.txt -h 75C06256F58D07A18B239E4CC39A382D
--> Will try to crack the NTLM hash 75C06256F58D07A18B239E4CC39A382D
./online testStart.txt testEnd.txt -c blabla
--> Will try to crack 1000 randomly generated passwords