#!/bin/bash set -ue REINSTALL=0 PACKAGES=1 while getopts -- "-:" a ; do case "${a}" in -) case "${OPTARG}" in reinstall) REINSTALL=1 ;; no-packages) PACKAGES=0 ;; *) echo "Unknown long option ${OPTARG}" >/dev/stderr exit 1 ;; esac esac done shift $(($OPTIND-1)) if [ $# -ne 1 ] ; then echo "Usage: ${0} " >/dev/stderr exit 1 fi TOOL=${1} function install_pkgs { if [ ${PACKAGES} -eq 0 ] ; then return 0 fi if [ `id -u` -ne "0" ] ; then sudo apt-get -y install $* || ( echo -n "Unable to install packages, please ensure these " >/dev/stderr echo "are installed, then run with --no-packages." >/dev/stderr echo $* false ) return 0 fi apt-get -y install $* } DESTDIR="${HOME}/tools/${TOOL}" if [ -d ${DESTDIR} ] ; then if [ ${REINSTALL} -eq 1 ] ; then rm -ri ${DESTDIR} else echo "${DESTDIR} exists but not reinstalling." >/dev/stderr exit 1 fi fi case ${TOOL} in john) install_pkgs libssl-dev git build-essential yasm libgmp-dev libpcap-dev \ pkg-config libbz2-dev libopenmpi-dev openmpi-bin libnss3-dev \ libkrb5-dev libgmp-dev jtemp=`mktemp -d` git clone https://github.com/magnumripper/JohnTheRipper.git ${jtemp}/john cd ${jtemp}/john/src ./configure && make -sj2 mkdir -p ${DESTDIR} cp -r ${jtemp}/john/run/* ${DESTDIR} rm -rf ${jtemp} # Persistent files mkdir -p ${HOME}/.john touch ${HOME}/.john/john.pot ln -sf ${HOME}/.john/* ${DESTDIR} ;; wordlists) mkdir -p ${DESTDIR} wget -q -O ${DESTDIR}/rockyou.txt.bz2 \ http://downloads.skullsecurity.org/passwords/rockyou.txt.bz2 bunzip2 ${DESTDIR}/rockyou.txt.bz2 wget -q -O ${DESTDIR}/phpbb.txt.bz2 \ http://downloads.skullsecurity.org/passwords/phpbb.txt.bz2 bunzip2 ${DESTDIR}/phpbb.txt.bz2 wget -q -O ${DESTDIR}/hak5.txt.bz2 \ http://downloads.skullsecurity.org/passwords/hak5.txt.bz2 bunzip2 ${DESTDIR}/hak5.txt.bz2 ;; *) echo "Unknown tool: ${TOOL}" >/dev/stderr exit 1 ;; esac