Some setup scripts for security research tools.
Shell Python Makefile
Switch branches/tags
Nothing to show
Clone or download
cub01d and zardus Add docker step
cd into directory after cloning to be able to run the docker command
Latest commit 6480f09 Jul 14, 2018
Permalink
Failed to load latest commit information.
.docker Updated Dockerfiles, added script to quickly run manage-tools in a co… Apr 20, 2018
_buildstatus travis buildstatus: switched to makefile for running things Oct 22, 2017
afl detect xenial and act accordingly. lsb-release should be installed to Feb 16, 2017
android-sdk detect xenial and act accordingly. lsb-release should be installed to Feb 16, 2017
angr fail hard on any error + verify that all scripts use bash -ex to fail Feb 16, 2017
apktool apktool version bump Aug 18, 2017
barf fail hard on any error + verify that all scripts use bash -ex to fail Feb 16, 2017
beef fix apt-get commands Feb 18, 2017
bin add the capability to use 'nice' to avoid locking everything up durin… Jul 13, 2018
bindead detect xenial and act accordingly. lsb-release should be installed to Feb 16, 2017
binwalk fix binwalk install script, add uninstall script, fixes #135 Aug 18, 2017
burpsuite detect xenial and act accordingly. lsb-release should be installed to Feb 16, 2017
capstone fail hard on any error + verify that all scripts use bash -ex to fail Feb 16, 2017
checksec fail hard on any error + verify that all scripts use bash -ex to fail Feb 16, 2017
codereason bunch of fixes to get things to build Feb 16, 2017
commix fail hard on any error + verify that all scripts use bash -ex to fail Feb 16, 2017
cribdrag fail hard on any error + verify that all scripts use bash -ex to fail Feb 16, 2017
cross2 fail hard on any error + verify that all scripts use bash -ex to fail Feb 16, 2017
crosstool fail hard on any error + verify that all scripts use bash -ex to fail Feb 16, 2017
df fail hard on any error + verify that all scripts use bash -ex to fail Feb 16, 2017
dirb Updates to Installs, should fix a few tools especially on 14.04 Apr 23, 2017
dirsearch fail hard on any error + verify that all scripts use bash -ex to fail Feb 16, 2017
dislocker bunch of fixes to get things to build Feb 16, 2017
elfkickers make elfkickers build more dependable Mar 10, 2017
elfparser fail hard on any error + verify that all scripts use bash -ex to fail Feb 16, 2017
evilize fail hard on any error + verify that all scripts use bash -ex to fail Feb 16, 2017
exetractor fail hard on any error + verify that all scripts use bash -ex to fail Feb 16, 2017
fastcoll adding fastcoll Mar 20, 2017
featherduster fail hard on any error + verify that all scripts use bash -ex to fail Feb 16, 2017
firmware-mod-kit fail hard on any error + verify that all scripts use bash -ex to fail Feb 16, 2017
foresight fail hard on any error + verify that all scripts use bash -ex to fail Feb 16, 2017
galois fix shebang Feb 16, 2018
gdb-heap Add https & fix 404 link for gdb-heap Oct 22, 2017
gdb gdb install script: remove build artifacts and strip gdb binary after… Apr 20, 2018
gef fail hard on any error + verify that all scripts use bash -ex to fail Feb 16, 2017
hash-identifier fail hard on any error + verify that all scripts use bash -ex to fail Feb 16, 2017
hashkill fail hard on any error + verify that all scripts use bash -ex to fail Feb 16, 2017
hashpump-partialhash fail hard on any error + verify that all scripts use bash -ex to fail Feb 16, 2017
hashpump fail hard on any error + verify that all scripts use bash -ex to fail Feb 16, 2017
honggfuzz fix apt-get commands Feb 18, 2017
jdgui detect xenial and act accordingly. lsb-release should be installed to Feb 16, 2017
keystone fix keystone install Aug 18, 2017
libc-database fix shebang Feb 16, 2018
libheap fail hard on any error + verify that all scripts use bash -ex to fail Feb 16, 2017
lief updated install-root scripts Apr 5, 2017
littleblackbox fail hard on any error + verify that all scripts use bash -ex to fail Feb 16, 2017
manticore Update install-root-debian May 1, 2017
miasm miasm: added uninstall script Apr 5, 2017
mitmproxy fail hard on any error + verify that all scripts use bash -ex to fail Feb 16, 2017
msieve Updates to Installs, should fix a few tools especially on 14.04 Apr 23, 2017
nonce-disrespect adding nonce-disrespect Mar 25, 2018
one_gadget added one_gadget Mar 2, 2018
panda Update install-root-ubuntu Apr 24, 2017
pathgrind fail hard on any error + verify that all scripts use bash -ex to fail Feb 16, 2017
pdf-parser Updates to Installs, should fix a few tools especially on 14.04 Apr 23, 2017
peda fail hard on any error + verify that all scripts use bash -ex to fail Feb 16, 2017
peepdf fail hard on any error + verify that all scripts use bash -ex to fail Feb 16, 2017
pemcrack fail hard on any error + verify that all scripts use bash -ex to fail Feb 16, 2017
pkcrack fail hard on any error + verify that all scripts use bash -ex to fail Feb 16, 2017
preeny fail hard on any error + verify that all scripts use bash -ex to fail Feb 16, 2017
pwndbg Updated gdb to 8.0.1, fixed arch install Sep 27, 2017
pwntools Do not use pwntools binutils ppa on xenial and later Aug 18, 2017
python-paddingoracle fail hard on any error + verify that all scripts use bash -ex to fail Feb 16, 2017
python-pin fail hard on any error + verify that all scripts use bash -ex to fail Feb 16, 2017
pyvmmonitor Add https & fix 404 link for gdb-heap Oct 22, 2017
qemu Updated qemu install script Apr 20, 2018
qira qira patched, flask_socketio problem fixed Jul 11, 2018
radare2 fail hard on any error + verify that all scripts use bash -ex to fail Feb 16, 2017
rappel rappel: fix install-root script Apr 20, 2018
reveng Updates to Installs, should fix a few tools especially on 14.04 Apr 23, 2017
ropper fix ropper install script to use --no-binary, since --no-use-wheel is… Apr 20, 2018
rp++ fail hard on any error + verify that all scripts use bash -ex to fail Feb 16, 2017
rr added bash -ex to install scripts Apr 5, 2017
scratchabit Added scratchabit and scratchablock Apr 23, 2017
scratchablock Added warning for import error yaml - use venv before use. Apr 24, 2017
scrdec18 fail hard on any error + verify that all scripts use bash -ex to fail Feb 16, 2017
seccomp-tools add seccomp-tools Nov 27, 2017
shellnoob fail hard on any error + verify that all scripts use bash -ex to fail Feb 16, 2017
shellsploit Shellsploit Changed git url Apr 24, 2017
snowman fail hard on any error + verify that all scripts use bash -ex to fail Feb 16, 2017
sonic-visualizer fail hard on any error + verify that all scripts use bash -ex to fail Feb 16, 2017
sqlmap bunch of fixes to get things to build Feb 16, 2017
ssh_decoder fail hard on any error + verify that all scripts use bash -ex to fail Feb 16, 2017
sslsplit fail hard on any error + verify that all scripts use bash -ex to fail Feb 16, 2017
steganabara fail hard on any error + verify that all scripts use bash -ex to fail Feb 16, 2017
stegdetect bunch of fixes to get things to build Feb 16, 2017
stegsolve fail hard on any error + verify that all scripts use bash -ex to fail Feb 16, 2017
subbrute fail hard on any error + verify that all scripts use bash -ex to fail Feb 16, 2017
taintgrind Updates to Installs, should fix a few tools especially on 14.04 Apr 23, 2017
testdisk fail hard on any error + verify that all scripts use bash -ex to fail Feb 16, 2017
tor-browser fail hard on any error + verify that all scripts use bash -ex to fail Feb 16, 2017
unicorn Install keystone/unicorn from pypi instead of from source Apr 5, 2017
valgrind adding latest valgrind version Jan 25, 2018
veles fail hard on any error + verify that all scripts use bash -ex to fail Feb 16, 2017
villoc fail hard on any error + verify that all scripts use bash -ex to fail Feb 16, 2017
virtualsocket fail hard on any error + verify that all scripts use bash -ex to fail Feb 16, 2017
wcc fix apt-get commands Feb 18, 2017
xortool fail hard on any error + verify that all scripts use bash -ex to fail Feb 16, 2017
xrop Fixed xrop 2 Apr 24, 2017
xspy fail hard on any error + verify that all scripts use bash -ex to fail Feb 16, 2017
yafu Updates to Installs, should fix a few tools especially on 14.04 Apr 23, 2017
youtube-dl added youtube-dl for annoying recons Jan 28, 2018
z3 fail hard on any error + verify that all scripts use bash -ex to fail Feb 16, 2017
zsteg zsteg: added uninstall script Apr 20, 2018
.dockerignore Updated Dockerfiles, added script to quickly run manage-tools in a co… Apr 20, 2018
.gitignore Split install-root scripts into distribution specific ones Jun 6, 2016
.travis.yml page with buildstatus per tool Mar 10, 2017
.travis.yml.footer page with buildstatus per tool Mar 10, 2017
.travis.yml.header page with buildstatus per tool Mar 10, 2017
Dockerfile Update Dockerfile May 31, 2018
Dockerfile.archlinux Updated Dockerfiles, added script to quickly run manage-tools in a co… Apr 20, 2018
Dockerfile.artful Updated Dockerfiles, added script to quickly run manage-tools in a co… Apr 20, 2018
Dockerfile.fedora Updated Dockerfiles, added script to quickly run manage-tools in a co… Apr 20, 2018
Dockerfile.xenial Updated Dockerfiles, added script to quickly run manage-tools in a co… Apr 20, 2018
README.md Add docker step Jul 14, 2018
TODO Update TODO Oct 29, 2015
Vagrantfile Add Vagrantfile Dec 18, 2015

README.md

ctf-tools

Build Status IRC

This is a collection of setup scripts to create an install of various security research tools. Of course, this isn't a hard problem, but it's really nice to have them in one place that's easily deployable to new machines and so forth. The install-scripts for these tools are checked regularly, the results can be found on the build status page.

Installers for the following tools are included:

Category Tool Description
binary afl State-of-the-art fuzzer.
binary angr Next-generation binary analysis engine from Shellphish.
binary barf Binary Analysis and Reverse-engineering Framework.
binary bindead A static analysis tool for binaries.
binary checksec Check binary hardening settings.
binary codereason Semantic Binary Code Analysis Framework.
binary crosstool-ng Cross-compilers and cross-architecture tools.
binary cross2 A set of cross-compilation tools from a Japanese book on C.
binary elfkickers A set of utilities for working with ELF files.
binary elfparser Quickly determine the capabilities of an ELF binary through static analysis.
binary evilize Tool to create MD5 colliding binaries
binary gdb Up-to-date gdb with python2 bindings.
binary gdb-heap gdb extension for debugging heap issues.
binary gef Enhanced environment for gdb.
binary hongfuzz A general-purpose, easy-to-use fuzzer with interesting analysis options.
binary libheap gdb python library for examining the glibc heap (ptmalloc)
binary miasm Reverse engineering framework in Python.
binary one_gadget Magic gadget search for libc.
binary panda Platform for Architecture-Neutral Dynamic Analysis.
binary pathgrind Path-based, symbolically-assisted fuzzer.
binary peda Enhanced environment for gdb.
binary preeny A collection of helpful preloads (compiled for many architectures!).
binary pwndbg Enhanced environment for gdb. Especially for pwning.
binary pwntools Useful CTF utilities.
binary python-pin Python bindings for pin.
binary qemu Latest version of qemu!
binary qira Parallel, timeless debugger.
binary radare2 Some crazy thing crowell likes.
binary rappel A linux-based assembly REPL.
binary ropper Another gadget finder.
binary rp++ Another gadget finder.
binary rr Record and Replay Debugging Framework
binary scratchabit Easily retargetable and hackable interactive disassembler
binary scratchablock Yet another crippled decompiler project
binary seccomp-tools Provides powerful tools for seccomp analysis
binary shellnoob Shellcode writing helper.
binary shellsploit Shellcode development kit.
binary snowman Cross-architecture decompiler.
binary taintgrind A valgrind taint analysis tool.
binary valgrind A Dynamic Binary Instrumentation framwork with some built-in tools.
binary villoc Visualization of heap operations.
binary virtualsocket A nice library to interact with binaries.
binary wcc The Witchcraft Compiler Collection is a collection of compilation tools to perform binary black magic on the GNU/Linux and other POSIX platforms.
binary xrop Gadget finder.
binary manticore Manticore is a prototyping tool for dynamic binary analysis, with support for symbolic execution, taint analysis, and binary instrumentation.
forensics binwalk Firmware (and arbitrary file) analysis tool.
forensics dislocker Tool for reading Bitlocker encrypted partitions.
forensics exetractor Unpacker for packed Python executables. Supports PyInstaller and py2exe.
forensics firmware-mod-kit Tools for firmware packing/unpacking.
forensics pdf-parser Tool for digging in PDF files
forensics peepdf Powerful Python tool to analyze PDF documents.
forensics scrdec A decoder for encoded Windows Scripts.
forensics testdisk Testdisk and photorec for file recovery.
crypto cribdrag Interactive crib dragging tool (for crypto).
crypto fastcoll An md5sum collision generator.
crypto foresight A tool for predicting the output of random number generators. To run, launch "foresee".
crypto featherduster An automated, modular cryptanalysis tool.
crypto galois A fast galois field arithmetic library/toolkit.
crypto hashkill Hash cracker.
crypto hashpump A tool for performing hash length extension attaacks.
crypto hashpump-partialhash Hashpump, supporting partially-unknown hashes.
crypto hash-identifier Simple hash algorithm identifier.
crypto libc-database Build a database of libc offsets to simplify exploitation.
crypto littleblackbox Database of private SSL/SSH keys for embedded devices.
crypto msieve Msieve is a C library implementing a suite of algorithms to factor large integers.
crypto nonce-disrespect Nonce-Disrespecting Adversaries: Practical Forgery Attacks on GCM in TLS.
crypto pemcrack SSL PEM file cracker.
crypto pkcrack PkZip encryption cracker.
crypto python-paddingoracle Padding oracle attack automation.
crypto reveng CRC finder.
crypto ssh_decoder A tool for decoding ssh traffic. You will need ruby1.8 from https://launchpad.net/~brightbox/+archive/ubuntu/ruby-ng to run this. Run with ssh_decoder --help for help, as running it with no arguments causes it to crash.
crypto sslsplit SSL/TLS MITM.
crypto xortool XOR analysis tool.
crypto yafu Automated integer factorization.
web burpsuite Web proxy to do naughty web stuff.
web commix Command injection and exploitation tool.
web dirb Web path scanner.
web dirsearch Web path scanner.
web mitmproxy CLI Web proxy and python library.
web sqlmap SQL injection automation engine.
web subbrute A DNS meta-query spider that enumerates DNS records, and subdomains.
stego sound-visualizer Audio file visualization.
stego steganabara Another image steganography solver.
stego stegdetect Steganography detection/breaking tool.
stego stegsolve Image steganography solver.
stego zsteg detect stegano-hidden data in PNG & BMP.
android apktool Dissect, dis-assemble, and re-pack Android APKs
android android-sdk The android SDK (adb, emulator, etc).
misc xspy Tiny tool to spy on X sessions.
misc z3 Theorem prover from Microsoft Research.
misc jdgui Java decompiler.
misc veles Binary data analysis and visulalization tool.
misc youtube-dl Latest version of the popular youtube downloader.

There are also a couple of installers for useful libraries included. Currently only the python bindings for these libraries are installed.

Category Library Description
binary capstone Multi-architecture disassembly framework.
binary keystone Lightweight multi-architecture assembler framework.
binary unicorn Multi-architecture CPU emulator framework.
binary lief Library to Instrument Executable Formats.

There are also some installers for non-CTF stuff to break the monotony!

Category Tool Description
game Dwarf Fortress Something to help you relax after a CTF!
tor-browser tor-browser Useful when you need to hit a web challenge from different IPs.
pyvmmonitor pyvmmonitor PyVmMonitor is a profiler with a simple goal: being the best way to profile a Python program.

Usage

To use, do:

# set up the path
/path/to/ctf-tools/bin/manage-tools setup
source ~/.bashrc

# list the available tools
manage-tools list

# install gdb, allowing it to try to sudo install dependencies
manage-tools -s install gdb

# install pwntools, but don't let it sudo install dependencies
manage-tools install pwntools

# install qemu, but use "nice" to avoid degrading performance during compilation
manage-tools -n install qemu

# uninstall gdb
manage-tools uninstall gdb

# uninstall all tools
manage-tools uninstall all

# search for a tool
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). 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!

Something not working? I didn't write (almost) any of these tools, but hit up #ctf-tools on freenode if you're desperate. Maybe some kind soul will help!

Docker (version 1.7+)

By popular demand, a Dockerfile has been included. You can build a docker image with:

git clone https://github.com/zardus/ctf-tools
cd ctf-tools
docker build -t ctf-tools .

And run it with:

docker run -it ctf-tools

The built image will have ctf-tools cloned and ready to go, but you will still need to install the tools themselves (see above).

Alternatively, you can also pull ctf-tools (with some tools preinstalled) from dockerhub:

docker run -it zardus/ctf-tools

Vagrant

You can build a Vagrant VM with:

wget https://raw.githubusercontent.com/zardus/ctf-tools/master/Vagrantfile
vagrant up

And connect to it via:

vagrant ssh

Kali Linux

Kali Linux (Sana and Rolling), due to manually setting certain libraries to not use the latest version available (sometimes being out of date by years) causes some tools to not install at all, or fail in strange ways. AFL and Panda comes to mind, in fact any tool that uses QEMU 2.30 will probably fail during compilation under Kali. Overriding these libraries breaks other tools included in Kali so your only solution is to either live with some of Kali's tools being broken, or running another distribution seperately such as Ubuntu.

Most tools aren't affected though.

Adding Tools

To add a tool (say, named toolname), do the following:

  1. Create a toolname directory.
  2. Create an install script.
  3. (optional) if special uninstall steps are required, create an uninstall script.

Install Scripts

The install script will be run with $PWD being toolname. It should install the tool into this directory, in as contained a manner as possible. Ideally, full uninstallation should be possible with a git clean.

The install script should create a bin directory and put its executables there. These executables will be automatically linked into the main bin directory for the repo. They could be launched from any directory, so don't make assumptions about the location of $0!

License

The individual tools are all licensed under their own licenses. As for ctf-tools itself, it is "starware". If you find it useful, star it on github (https://github.com/zardus/ctf-tools).

Good luck!

See Also

There's a curated list of CTF tools, but without installers, here: https://github.com/apsdehal/aWEsoMe-cTf.

There's a Vagrant config with a lot of the bigger frameworks here: https://github.com/thebarbershopper/epictreasure.

Tools in the official Debian/Ubuntu repos

These tools are present in the Debian or Ubuntu repos (in an adequately new version). They're not included in ctf-tools, but are included here as notes for the author.

Category Package Description Package
forensics foremost File carver. foremost
dsniff dsniff Grabs passwords and other data from pcaps/network streams. dsniff
stego pngtools PNG's analysis tool.

Tools with unofficial Debian/Ubuntu repos or debs

Category Package Description Repo/deb
stego sound-visualizer Audio file visualization. deb