Last active
May 10, 2018 13:54
-
-
Save sprout42/ba60ae479c82632a91e540273b0149b4 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash -ex | |
# These instructions are mostly adapted from here: | |
# http://openwall.info/wiki/john/tutorials/Ubuntu-build-howto | |
# | |
# With some additional build steps from here: | |
# https://github.com/magnumripper/JohnTheRipper/wiki/Fallback-binary-chains | |
# Required stuff | |
sudo apt-get install build-essential libssl-dev | |
# Recommended (extra formats and performance) | |
sudo apt-get install yasm libgmp-dev libpcap-dev libnss3-dev libkrb5-dev pkg-config libbz2-dev zlib1g-dev | |
# If you have an NVIDIA GPU (CUDA and OpenCL support) | |
#sudo apt-get install nvidia-cuda-toolkit nvidia-opencl-dev | |
# If you have an AMD GPU (or want to use CPU as OpenCL device) | |
#sudo apt-get install fglrx-updates-dev | |
# Optional MPI support | |
sudo apt-get install libopenmpi-dev openmpi-bin | |
# Optional REXGEN support (additional cracking modes) | |
sudo apt-get install libopenmpi-dev openmpi-bin | |
sudo apt-get install subversion cmake bison flex | |
mkdir ~/src && cd ~/src | |
git clone https://github.com/teeshop/rexgen.git | |
cd rexgen/src/ | |
mkdir build && cd build | |
cmake .. | |
make && sudo make install | |
cd ~/src | |
git clone https://github.com/magnumripper/JohnTheRipper -b bleeding-jumbo john | |
# This builds the various fallback chains and builds JTR to be installed into the /usr/local/bin directory. | |
# You may need to run the configure command manually at least once to confirm that it has found all necessary | |
# dependencies. | |
cd ~/src/john/src | |
./configure --disable-native-tests --disable-openmp CFLAGS='-O2 -DJOHN_SYSTEMWIDE=1 -DJOHN_SYSTEMWIDE_EXEC="\"/usr/local/bin\""' | |
make -s clean && make -sj8 | |
mv ../run/john ../run/john-sse2-non-omp | |
./configure --disable-native-tests CFLAGS='-O2 -DOMP_FALLBACK -DOMP_FALLBACK_BINARY="\"john-sse2-non-omp\"" -DJOHN_SYSTEMWIDE=1 -DJOHN_SYSTEMWIDE_EXEC="\"/usr/local/bin\""' | |
make -s clean && make -sj8 | |
mv ../run/john ../run/john-sse2 | |
./configure --enable-simd=sse3 --disable-openmp CFLAGS='-O2 -DJOHN_SYSTEMWIDE=1 -DJOHN_SYSTEMWIDE_EXEC="\"/usr/local/bin\""' | |
make -s clean && make -sj8 | |
mv ../run/john ../run/john-sse3-non-omp | |
./configure --enable-simd=sse3 CFLAGS='-O2 -DOMP_FALLBACK -DOMP_FALLBACK_BINARY="\"john-sse3-non-omp\"" -DCPU_FALLBACK -DCPU_FALLBACK_BINARY="\"john-sse2\"" -DJOHN_SYSTEMWIDE=1 -DJOHN_SYSTEMWIDE_EXEC="\"/usr/local/bin\""' | |
make -s clean && make -sj8 | |
mv ../run/john ../run/john-sse3 | |
./configure --enable-simd=ssse3 --disable-openmp CFLAGS='-O2 -DJOHN_SYSTEMWIDE=1 -DJOHN_SYSTEMWIDE_EXEC="\"/usr/local/bin\""' | |
make -s clean && make -sj8 | |
mv ../run/john ../run/john-ssse3-non-omp | |
./configure --enable-simd=ssse3 CFLAGS='-O2 -DOMP_FALLBACK -DOMP_FALLBACK_BINARY="\"john-ssse3-non-omp\"" -DCPU_FALLBACK -DCPU_FALLBACK_BINARY="\"john-sse3\"" -DJOHN_SYSTEMWIDE=1 -DJOHN_SYSTEMWIDE_EXEC="\"/usr/local/bin\""' | |
make -s clean && make -sj8 | |
mv ../run/john ../run/john-ssse3 | |
./configure --enable-simd=sse4.1 --disable-openmp CFLAGS='-O2 -DJOHN_SYSTEMWIDE=1 -DJOHN_SYSTEMWIDE_EXEC="\"/usr/local/bin\""' | |
make -s clean && make -sj8 | |
mv ../run/john ../run/john-sse4.1-non-omp | |
./configure --enable-simd=sse4.1 CFLAGS='-O2 -DOMP_FALLBACK -DOMP_FALLBACK_BINARY="\"john-sse4.1-non-omp\"" -DCPU_FALLBACK -DCPU_FALLBACK_BINARY="\"john-ssse3\"" -DJOHN_SYSTEMWIDE=1 -DJOHN_SYSTEMWIDE_EXEC="\"/usr/local/bin\""' | |
make -s clean && make -sj8 | |
mv ../run/john ../run/john-sse4.1 | |
./configure --enable-simd=sse4.2 --disable-openmp CFLAGS='-O2 -DJOHN_SYSTEMWIDE=1 -DJOHN_SYSTEMWIDE_EXEC="\"/usr/local/bin\""' | |
make -s clean && make -sj8 | |
./configure --enable-simd=sse4.2 CFLAGS='-O2 -DOMP_FALLBACK -DOMP_FALLBACK_BINARY="\"john-sse4.2-non-omp\"" -DCPU_FALLBACK -DCPU_FALLBACK_BINARY="\"john-sse4.1\"" -DJOHN_SYSTEMWIDE=1 -DJOHN_SYSTEMWIDE_EXEC="\"/usr/local/bin\""' | |
make -s clean && make -sj8 | |
mv ../run/john ../run/john-sse4.2 | |
./configure --enable-simd=avx --disable-openmp CFLAGS='-O2 -DJOHN_SYSTEMWIDE=1 -DJOHN_SYSTEMWIDE_EXEC="\"/usr/local/bin\""' | |
make -s clean && make -sj8 | |
./configure --enable-simd=avx CFLAGS='-O2 -DOMP_FALLBACK -DOMP_FALLBACK_BINARY="\"john-avx-non-omp\"" -DCPU_FALLBACK -DCPU_FALLBACK_BINARY="\"john-sse4.2\"" -DJOHN_SYSTEMWIDE=1 -DJOHN_SYSTEMWIDE_EXEC="\"/usr/local/bin\""' | |
make -s clean && make -sj8 | |
mv ../run/john ../run/john-avx | |
./configure --enable-simd=xop --disable-openmp CFLAGS='-O2 -DJOHN_SYSTEMWIDE=1 -DJOHN_SYSTEMWIDE_EXEC="\"/usr/local/bin\""' | |
make -s clean && make -sj8 | |
mv ../run/john ../run/john-xop-non-omp | |
./configure --enable-simd=xop CFLAGS='-O2 -DOMP_FALLBACK -DOMP_FALLBACK_BINARY="\"john-xop-non-omp\"" -DCPU_FALLBACK -DCPU_FALLBACK_BINARY="\"john-avx\"" -DJOHN_SYSTEMWIDE=1 -DJOHN_SYSTEMWIDE_EXEC="\"/usr/local/bin\""' | |
make -s clean && make -sj8 | |
mv ../run/john ../run/john-xop | |
./configure --enable-simd=avx2 --disable-openmp CFLAGS='-O2 -DJOHN_SYSTEMWIDE=1 -DJOHN_SYSTEMWIDE_EXEC="\"/usr/local/bin\""' | |
make -s clean && make -sj8 | |
mv ../run/john ../run/john-non-omp | |
./configure --enable-simd=avx2 CFLAGS='-O2 -DOMP_FALLBACK -DOMP_FALLBACK_BINARY="\"john-non-omp\"" -DCPU_FALLBACK -DCPU_FALLBACK_BINARY="\"john-xop\"" -DJOHN_SYSTEMWIDE=1 -DJOHN_SYSTEMWIDE_EXEC="\"/usr/local/bin\""' | |
make -s clean && make -sj8 && echo All Done | |
cd .. | |
# Executables & scrips | |
sudo find run/ -type f -perm 775 -exec cp {} /usr/local/bin/ \; | |
# Links | |
sudo find run/ -type l -exec cp {} /usr/local/bin/ \; | |
# Configuration files | |
sudo find run/ -type f -perm 664 -exec cp {} /usr/share/john/ \; | |
sudo cp -a run/lib /usr/share/john/ | |
sudo cp -a run/kerberom /usr/share/john/ | |
sudo cp -a run/ztex /usr/share/john/ | |
sudo cp -a run/dns /usr/share/john/ | |
sudo cp /usr/share/john/john.conf /etc/john.conf | |
john --test=0 | |
echo "BUILD SUCCESS\nYou can now remove the ~/src directory containing the build artifacts" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment