Merge pull request #62 from LosFuzzys/archlinux

archlinux support + tool updates + misc improvements
This commit is contained in:
Yan 2016-07-06 01:01:33 -07:00 committed by GitHub
commit 51aa759543
90 changed files with 589 additions and 137 deletions

3
.gitignore vendored
View file

@ -1,6 +1,7 @@
*/*
bin/*
!*/install
!*/install-root
!*/uninstall
!*/install-root-*
!*/upgrade
!*/test

View file

@ -1,7 +1,11 @@
from ubuntu:trusty
maintainer yans@yancomm.net
RUN adduser ctf
RUN apt-get update && apt-get install -y build-essential libtool g++ gcc \
texinfo curl wget automake autoconf python python-dev git subversion \
unzip virtualenvwrapper
RUN useradd -m ctf
COPY .git /home/ctf/tools/.git
RUN chown -R ctf.ctf /home/ctf/tools
@ -14,9 +18,7 @@ USER ctf
WORKDIR /home/ctf/tools
RUN git checkout .
RUN bin/manage-tools -s setup
RUN echo "workon ctftools" >> /home/ctf/.bashrc
WORKDIR /home/ctf
RUN bash -c "source /etc/bash_completion.d/virtualenvwrapper && mkvirtualenv ctf"
RUN echo "workon ctf" >> /home/ctf/.bashrc
ENTRYPOINT bash -i

42
Dockerfile.archlinux Normal file
View file

@ -0,0 +1,42 @@
from base/archlinux
RUN echo 'Server = http://mirror1.htu.tugraz.at/archlinux/$repo/os/$arch' \
> /etc/pacman.d/mirrorlist
RUN echo "[multilib]" >> /etc/pacman.conf
RUN echo "Include = /etc/pacman.d/mirrorlist" >> /etc/pacman.conf
RUN pacman -Syy \
&& pacman -S --noconfirm archlinux-keyring \
&& pacman -Scc --noconfirm
RUN pacman-key --refresh-keys
RUN pacman -Syu --noconfirm \
&& pacman-db-upgrade \
&& pacman -Scc --noconfirm \
&& pacman -Syu --noconfirm \
&& pacman -Scc --noconfirm
RUN trust extract-compat
RUN pacman -Syu --noconfirm --needed \
curl wget python2 python3 git subversion \
python2-pip python-pip \
unzip python-virtualenvwrapper \
zsh grml-zsh-config \
sudo \
&& pacman -Scc --noconfirm
RUN useradd -m ctf
RUN echo "ctf ALL=NOPASSWD: ALL" > /etc/sudoers.d/ctf
RUN chsh -s /usr/bin/zsh ctf
COPY .git /home/ctf/tools/.git
RUN chown -R ctf.ctf /home/ctf/tools
USER ctf
WORKDIR /home/ctf/tools
RUN git checkout .
RUN bin/manage-tools -s setup
RUN echo 'source $(which virtualenvwrapper.sh)' >> ~/.zshrc
RUN echo 'workon ctftools' >> ~/.zshrc
WORKDIR /home/ctf
CMD ["zsh", "-i"]

View file

@ -13,6 +13,7 @@ Installers for the following tools are included:
| binary | [angr](http://angr.io) | Next-generation binary analysis engine from Shellphish. | <!--tool--> <!--no-test-->
| binary | [barf](https://github.com/programa-stic/barf-project) | Binary Analysis and Reverse-engineering Framework. | <!--tool--><!--times-out-->
| binary | [bindead](https://bitbucket.org/mihaila/bindead/wiki/Home) | A static analysis tool for binaries. | <!--tool--><!--failing-->
| binary | [binjitsu](https://github.com/binjitsu/binjitsu) | Useful CTF utilities. pwntools fork. | <!--tool--><!--no-test-->
| binary | [checksec](https://github.com/slimm609/checksec.sh) | Check binary hardening settings. | <!--tool--><!--test-->
| binary | [codereason](https://github.com/trailofbits/codereason) | Semantic Binary Code Analysis Framework. | <!--tool--><!--failing-->
| binary | [crosstool-ng](http://crosstool-ng.org/) | Cross-compilers and cross-architecture tools. | <!--tool--><!--no-test-->
@ -21,11 +22,13 @@ Installers for the following tools are included:
| binary | [elfparser](http://www.elfparser.com/) | Quickly determine the capabilities of an ELF binary through static analysis. | <!--tool--><!--test-->
| binary | [evilize](http://www.mathstat.dal.ca/~selinger/md5collision/) | Tool to create MD5 colliding binaries | <!--tool--><!--test-->
| binary | [gdb](http://www.gnu.org/software/gdb/) | Up-to-date gdb with python2 bindings. | <!--tool--><!--failing-->
| binary | [gef](https://github.com/hugsy/gef) | Enhanced environment for gdb. | <!--tool--><!--no-test-->
| binary | [hongfuzz](https://github.com/google/honggfuzz) | A general-purpose, easy-to-use fuzzer with interesting analysis options. | <!--tool--><!--test-->
| binary | [panda](https://github.com/moyix/panda) | Platform for Architecture-Neutral Dynamic Analysis. | <!--tool--><!--no-test-->
| binary | [pathgrind](https://github.com/codelion/pathgrind) | Path-based, symbolically-assisted fuzzer. | <!--tool--><!--test-->
| binary | [peda](https://github.com/longld/peda) | Enhanced environment for gdb. | <!--tool--><!--test-->
| binary | [preeny](https://github.com/zardus/preeny) | A collection of helpful preloads (compiled for many architectures!). | <!--tool--><!--no-test-->
| binary | [pwndbg](https://github.com/zachriggle/pwndbg) | Enhanced environment for gdb. Especially for pwning. | <!--tool--><!--no-test-->
| binary | [pwntools](https://github.com/Gallopsled/pwntools) | Useful CTF utilities. | <!--tool--><!--no-test-->
| binary | [python-pin](https://github.com/blankwall/Python_Pin) | Python bindings for pin. | <!--tool--><!--test-->
| binary | [qemu](http://qemu.org) | Latest version of qemu! | <!--tool--><!--times-out-->
@ -67,7 +70,8 @@ Installers for the following tools are included:
| web | [burpsuite](http://portswigger.net/burp) | Web proxy to do naughty web stuff. | <!--tool--><!--failing-->
| web | [commix](https://github.com/stasinopoulos/commix) | Command injection and exploitation tool. | <!--tool--><!--test-->
| web | [dirb](http://dirb.sourceforge.net/) | Web path scanner. | <!--tool--><!--test-->
| web | [dirs3arch](https://github.com/maurosoria/dirs3arch) | Web path scanner. | <!--tool--><!--test-->
| web | [dirsearch](https://github.com/maurosoria/dirsearch) | Web path scanner. | <!--tool--><!--test-->
| web | [mitmproxy](https://mitmproxy.org/) | CLI Web proxy and python library. | <!--tool--><!--no-test-->
| web | [sqlmap](http://sqlmap.org/) | SQL injection automation engine. | <!--tool--><!--test-->
| web | [subbrute](https://github.com/TheRook/subbrute) | A DNS meta-query spider that enumerates DNS records, and subdomains. | <!--tool--><!--test-->
| stego | [sound-visualizer](http://www.sonicvisualiser.org/) | Audio file visualization. | <!--tool--><!--failing-->
@ -114,7 +118,10 @@ manage-tools search preload
```
Where possible, the tools keep the installs very self-contained (i.e., in to tool/ directory), and most uninstalls are just calls to `git clean` (**NOTE**, this is **NOT** careful; everything under the tool directory, including whatever you were working on, is blown away during an uninstall).
To support python dependencies, however, make sure to create a virtualenv before installing and using tools (i.e., `mkvirtualenv --system-site-packages ctf`. The `--system-site-packages` is there for easier reuse of apt-gotten python packages where necessary).
One exception to this are python tools, which are installed using the `pip`
package manager if possible. A `ctftools` virtualenv is created during the
`manage-tools setup` command and can be accessed using the command
`workon ctftools`.
## Help!

View file

@ -9,6 +9,11 @@ mv afl-* afl
cd afl
make -j $(nproc)
cd qemu_mode
# try to detect if python2 and 3 are installed
if which python2 >/dev/null; then
sed -i 's/python/python2/' ./build_qemu_support.sh
sed -i 's!configure!configure --python=\$(which python2)!' ./build_qemu_support.sh
fi
./build_qemu_support.sh
cd ../../

4
afl/install-root-archlinux Executable file
View file

@ -0,0 +1,4 @@
#!/bin/bash
set -eu -o pipefail
pacman -Syu --noconfirm --needed bison qemu

View file

@ -1,4 +1,5 @@
#!/bin/bash -e
#!/bin/bash
set -eu -o pipefail
apt-get -y build-dep qemu
apt-get -y install bison

View file

@ -0,0 +1,4 @@
#!/bin/bash
set -eu -o pipefail
pacman -Syu --noconfirm --needed jre7-openjdk jdk7-openjdk

View file

@ -1 +1,4 @@
#!/bin/bash
set -eu -o pipefail
apt-get -y install openjdk-7-jre openjdk-7-jdk

View file

@ -1,4 +1,5 @@
#!/bin/bash -e
#!/bin/bash
set -eu -o pipefail
# for angr
apt-get -y install virtualenvwrapper python2.7-dev build-essential libxml2-dev libxslt1-dev git libffi-dev cmake libreadline-dev libtool debootstrap debian-archive-keyring libglib2.0-dev libpixman-1-dev

View file

@ -1,2 +0,0 @@
apt-get update
apt-get install -y default-jre

View file

@ -0,0 +1,4 @@
#!/bin/bash
set -eu -o pipefail
pacman -Syu --noconfirm --needed jre8-openjdk

4
apktool/install-root-debian Executable file
View file

@ -0,0 +1,4 @@
#!/bin/bash
set -eu -o pipefail
apt-get install -y default-jre

View file

@ -1,3 +1,4 @@
#!/bin/bash
set -eu -o pipefail
apt-get -y install binutils-multiarch-dev

6
beef/install Executable file
View file

@ -0,0 +1,6 @@
#!/bin/bash
git clone --depth 1 https://github.com/beefproject/beef
cd beef
bundle

7
beef/install-root-archlinux Executable file
View file

@ -0,0 +1,7 @@
#!/bin/bash -e
pacman -Syu --noconfirm --needed \
ruby python2 ruby-bundler \
git make gcc openssl patch readline \
zlib libyaml libffi bzip2 autoconf automake \
libtool bison sqlite

9
beef/install-root-debian Executable file
View file

@ -0,0 +1,9 @@
#!/bin/bash -e
echo "Need to get ruby with RVM... Unsupported for now"
exit 1
apt-get install build-essential openssl libreadline6 \
libreadline6-dev zlib1g zlib1g-dev libssl-dev \
libyaml-dev libsqlite3-0 libsqlite3-dev sqlite3 \
libxml2-dev libxslt1-dev autoconf libc6-dev \
libncurses5-dev automake libtool bison subversion

43
bin/ctf-tools-pip Executable file
View file

@ -0,0 +1,43 @@
#!/bin/bash
set -e -o pipefail
#set -x
# let's stick with python 2 as default
PY_VERSION=2
# check this scripts file ending
if [[ "$0" =~ pip3 ]]; then
PY_VERSION=3
fi
if [[ "$0" =~ pip2 ]]; then
PY_VERSION=2
fi
PY_INTERPRETER=$(which "python$PY_VERSION" || which python)
CTF_TOOLS_VE="ctftools"
if [[ $PY_VERSION -eq 3 ]]; then
CTF_TOOLS_VE="${CTF_TOOLS_VE}3"
fi
if [[ -z "${WORKON_HOME+x}" ]]; then
export WORKON_HOME="$HOME/.virtualenvs"
fi
if [[ ! -d "$WORKON_HOME" ]]; then
mkdir -p "$WORKON_HOME"
fi
VE_DIR="$WORKON_HOME/$CTF_TOOLS_VE"
if [[ ! -d "$VE_DIR" || ! -e "$VE_DIR/bin/activate" ]]; then
echo "#### Creating python$PY_VERSION virtualenv '$CTF_TOOLS_VE' ####" >&2
virtualenv --system-site-packages -p "$PY_INTERPRETER" "$VE_DIR"
fi
if [[ -z "${VIRTUAL_ENV+x}" || "$VIRTUAL_ENV" != "$VE_DIR" ]]; then
if [[ -n "${VIRTUAL_ENV+x}" ]]; then
deactivate
fi
source "$VE_DIR/bin/activate"
fi
exec pip "$@"

1
bin/ctf-tools-pip3 Symbolic link
View file

@ -0,0 +1 @@
ctf-tools-pip

View file

@ -1,4 +1,6 @@
#!/bin/bash -e
#!/bin/bash
set -eu -o pipefail
# set -x
function usage()
{
@ -6,21 +8,18 @@ function usage()
Usage: $(basename $0) [-s] (list|setup|install|uninstall|bin|search) tool
Where:
-s allow running things with sudo (i.e., to install debs)
tool the name of the tool. if "all", does the action on all
tools
-s allow running things with sudo (i.e., to install debs)
tool the name of the tool. if "all", does the action on all tools
Actions:
setup set up the environment (adds ctf-tools/bin to your
\$PATH in .bashrc)
list list all tools (-i: only installed, -u: only
uninstalled)
install installs a tool
uninstall uninstalls a tool
reinstall reinstalls a tool
upgrade upgrades a tool
bin re-links tool binaries into ctf-tools/bin
search search description and name of tools
setup set up the environment (adds ctf-tools/bin to your \$PATH in .bashrc)
list list all tools (-i: only installed, -u: only uninstalled)
install installs a tool
uninstall uninstalls a tool
reinstall reinstalls a tool
upgrade upgrades a tool
bin re-links tool binaries into ctf-tools/bin
search search description and name of tools
END
}
@ -30,6 +29,126 @@ function tool_log()
echo "$(tput setaf 4 2>/dev/null)TOOLS | $TOOL |$(tput sgr0 2>/dev/null) $@"
}
function detect_distribution()
{
if which pacman 2>&1 >/dev/null; then
echo "archlinux"
elif which apt-get 2>&1 >/dev/null; then
if lsb_release -a | grep -i ubuntu 2>&1 >/dev/null; then
echo "ubuntu"
else
echo "debian"
fi
else
echo ""
fi
}
function base_build_setup_debian()
{
PACKAGE_REQS="build-essential libtool g++ gcc texinfo curl wget automake autoconf python python-dev git subversion unzip virtualenvwrapper"
PACKAGE_COUNT=$(echo $PACKAGE_REQS | tr ' ' '\n' | wc -l)
if [ $(dpkg -l $PACKAGE_REQS | grep "^ii" | wc -l) -ne $PACKAGE_COUNT ]
then
if [ "$ALLOW_SUDO" -eq 1 ]; then
sudo apt-get -y install $PACKAGE_REQS
else
TOOL=SETUP tool_log "Please install the following packages: $PACKAGE_REQS"
fi
fi
if ! dpkg --print-foreign-architectures | grep -q i386
then
if [ "$ALLOW_SUDO" -eq 1 ]
then
sudo dpkg --add-architecture i386
sudo apt-get update
else
TOOL=SETUP tool_log "Certain tools need i386 libraries (enable with 'dpkg --add-architecture i386; apt-get update')."
fi
fi
}
function base_build_setup_arch()
{
PACKAGE_REQS="curl wget python2 python3 git subversion unzip python-virtualenvwrapper"
if [ "$ALLOW_SUDO" -eq 1 ]; then
sudo pacman -Syu --noconfirm --needed $PACKAGE_REQS
sudo pacman -Syu --noconfirm --needed base-devel || true
else
TOOL=SETUP tool_log "Please install the following packages: $PACKAGE_REQS"
fi
if ! grep "^\[multilib\]$" /etc/pacman.conf >/dev/null; then
if [ "$ALLOW_SUDO" -eq 1 ]; then
sudo sh -c 'cat >> /etc/pacman.conf' <<EOF
[multilib]
Include = /etc/pacman.d/mirrorlist
EOF
else
TOOL=SETUP tool_log "Certain tools need i386 libraries (enable multilib in /etc/pacman.conf')."
return
fi
fi
if [ "$ALLOW_SUDO" -eq 1 ] \
&& grep "^\[multilib\]$" /etc/pacman.conf >/dev/null \
&& ! sudo pacman -Qk gcc-multilib >/dev/null
then
sudo pacman -Syy --noconfirm
#sudo pacman -Syu --noconfirm multilib-devel
# unfortunately we cannot do --noconfirm if we might choose to replace
# a package such as gcc with gcc-multilib, therefore this workaround
printf "\ny\ny\ny\n" | sudo pacman -Syu multilib-devel
fi
}
function base_build_setup()
{
case "$1" in
"ubuntu")
;& # fallthrough
"debian")
base_build_setup_debian
;;
"archlinux")
base_build_setup_arch
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
;;
*)
TOOL=SETUP tool_log "Cannot detect or unsupported distribution"
esac
## setup PATH for several shells
echo "export PATH=\"$PWD/bin:\$PATH\"" >> ~/.bashrc
if [ -e ~/.zshrc ]
then
echo "export PATH=\"$PWD/bin:\$PATH\"" >> ~/.zshrc
fi
if [ -e ~/.config/fish/config.fish ]; then
echo "set -x PATH $PWD/bin \$PATH " >> ~/.config/fish/config.fish
fi
# create the py2 virtualenv
"$PWD/bin/ctf-tools-pip" freeze 2>&1 >/dev/null
}
if [[ $# -eq 0 ]]; then
usage
exit 1
fi
DISTRI=$(detect_distribution)
while [[ $1 == -* ]]
do
case $1 in
@ -44,10 +163,16 @@ do
shift
done
[ -z "$ALLOW_SUDO" ] && export ALLOW_SUDO=0
[[ -z ${ALLOW_SUDO+x} ]] && export ALLOW_SUDO=0
ACTION=$1
TOOL=$2
if [[ $# -ge 1 ]]; then
ACTION="$1"
fi
if [[ $# -eq 2 ]]; then
TOOL="$2"
else
TOOL=""
fi
if [ "$TOOL" == "all" ]
then
@ -65,35 +190,8 @@ cd $(dirname "${BASH_SOURCE[0]}")/..
case $ACTION in
setup)
PACKAGE_REQS="build-essential libtool g++ gcc texinfo curl wget automake autoconf python-dev git subversion unzip"
PACKAGE_COUNT=$(echo $PACKAGE_REQS | tr ' ' '\n' | wc -l)
if [ $(dpkg -l $PACKAGE_REQS | grep "^ii" | wc -l) -ne $PACKAGE_COUNT ]
then
if [ "$ALLOW_SUDO" -eq 1 ]
then
sudo apt-get -y install $PACKAGE_REQS
else
TOOL=SETUP tool_log "Please install the following packages: $PACKAGE_REQS"
fi
fi
if ! dpkg --print-foreign-architectures | grep -q i386
then
if [ "$ALLOW_SUDO" -eq 1 ]
then
sudo dpkg --add-architecture i386
sudo apt-get update || true
else
TOOL=SETUP tool_log "Certain tools need i386 libraries (enable with 'dpkg --add-architecture i386; apt-get update')."
fi
fi
echo "PATH=\"$PWD/bin:\$PATH\"" >> ~/.bashrc
if [ -e ~/.zshrc ]
then
echo "PATH=\"$PWD/bin:\$PATH\"" >> ~/.zshrc
fi
base_build_setup "$DISTRI"
;;
list)
for t in *
@ -118,8 +216,32 @@ case $ACTION in
tool_log "starting install, logging to $PWD/install.log"
rm -f install.log
[ -x ./install-root -a "$ALLOW_SUDO" -eq 1 ] && sudo ./install-root >> install.log 2>&1
if ./install >>install.log 2>&1
# first get distri specific dependencies
if [[ $(find . -name 'install-root*' | wc -l) -ge 1 ]]; then
INSTALL_ROOT_SCRIPT="./install-root-$DISTRI"
# use debian install script if we are on ubuntu and no ubuntu
# specific install script exists
if [[ "$DISTRI" == "ubuntu" \
&& ! -x "$INSTALL_ROOT_SCRIPT" \
&& -x "./install-root-debian" ]]
then
INSTALL_ROOT_SCRIPT="./install-root-debian"
fi
if [[ -x "$INSTALL_ROOT_SCRIPT" && "$ALLOW_SUDO" -eq 1 ]]; then
if ! sudo env DISTRI=$DISTRI "$INSTALL_ROOT_SCRIPT" >> install.log 2>&1;
then
tool_log "INSTALL FAILED"
cat install.log >&2
exit 1
fi
else
tool_log "Warning: make sure build dependencies are installed!"
fi
fi
# execute install script
if env DISTRI=$DISTRI ./install >>install.log 2>&1
then
tool_log "install finished"
else
@ -134,8 +256,9 @@ case $ACTION in
uninstall)
cd $TOOL
[ -x ./uninstall ] && ./uninstall
git clean -dffx .
tool_log "starting uninstall, logging to $PWD/uninstall.log"
[ -x ./uninstall ] && ./uninstall >> uninstall.log 2>&1
git clean -dffx . >/dev/null 2>&1
tool_log "uninstall finished"
cd ..

View file

@ -1,3 +1,4 @@
#!/bin/bash
set -eu -o pipefail
apt-get -y install maven libprotobuf-dev openjdk-7-jre openjdk-7-jdk

5
binjitsu/install Executable file
View file

@ -0,0 +1,5 @@
#!/bin/bash -e
#ctf-tools-pip install --upgrade 'git+https://github.com/binjitsu/binjitsu.git'
git clone --depth=1 'https://github.com/binjitsu/binjitsu.git'
ctf-tools-pip install --upgrade -e binjitsu

View file

@ -0,0 +1,3 @@
#!/bin/bash -e
pacman -Syu --noconfirm --needed binutils openssl libffi

View file

@ -1,5 +1,6 @@
#!/bin/bash -e
apt-get -y install software-properties-common
apt-add-repository -y ppa:pwntools/binutils
apt-get update
apt-get -y install binutils-.*-linux-gnu libffi-dev libssl-dev

3
binjitsu/uninstall Executable file
View file

@ -0,0 +1,3 @@
#!/bin/bash -e
ctf-tools-pip uninstall -y binjitsu || true

View file

@ -0,0 +1,4 @@
#!/bin/bash
set -eu -o pipefail
pacman -Syu --noconfirm --needed jre7-openjdk

View file

@ -1,3 +1,4 @@
#!/bin/bash
set -eu -o pipefail
apt-get -y install openjdk-7-jre

View file

@ -1,3 +1,4 @@
#!/bin/bash -e
#!/bin/bash
set -eu -o pipefail
apt-get -y install build-essential gcc g++ make cmake libboost-dev libprotobuf-dev protobuf-compiler libboost-thread-dev libboost-system-dev libboost-filesystem-dev libboost-program-options-dev libboost-date-time-dev libboost-regex-dev

View file

@ -0,0 +1,3 @@
#!/bin/bash -e
pacman -Syu --noconfirm gperf flex bison help2man gawk ncurses

View file

@ -1,3 +1,4 @@
#!/bin/bash
set -eu -o pipefail
apt-get -y install libasound2:i386 libasyncns0:i386 libatk1.0-0:i386 libc6:i386 libcaca0:i386 libcairo2:i386 libdatrie1:i386 libdbus-1-3:i386 libdrm2:i386 libexpat1:i386 libffi6:i386 libflac8:i386 libfontconfig1:i386 libfreetype6:i386 libgdk-pixbuf2.0-0:i386 libgl1-mesa-glx:i386 libglapi-mesa:i386 libglib2.0-0:i386 libglu1-mesa:i386 libgraphite2-3:i386 libgtk2.0-0:i386 libharfbuzz0b:i386 libjbig0:i386 libjpeg-turbo8:i386 libjson-c2:i386 liblzma5:i386 libncursesw5:i386 libogg0:i386 libpango-1.0-0:i386 libpangocairo-1.0-0:i386 libpangoft2-1.0-0:i386 libpcre3:i386 libpixman-1-0:i386 libpng12-0:i386 libpulse0:i386 libsdl1.2debian:i386 libsdl-image1.2:i386 libsdl-ttf2.0-0:i386 libselinux1:i386 libslang2:i386 libsndfile1:i386 libthai0:i386 libtiff5:i386 libtinfo5:i386 libvorbis0a:i386 libvorbisenc2:i386 libwebp5:i386 libwrap0:i386 libx11-6:i386 libx11-xcb1:i386 libxau6:i386 libxcb1:i386 libxcb-dri2-0:i386 libxcb-dri3-0:i386 libxcb-glx0:i386 libxcb-present0:i386 libxcb-render0:i386 libxcb-shm0:i386 libxcb-sync1:i386 libxcomposite1:i386 libxcursor1:i386 libxdamage1:i386 libxdmcp6:i386 libxext6:i386 libxfixes3:i386 libxi6:i386 libxinerama1:i386 libxrandr2:i386 libxrender1:i386 libxshmfence1:i386 libxxf86vm1:i386 zlib1g:i386
apt-get -y install libasound2:i386 libasyncns0:i386 libatk1.0-0:i386 libc6:i386 libcaca0:i386 libcairo2:i386 libdatrie1:i386 libdbus-1-3:i386 libdrm2:i386 libexpat1:i386 libffi6:i386 libflac8:i386 libfontconfig1:i386 libfreetype6:i386 libgdk-pixbuf2.0-0:i386 libgl1-mesa-glx:i386 libglapi-mesa:i386 libglib2.0-0:i386 libglu1-mesa:i386 libgraphite2-3:i386 libgtk2.0-0:i386 libharfbuzz0b:i386 libjbig0:i386 libjpeg-turbo8:i386 libjson-c2:i386 liblzma5:i386 libncursesw5:i386 libogg0:i386 libpango-1.0-0:i386 libpangocairo-1.0-0:i386 libpangoft2-1.0-0:i386 libpcre3:i386 libpixman-1-0:i386 libpng12-0:i386 libpulse0:i386 libsdl1.2debian:i386 libsdl-image1.2:i386 libsdl-ttf2.0-0:i386 libselinux1:i386 libslang2:i386 libsndfile1:i386 libthai0:i386 libtiff5:i386 libtinfo5:i386 libvorbis0a:i386 libvorbisenc2:i386 libwebp5:i386 libwrap0:i386 libx11-6:i386 libx11-xcb1:i386 libxau6:i386 libxcb1:i386 libxcb-dri2-0:i386 libxcb-dri3-0:i386 libxcb-glx0:i386 libxcb-present0:i386 libxcb-render0:i386 libxcb-shm0:i386 libxcb-sync1:i386 libxcomposite1:i386 libxcursor1:i386 libxdamage1:i386 libxdmcp6:i386 libxext6:i386 libxfixes3:i386 libxi6:i386 libxinerama1:i386 libxrandr2:i386 libxrender1:i386 libxshmfence1:i386 libxxf86vm1:i386 zlib1g:i386

4
dirb/install-root-archlinux Executable file
View file

@ -0,0 +1,4 @@
#!/bin/bash
set -eu -o pipefail
pacman -Syu --noconfirm --needed curl gnutls

View file

@ -1,3 +1,4 @@
#!/bin/bash -e
#!/bin/bash
set -eu -o pipefail
apt-get -y install libcurl4-gnutls-dev

View file

@ -1,7 +0,0 @@
#!/bin/bash
mkdir bin
git clone --depth 1 https://github.com/maurosoria/dirs3arch.git
cd bin
ln -s ../dirs3arch/dirs3arch.py .

7
dirsearch/install Executable file
View file

@ -0,0 +1,7 @@
#!/bin/bash
mkdir bin
git clone --depth 1 https://github.com/maurosoria/dirsearch.git
cd bin
ln -s ../dirsearch/dirsearch.py .

View file

@ -0,0 +1,4 @@
#!/bin/bash
set -eu -o pipefail
pacman -Syu --noconfirm --needed mbedtls fuse

View file

@ -1,3 +1,4 @@
#!/bin/bash
set -eu -o pipefail
apt-get -y install libfuse-dev libpolarssl-dev

View file

@ -1,3 +1,4 @@
#!/bin/bash -e
#!/bin/bash
set -eu -o pipefail
apt-get install -y libqt5widgets5

View file

@ -0,0 +1,4 @@
#!/bin/bash
set -eu -o pipefail
pacman -Syu --noconfirm --needed zlib xz python2-magic

View file

@ -1,3 +1,4 @@
#!/bin/bash
set -eu -o pipefail
apt-get -y install liblzma-dev python-magic zlib1g-dev

View file

@ -1,13 +1,3 @@
#!/bin/bash -e
git clone --depth 1 https://github.com/ALSchwalm/foresight.git
# python3 virtualenv
virtualenv -p $(which python3) python3
source python3/bin/activate
pip install -e foresight
mkdir -p bin
cd bin
ln -s ../python3/bin/foresee .
cd ..
ctf-tools-pip3 install --upgrade 'git+https://github.com/ALSchwalm/foresight.git'

3
foresight/uninstall Executable file
View file

@ -0,0 +1,3 @@
#!/bin/bash -e
ctf-tools-pip3 uninstall -y foresight || true

4
gdb/install-root-archlinux Executable file
View file

@ -0,0 +1,4 @@
#!/bin/bash
set -eu -o pipefail
pacman -Syu --needed --noconfirm texinfo

View file

@ -1,3 +1,4 @@
#!/bin/bash
set -eu -o pipefail
apt-get -y install texinfo

28
gef/install Executable file
View file

@ -0,0 +1,28 @@
#!/bin/bash
set -eu -o pipefail
git clone --depth 1 https://github.com/hugsy/gef.git
mkdir bin
cat > bin/gdb-gef <<EOF
#!/bin/sh
exec gdb -q -ex init-gef "$@"
EOF
chmod +rx bin/gdb-gef
cd gef
if ! grep "init-gef" ~/.gdbinit; then
cat >> ~/.gdbinit <<EOF
####
# added by ctf-tools
define init-gef
source $PWD/gef.py
end
document init-gef
Initializes the GEF (GDB Enhanced Features) plugin
end
####
EOF
fi

View file

@ -1,3 +0,0 @@
#!/bin/bash -e
apt-get -y install libssl-dev

View file

@ -0,0 +1,4 @@
#!/bin/bash
set -eu -o pipefail
pacman -Syu --noconfirm --needed openssl

View file

@ -0,0 +1,4 @@
#!/bin/bash
set -eu -o pipefail
apt-get -y install libssl-dev

View file

@ -5,7 +5,7 @@ cd HashPump
make -j $(nproc)
cd ..
pip install -e HashPump
ctf-tools-pip install --upgrade -e HashPump
mkdir bin
cd bin

View file

@ -1,3 +0,0 @@
#!/bin/bash -e
apt-get -y install libssl-dev

View file

@ -0,0 +1,4 @@
#!/bin/bash
set -eu -o pipefail
pacman -Syu --noconfirm --needed openssl

4
hashpump/install-root-debian Executable file
View file

@ -0,0 +1,4 @@
#!/bin/bash
set -eu -o pipefail
apt-get -y install libssl-dev

3
hashpump/uninstall Executable file
View file

@ -0,0 +1,3 @@
#!/bin/bash -e
ctf-tools-pip uninstall -y hashpumpy || true

View file

@ -0,0 +1,5 @@
#!/bin/bash
set -eu -o pipefail
apt-get install libbfd-dev libunwind8-dev
pacman -Syu --noconfirm --needed libunwind binutils

View file

@ -1,3 +1,4 @@
#!/bin/bash -e
#!/bin/bash
set -eu -o pipefail
apt-get install libbfd-dev libunwind8-dev

View file

@ -0,0 +1,4 @@
#!/bin/bash
set -eu -o pipefail
pacman -Syu --noconfirm --needed openssl libpcap sqlite

View file

@ -1,3 +1,4 @@
#!/bin/bash -e
#!/bin/bash
set -eu -o pipefail
apt-get -y install libssl-dev libpcap-dev libsqlite3-dev

3
mitmproxy/install Executable file
View file

@ -0,0 +1,3 @@
#!/bin/bash -e
ctf-tools-pip install --upgrade mitmproxy

3
mitmproxy/uninstall Executable file
View file

@ -0,0 +1,3 @@
#!/bin/bash -e
ctf-tools-pip uninstall -y mitmproxy || true

4
msieve/install-root-archlinux Executable file
View file

@ -0,0 +1,4 @@
#!/bin/bash
set -eu -o pipefail
pacman -Syu --noconfirm --needed gmp

View file

@ -1,3 +1,4 @@
#!/bin/bash -e
#!/bin/bash
set -eu -o pipefail
apt-get -y install libgmp3-dev libgmp-dev

View file

@ -1 +0,0 @@
apt-get -y install nasm libssl-dev libpcap-dev subversion curl autoconf libtool libc++-dev llvm-3.3-dev clang-3.3 unzip

5
panda/install-root-archlinux Executable file
View file

@ -0,0 +1,5 @@
#!/bin/bash
set -eu -o pipefail
pacman -Syu --needed --noconfirm nasm openssl libpcap subversion curl \
autoconf libtool libc++ unzip clang llvm

5
panda/install-root-debian Executable file
View file

@ -0,0 +1,5 @@
#!/bin/bash
set -eu -o pipefail
apt-get -y install nasm libssl-dev libpcap-dev subversion curl \
autoconf libtool libc++-dev llvm-3.3-dev clang-3.3 unzip

View file

@ -1,3 +1,4 @@
#!/bin/bash -e
#!/bin/bash
set -eu -o pipefail
apt-get -y install libc6-dev-i386 libc6-dev

View file

@ -1,5 +1,29 @@
#!/bin/bash
set -eu -o pipefail
git clone --depth 1 https://github.com/longld/peda.git
mkdir bin
cat > bin/gdb-peda <<EOF
#!/bin/sh
exec gdb -q -ex init-peda "$@"
EOF
chmod +rx bin/gdb-peda
cd peda
echo "source $PWD/peda.py" >> ~/.gdbinit
#echo "source $PWD/peda.py" >> ~/.gdbinit
if ! grep "init-peda" ~/.gdbinit; then
cat >> ~/.gdbinit <<EOF
####
# added by ctf-tools
define init-peda
source $PWD/peda.py
end
document init-peda
Initializes the PEDA (Python Exploit Development Assistant for GDB) framework
end
####
EOF
fi

29
pwndbg/install Executable file
View file

@ -0,0 +1,29 @@
#!/bin/bash
set -eu -o pipefail
git clone --depth 1 git clone https://github.com/zachriggle/pwndbg
mkdir bin
cat >> bin/pwndbg <<EOF
#!/bin/sh
exec gdb -q -ex init-pwndbg "$@"
EOF
chmod +rx bin/pwndbg
cd pwndbg
if ! grep "init-pwndbg" ~/.gdbinit; then
cat >> ~/.gdbinit <<EOF
####
# added by ctf-tools
define init-pwndbg
source $PWD/gdbinit.py
end
document init-pwndbg
Initializes the pwndbg gdb extension (https://github.com/zachriggle/pwndbg)
end
####
EOF
fi

View file

@ -1,30 +1,4 @@
#!/bin/bash -e
# pwnutils
git clone --depth 1 https://github.com/Gallopsled/pwntools.git
cd pwntools
pip install -r requirements.txt
cd ..
# binutils
#curl https://ftp.gnu.org/gnu/binutils/binutils-2.25.tar.gz | tar xz
#mkdir binutils-build
#cd binutils-build
#export AR=ar
#export AS=as
#../binutils-2.25/configure --prefix=$(dirname $PWD)/binutils-inst --enable-multilib
#make -j $(nproc)
#make install
mkdir -p bin
cd bin
for i in $(yes n | pip uninstall pwntools | grep bin)
do
mv $i $(basename $i).real
cat <<END > $(basename $i)
#!/bin/bash
PATH=/usr/bin:\$PATH $PWD/$(basename $i).real "\$@"
END
chmod 755 $(basename $i)
done
cd ..
git clone --depth=1 https://github.com/Gallopsled/pwntools.git
ctf-tools-pip install --upgrade -e pwntools

View file

@ -0,0 +1,3 @@
#!/bin/bash -e
pacman -Syu --noconfirm --needed binutils openssl libffi

6
pwntools/install-root-ubuntu Executable file
View file

@ -0,0 +1,6 @@
#!/bin/bash -e
apt-get -y install software-properties-common
apt-add-repository -y ppa:pwntools/binutils
apt-get update
apt-get -y install binutils-.*-linux-gnu libffi-dev libssl-dev

3
pwntools/uninstall Executable file
View file

@ -0,0 +1,3 @@
#!/bin/bash -e
ctf-tools-pip uninstall -y pwntools || true

View file

@ -1,4 +1,4 @@
#!/bin/bash -e
git clone --depth 1 https://github.com/mwielgoszewski/python-paddingoracle.git
pip install -e python-paddingoracle
ctf-tools-pip install -e python-paddingoracle

3
python-paddingoracle/uninstall Executable file
View file

@ -0,0 +1,3 @@
#!/bin/bash -e
ctf-tools-pip uninstall -y python-paddingoracle || true

View file

@ -2,6 +2,10 @@
curl http://wiki.qemu-project.org/download/qemu-2.4.1.tar.bz2 | tar xvj
cd qemu-2.4.1
./configure --prefix=$(dirname $PWD)
if [[ "$(python --version 2>&1)" =~ Python\ 3 ]]; then
./configure "--prefix=$(dirname $PWD)" "--python=$(which python2)"
else
./configure "--prefix=$(dirname $PWD)"
fi
make -j $(nproc)
make install

3
qemu/install-root-archlinux Executable file
View file

@ -0,0 +1,3 @@
#!/bin/bash -e
pacman -Syu --noconfirm --needed python2

3
qemu/install-root-debian Executable file
View file

@ -0,0 +1,3 @@
#!/bin/bash -e
apt-get install -y python

6
qira/install-root-archlinux Executable file
View file

@ -0,0 +1,6 @@
#!/bin/bash
set -eu -o pipefail
pacman -Syu --noconfirm --needed python2-pip openssl libjpeg-turbo zlib \
unzip wget graphviz gmp llvm clang ocaml llvm-ocaml python2-virtualenv \
wget flex bison libtool automake autoconf pkg-config libevent glib2

View file

@ -1,4 +1,5 @@
#!/bin/bash -e
#!/bin/bash
set -eu -o pipefail
apt-get -y install python-pip libssl-dev build-essential python-dev python-pip debootstrap libjpeg-dev zlib1g-dev unzip wget graphviz software-properties-common libgmp-dev llvm-3.4-dev time clang-3.4 ocaml ocaml-native-compilers camlp4-extra opam clang python-virtualenv wget flex bison libtool automake autoconf autotools-dev pkg-config libglib2.0-dev libevent-2.0-5
apt-get -y build-dep qemu

4
snowman/install-root-archlinux Executable file
View file

@ -0,0 +1,4 @@
#!/bin/bash
set -eu -o pipefail
pacman -Syu --needed --noconfirm boost boost-libs cmake

View file

@ -1,3 +1,4 @@
#!/bin/bash
set -eu -o pipefail
apt-get -y install libboost-dev cmake libqt4-dev

View file

@ -0,0 +1,6 @@
#!/bin/bash
set -eu -o pipefail
pacman -Syu --noconfirm --needed bzip2 fftw libsndfile libsamplerate \
vamp-plugin-sdk rubberband sord liblo liblrdf liboggz libfishsound \
libid3tag portaudio libmad qt5-base

View file

@ -1,3 +1,4 @@
#!/bin/bash -e
#!/bin/bash
set -eu -o pipefail
apt-get -y install libbz2-dev libfftw3-dev libsndfile1-dev libsamplerate0-dev vamp-plugin-sdk librubberband-dev libsord-dev liblo-dev liblrdf0-dev liboggz2-dev libfishsound1-dev libid3tag0-dev libportaudio-dev libmad0-dev qt5-qmake

4
sqlmap/install-root-archlinux Executable file
View file

@ -0,0 +1,4 @@
#!/bin/bash
set -eu -o pipefail
pacman -Syu --noconfirm --needed sqlite

View file

@ -1,3 +1,4 @@
#!/bin/bash
set -eu -o pipefail
apt-get -y install libsqlite3-dev

View file

@ -0,0 +1,4 @@
#!/bin/bash
set -eu -o pipefail
pacman -Syu --noconfirm --needed libevent

View file

@ -1,3 +1,4 @@
#!/bin/bash -e
#!/bin/bash
set -eu -o pipefail
apt-get -y install libevent-dev

View file

@ -1,3 +1,4 @@
#!/bin/bash -e
#!/bin/bash
set -eu -o pipefail
apt-get -y install automake1.4

View file

@ -1,9 +1,3 @@
#!/bin/bash -e
git clone --depth 1 https://github.com/hellman/xortool.git
pip install -e ./xortool
mkdir -p bin
cd bin
ln -s ../xortool/xortool/{xortool,xortool-xor} .
cd ..
ctf-tools-pip install --upgrade 'git+https://github.com/hellman/xortool.git'

View file

@ -1,3 +1,3 @@
#!/bin/bash -e
pip uninstall -y xortool
ctf-tools-pip uninstall -y xortool || true