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()
{
@ -7,14 +9,11 @@ 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
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)
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
@ -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

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