No description
Find a file
2017-01-12 11:10:47 +01:00
afl Split install-root scripts into distribution specific ones 2016-06-06 15:11:08 +02:00
android-sdk Split install-root scripts into distribution specific ones 2016-06-06 15:11:08 +02:00
angr use the new ctf-tools-venv-activate 2016-10-11 02:07:57 -07:00
apktool set +x for install-root-* scripts 2016-10-13 19:04:58 -07:00
barf Use ctftools virtualenv instead of system pip 2016-09-23 13:51:50 +00:00
beef Split install-root scripts into distribution specific ones 2016-06-06 15:11:08 +02:00
bin apparently the order of bash fd redirections matters... 2016-11-15 15:25:11 +01:00
bindead Split install-root scripts into distribution specific ones 2016-06-06 15:11:08 +02:00
binwalk Use ctftools virtualenv instead of system pip 2016-09-23 13:51:50 +00:00
burpsuite Split install-root scripts into distribution specific ones 2016-06-06 15:11:08 +02:00
capstone Use no-use-wheel to fix capstone installation 2016-09-23 09:28:52 +00:00
checksec use shallow clones to speed things up and reduce disk space usage 2015-12-09 14:42:41 -08:00
codereason Split install-root scripts into distribution specific ones 2016-06-06 15:11:08 +02:00
commix use shallow clones to speed things up and reduce disk space usage 2015-12-09 14:42:41 -08:00
cribdrag use shallow clones to speed things up and reduce disk space usage 2015-12-09 14:42:41 -08:00
cross2 remove tar verbosity 2016-02-04 14:33:05 -08:00
crosstool Split install-root scripts into distribution specific ones 2016-06-06 15:11:08 +02:00
df Updating Tools 2016-08-24 23:21:47 +10:00
dirb update path to dirb 2016-12-24 20:30:22 -08:00
dirsearch apparently dirs3arch was renamed to dirsearch 2016-06-01 13:51:19 +02:00
dislocker Split install-root scripts into distribution specific ones 2016-06-06 15:11:08 +02:00
elfkickers use shallow clones to speed things up and reduce disk space usage 2015-12-09 14:42:41 -08:00
elfparser Split install-root scripts into distribution specific ones 2016-06-06 15:11:08 +02:00
evilize Made scripts executable 2015-09-23 03:41:17 +10:00
exetractor use shallow clones to speed things up and reduce disk space usage 2015-12-09 14:42:41 -08:00
featherduster Added featherduster cryptanalysis library/tool 2016-08-13 15:42:41 +02:00
firmware-mod-kit Split install-root scripts into distribution specific ones 2016-06-06 15:11:08 +02:00
foresight added -y switches to uninstall 2016-05-04 20:01:02 +02:00
gdb don't use 'set -u' when sourcing ctf-tools-venv-activate 2016-10-13 19:04:58 -07:00
gdb-heap added gdb-heap gdb extension 2017-01-12 11:10:47 +01:00
gef peda/gef/pwndbg: make sure ~/.gdbinit exits before grep. just to make sure. 2016-10-13 19:04:58 -07:00
hash-identifier Split install-root scripts into distribution specific ones 2016-06-06 15:11:08 +02:00
hashkill set +x for install-root-* scripts 2016-10-13 19:04:58 -07:00
hashpump Split install-root scripts into distribution specific ones 2016-06-06 15:11:08 +02:00
hashpump-partialhash Split install-root scripts into distribution specific ones 2016-06-06 15:11:08 +02:00
honggfuzz Split install-root scripts into distribution specific ones 2016-06-06 15:11:08 +02:00
jdgui adding jd-gui 2016-10-11 02:46:10 -07:00
keystone avoid realpath, as apparently it's not standard... 2016-10-13 19:04:58 -07:00
libheap use bash -e to catch errors 2016-10-13 01:06:35 -07:00
littleblackbox Split install-root scripts into distribution specific ones 2016-06-06 15:11:08 +02:00
mitmproxy added -y switches to uninstall 2016-05-04 20:01:02 +02:00
msieve Update wget link 2016-12-15 23:51:07 +05:30
panda Use ctftools virtualenv instead of system pip 2016-09-23 13:51:50 +00:00
pathgrind Split install-root scripts into distribution specific ones 2016-06-06 15:11:08 +02:00
pdf-parser Update install to 0.6.4, added https 2015-10-29 00:14:12 +11:00
peda peda/gef/pwndbg: make sure ~/.gdbinit exits before grep. just to make sure. 2016-10-13 19:04:58 -07:00
peepdf added peepdf 2016-04-04 17:31:30 -07:00
pemcrack use shallow clones to speed things up and reduce disk space usage 2015-12-09 14:42:41 -08:00
pkcrack reduce tar verbosity 2015-12-09 14:28:28 -08:00
preeny use shallow clones to speed things up and reduce disk space usage 2015-12-09 14:42:41 -08:00
pwndbg don't use 'set -u' when sourcing ctf-tools-venv-activate 2016-10-13 19:04:58 -07:00
pwntools install software-properties-common to add pwntools-binutils ppa on ubuntu 2016-06-06 18:23:40 +02:00
python-paddingoracle added missing uninstall scripts for tools installed via pip 2016-06-01 13:29:53 +02:00
python-pin use shallow clones to speed things up and reduce disk space usage 2015-12-09 14:42:41 -08:00
pyvmmonitor update pyvmmonitor url 2016-10-11 02:51:00 -07:00
qemu build qemu also with python from virtualenv 2016-10-13 19:04:58 -07:00
qira Split install-root scripts into distribution specific ones 2016-06-06 15:11:08 +02:00
radare2 fixed r2 install 2016-12-30 20:29:33 +01:00
reveng Updating Tools 2016-08-24 23:21:47 +10:00
ropper Use ctftools virtualenv instead of system pip 2016-09-23 13:51:50 +00:00
rp++ Add rp++ as an installable tool 2015-05-11 17:15:36 -07:00
scrdec18 added scrdec for decoding windows script files 2015-09-05 01:10:38 -07:00
shellnoob use shallow clones to speed things up and reduce disk space usage 2015-12-09 14:42:41 -08:00
shellsploit Use ctftools virtualenv instead of system pip 2016-09-23 13:51:50 +00:00
snowman Updating Tools 2016-08-24 23:21:47 +10:00
sonic-visualizer Split install-root scripts into distribution specific ones 2016-06-06 15:11:08 +02:00
sqlmap Use ctftools virtualenv instead of system pip 2016-09-23 13:51:50 +00:00
ssh_decoder use shallow clones to speed things up and reduce disk space usage 2015-12-09 14:42:41 -08:00
sslsplit Split install-root scripts into distribution specific ones 2016-06-06 15:11:08 +02:00
steganabara reduce tar verbosity 2015-12-09 14:28:28 -08:00
stegdetect stegdetect doesn't build on archlinux, the install-root script will always fail... 2016-11-15 15:27:53 +01:00
stegsolve added stegsolve 2015-05-10 00:18:56 -07:00
subbrute use shallow clones to speed things up and reduce disk space usage 2015-12-09 14:42:41 -08:00
taintgrind use shallow clones to speed things up and reduce disk space usage 2015-12-09 14:42:41 -08:00
testdisk Use HTTPS if supported 2015-12-19 13:22:23 -08:00
tor-browser added tor browser 2016-07-02 03:34:54 -07:00
unicorn unicorn added test script 2016-10-13 19:04:58 -07:00
veles Added veles/install-root-archlinux 2016-12-30 13:47:33 +01:00
villoc use shallow clones to speed things up and reduce disk space usage 2015-12-09 14:42:41 -08:00
virtualsocket Use ctftools virtualenv instead of system pip 2016-09-23 13:51:50 +00:00
wcc Added witchcraft compiler collection 2016-08-13 16:22:58 +02:00
xortool added -y switches to uninstall 2016-05-04 20:01:02 +02:00
xrop use shallow clones to speed things up and reduce disk space usage 2015-12-09 14:42:41 -08:00
yafu Use HTTPS if supported 2015-12-19 13:22:23 -08:00
z3 Add z3 theorem prover 2016-09-21 12:03:01 +00:00
zsteg Install ruby for zsteg 2016-12-30 14:12:21 +01:00
.dockerignore dockerfile 2015-11-03 18:27:49 -08:00
.gitignore Split install-root scripts into distribution specific ones 2016-06-06 15:11:08 +02:00
.travis.yml use verbosity for qemu to avoid timing out 2016-10-11 02:06:36 -07:00
Dockerfile switched to useradd instead of adduser in Dockerfile 2016-06-06 16:29:46 +02:00
Dockerfile.archlinux Added Dockerfile for archlinux based container. 2016-06-06 18:19:16 +02:00
README.md Create install.sh 2017-01-10 18:57:04 -08:00
TODO Update TODO 2015-10-29 16:24:49 +11:00
Vagrantfile Add Vagrantfile 2015-12-18 00:04:37 -08:00

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.

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 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 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 ropper Another gadget finder.
binary rp++ Another gadget finder.
binary shellnoob Shellcode writing helper.
binary shellsploit Shellcode development kit.
binary snowman Cross-architecture decompiler.
binary taintgrind A valgrind taint analysis tool.
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.
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 foresight A tool for predicting the output of random number generators. To run, launch "foresee".
crypto featherduster An automated, modular cryptanalysis tool.
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 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 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 z3 Theorem prover from Microsoft Research.
misc jdgui Java decompiler.
misc veles Binary data analysis and visulalization tool.

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. |

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

# 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
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