mirror of
https://github.com/Matir/skel.git
synced 2026-05-26 05:29:09 -07:00
196 lines
5.4 KiB
Bash
Executable File
196 lines
5.4 KiB
Bash
Executable File
#!/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} <tool>" >/dev/stderr
|
|
exit 1
|
|
fi
|
|
TOOL=${1}
|
|
|
|
function die {
|
|
echo $* >/dev/stderr
|
|
return 1
|
|
}
|
|
|
|
function install_pkgs {
|
|
if [ ${PACKAGES} -eq 0 ] ; then
|
|
return 0
|
|
fi
|
|
# TODO: check if packages are already installed
|
|
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 $*
|
|
}
|
|
|
|
function download {
|
|
SRC=${1}
|
|
DST=${2}
|
|
echo -n "Downloading ${SRC} to ${DST}..." >&2
|
|
# TODO: consider curl instead?
|
|
wget --no-server-response -q -O ${DST} --content-disposition ${SRC}
|
|
echo " done." >&2
|
|
}
|
|
|
|
function check_sudo {
|
|
sudo -l >/dev/null
|
|
}
|
|
|
|
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}
|
|
download \
|
|
http://downloads.skullsecurity.org/passwords/rockyou.txt.bz2 \
|
|
${DESTDIR}/rockyou.txt.bz2
|
|
bunzip2 ${DESTDIR}/rockyou.txt.bz2
|
|
download \
|
|
http://downloads.skullsecurity.org/passwords/phpbb.txt.bz2 \
|
|
${DESTDIR}/phpbb.txt.bz2
|
|
bunzip2 ${DESTDIR}/phpbb.txt.bz2
|
|
download \
|
|
http://downloads.skullsecurity.org/passwords/hak5.txt.bz2 \
|
|
${DESTDIR}/hak5.txt.bz2
|
|
bunzip2 ${DESTDIR}/hak5.txt.bz2
|
|
;;
|
|
gcloud)
|
|
mkdir -p ${DESTDIR}
|
|
gtemp=`mktemp -d`
|
|
gbase="https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/"
|
|
# TODO: find a way to make this version independent
|
|
gsdk="google-cloud-sdk-142.0.0-linux-x86_64.tar.gz"
|
|
download "${gbase}${gsdk}" /tmp/gcloud.tar.gz
|
|
tar zxf /tmp/gcloud.tar.gz --strip-components=1 -C ${DESTDIR}
|
|
rm /tmp/gcloud.tar.gz
|
|
;;
|
|
android-sdk)
|
|
# TODO: find a way to make this version independent
|
|
asdk="https://dl.google.com/android/repository/tools_r25.2.3-linux.zip"
|
|
download ${asdk} /tmp/android-tools.zip
|
|
unzip -d ${DESTDIR} /tmp/android-tools.zip
|
|
rm /tmp/android-tools.zip
|
|
# Install components
|
|
${DESTDIR}/tools/bin/sdkmanager "emulator" "platform-tools"
|
|
;;
|
|
burp)
|
|
# Install latest burp free
|
|
mkdir -p ${DESTDIR}
|
|
download \
|
|
https://portswigger.net/DownloadUpdate.ashx\?Product\=Free \
|
|
${DESTDIR}/burp-free.jar
|
|
if [ $? -ne 0 ] ; then
|
|
echo "Download failed." >&2
|
|
exit 1
|
|
fi
|
|
if [ -x /usr/bin/jarwrapper ] ; then
|
|
# We have binfmt support for jar, so add to bin
|
|
chmod +x ${DESTDIR}/*.jar
|
|
ln -sf ${DESTDIR}/*.jar ${HOME}/bin/burp
|
|
fi
|
|
;;
|
|
mitmproxy)
|
|
# Find a better way to get the latest
|
|
src="https://github.com/mitmproxy/mitmproxy/releases/download/v2.0.1/mitmproxy-2.0.1-linux.tar.gz"
|
|
download ${src} /tmp/mitmproxy.tar.gz
|
|
mkdir -p ${DESTDIR}
|
|
tar zx -C ${DESTDIR} -f /tmp/mitmproxy.tar.gz
|
|
rm /tmp/mitmproxy.tar.gz
|
|
;;
|
|
esp)
|
|
src="https://dl.espressif.com/dl/xtensa-esp32-elf-linux64-1.22.0-61-gab8375a-5.2.0.tar.gz"
|
|
download ${src} /tmp/esp32.tar.gz
|
|
mkdir -p ${DESTDIR}
|
|
tar zx -C ${DESTDIR} -f /tmp/esp32.tar.gz
|
|
rm /tmp/esp32.tar.gz
|
|
git clone --recursive https://github.com/espressif/esp-idf.git ${DESTDIR}/esp-idf
|
|
;;
|
|
dex2jar)
|
|
src="https://github.com/pxb1988/dex2jar/releases/download/2.0/dex-tools-2.0.zip"
|
|
download ${src} /tmp/dex2jar.zip
|
|
tmpd=`mktemp -d`
|
|
unzip -d ${tmpd} /tmp/dex2jar.zip
|
|
mv ${tmpd}/* ${DESTDIR}
|
|
rm /tmp/dex2jar.zip
|
|
rm -rf ${tmpd}
|
|
rm ${DESTDIR}/*.bat
|
|
chmod +x ${DESTDIR}/*.sh
|
|
;;
|
|
proxmark3)
|
|
install_pkgs p7zip git build-essential libreadline5 libreadline-dev \
|
|
libusb-0.1-4 libusb-dev libqt4-dev perl pkg-config wget libncurses5-dev \
|
|
gcc-arm-none-eabi libstdc++-arm-none-eabi-newlib
|
|
src="https://github.com/Proxmark/proxmark3.git"
|
|
git clone ${src} ${DESTDIR}
|
|
cd ${DESTDIR}
|
|
make -sj2
|
|
check_sudo && sudo /bin/sh -c \
|
|
"cp -rf driver/78-mm-usb-device-blacklist.rules \
|
|
/etc/udev/rules.d/77-mm-usb-device-blacklist.rules &&
|
|
udevadm control --reload-rules"
|
|
;;
|
|
cyberchef)
|
|
mkdir -p ${DESTDIR}
|
|
src=$(python -c 'import urllib2; import json; print(filter(lambda x: x["name"]=="cyberchef.htm", json.load(urllib2.urlopen("https://api.github.com/repos/gchq/CyberChef/releases/latest"))["assets"])[0]["browser_download_url"])')
|
|
download ${src} ${DESTDIR}/cyberchef.html
|
|
;;
|
|
*)
|
|
echo "Unknown tool: ${TOOL}" >/dev/stderr
|
|
exit 1
|
|
;;
|
|
esac
|