Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision Next revisionBoth sides next revision | ||
use_john_the_ripper_to_crack_password_hashes [31.01.2021 01:52] – created Pascal Suter | use_john_the_ripper_to_crack_password_hashes [31.01.2021 22:11] – [compile with OpenCL support to run on NVIDIA (and other) GPU's (tested on CentOS)] Pascal Suter | ||
---|---|---|---|
Line 9: | Line 9: | ||
../ | ../ | ||
===== use john with openMP on multiple cores ===== | ===== use john with openMP on multiple cores ===== | ||
+ | export OMP_NUM_THREADS=8 | ||
+ | john ~/ | ||
+ | |||
+ | ===== use john with multiple cores by forking the process ===== | ||
john --fork=8 ~/ | john --fork=8 ~/ | ||
Line 15: | Line 19: | ||
===== compile john with MPI support to run on clusters ===== | ===== compile john with MPI support to run on clusters ===== | ||
+ | ubuntu dependencies | ||
sudo apt install libopenmpi-dev openmpi-bin | sudo apt install libopenmpi-dev openmpi-bin | ||
+ | centos dependencies / preparation: | ||
+ | yum install openmpi-devel openmpi openssl-devel | ||
+ | module load mpi/ | ||
+ | |||
+ | get source and compile: | ||
wget https:// | wget https:// | ||
tar xvf 1.9.0-Jumbo-1.tar.gz | tar xvf 1.9.0-Jumbo-1.tar.gz | ||
Line 26: | Line 35: | ||
to check the progress run | to check the progress run | ||
kill -USR1 $(pidof mpirun) | kill -USR1 $(pidof mpirun) | ||
+ | | ||
+ | ===== compile with OpenCL support to run on NVIDIA (and other) GPU's (tested on CentOS) ===== | ||
+ | download and install cuda if you haven' | ||
+ | wget https:// | ||
+ | sudo sh cuda_11.2.0_460.27.04_linux.run | ||
+ | wget https:// | ||
+ | tar xvf 1.9.0-Jumbo-1.tar.gz | ||
+ | cd john-1.9.0-Jumbo-1/ | ||
+ | ./configure LDFLAGS=-L/ | ||
+ | the summary should show that OpenCL support is now enabled (yes) | ||
+ | make -s clean && make -sj4 | ||
+ | now let's run it :) here is an example where I ran john the ripper on a server with 8x NVIDIA GeForce RTX 2080 Ti: | ||
+ | run/john --format=sha512crypt-opencl -dev=gpu -fork=8 | ||
+ | the '' | ||
+ | run/john --list=formats --format=opencl | ||
+ | to get a list of all crypts that support opencl. if you are lucky, the one you are looking for is in there as well :) | ||
+ | |||
+ | the '' | ||
+ | |||
+ | ===== continue an interrupted session ===== | ||
+ | John saves its status as it's working, so in case it crashes or you have to abort it because you need to work with your pc and don't want the cpu load on it for example, you can always resume the session and continue where John has left off. | ||
+ | |||
+ | BUT.. it is **important** that you specify the '' | ||
+ | |||
+ | so you would start john like this: | ||
+ | john --session: | ||
+ | and then resume the session like so: | ||
+ | john --restore: | ||
+ | also the other commands like for example '' | ||
+ | john --status: | ||
+ | |||
+ | |||
+ | ===== Performance examples ===== | ||
+ | if you press any key during the run, you will get a status showing you c/s (crypts per second). here are a few numbers from the systems i had access to at the moment of writing this article: | ||
+ | ^ CPU / GPU ^ c/s rate ^ method used ^ | ||
+ | | 8-core i7-8809G CPU| 7'500 | OpenMP | | ||
+ | | 128-core (2 socket) AMD ROME 7742| 150' | ||
+ | | 8 x GeForce RTX 2080 Ti | 8x190' | ||
+ | |||
+ | |||
+ |