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 | Source | Tool | Description |
---|---|---|---|
binary | Directory | angr | Next-generation binary analysis engine from Shellphish. |
binary | Directory | angr-management | A GUI reverse engineering and decompilation tool. |
binary | Directory | crosstool-ng | Cross-compilers and cross-architecture tools. |
binary | Directory | cross2 | A set of cross-compilation tools from a Japanese book on C. |
binary | Directory | elfkickers | A set of utilities for working with ELF files. |
binary | Directory | elfparser | Quickly determine the capabilities of an ELF binary through static analysis. |
binary | Directory | evilize | Tool to create MD5 colliding binaries |
binary | Directory | gdb | Up-to-date gdb with python2 bindings. |
binary | Directory | gef | Enhanced environment for gdb. |
binary | Directory | hongfuzz | A general-purpose, easy-to-use fuzzer with interesting analysis options. |
binary | Directory | one_gadget | Magic gadget search for libc. |
binary | Directory | preeny | A collection of helpful preloads (compiled for many architectures!). |
binary | Directory | pwndbg | Enhanced environment for gdb. Especially for pwning. |
binary | Directory | pwntools | Useful CTF utilities. |
binary | Directory | qemu | Latest version of qemu! |
binary | Directory | qira | Parallel, timeless debugger. |
binary | Directory | rappel | A linux-based assembly REPL. |
binary | Directory | ropper | Another gadget finder. |
binary | Directory | rp++ | Another gadget finder. |
binary | Directory | seccomp-tools | Provides powerful tools for seccomp analysis |
binary | Directory | shellnoob | Shellcode writing helper. |
binary | Directory | shellsploit | Shellcode development kit. |
binary | Directory | snowman | Cross-architecture decompiler. |
binary | Directory | taintgrind | A valgrind taint analysis tool. |
binary | Directory | valgrind | A Dynamic Binary Instrumentation framework with some built-in tools. |
binary | Directory | villoc | Visualization of heap operations. |
binary | Directory | xrop | Gadget finder. |
binary | Directory | manticore | Manticore is a prototyping tool for dynamic binary analysis, with support for symbolic execution, taint analysis, and binary instrumentation. |
forensics | Directory | firmware-mod-kit | Tools for firmware packing/unpacking. |
forensics | Directory | pdf-parser | Tool for digging in PDF files |
forensics | Directory | peepdf | Powerful Python tool to analyze PDF documents. |
forensics | Directory | scrdec | A decoder for encoded Windows Scripts. |
crypto | Directory | codext | Python codecs extension featuring CLI tools for encoding/decoding anything including AI-based guessing mode. |
crypto | Directory | cribdrag | Interactive crib dragging tool (for crypto). |
crypto | Directory | fastcoll | An md5sum collision generator. |
crypto | Directory | foresight | A tool for predicting the output of random number generators. To run, launch "foresee". |
crypto | Directory | featherduster | An automated, modular cryptanalysis tool. WARNING: needs python2 (which can be installed with ctf-tools). |
crypto | Directory | galois | A fast galois field arithmetic library/toolkit. |
crypto | Directory | hashpump-partialhash | Hashpump, supporting partially-unknown hashes. |
crypto | Directory | hash-identifier | Simple hash algorithm identifier. |
crypto | Directory | libc-database | Build a database of libc offsets to simplify exploitation. |
crypto | Directory | msieve | Msieve is a C library implementing a suite of algorithms to factor large integers. |
crypto | Directory | nonce-disrespect | Nonce-Disrespecting Adversaries: Practical Forgery Attacks on GCM in TLS. |
crypto | Directory | pemcrack | SSL PEM file cracker. |
crypto | Directory | pkcrack | PkZip encryption cracker. |
crypto | Directory | reveng | CRC finder. |
crypto | Directory | 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 | Directory | sslsplit | SSL/TLS MITM. |
crypto | Directory | xortool | XOR analysis tool. |
crypto | Directory | yafu | Automated integer factorization. |
web | Directory | burpsuite | Web proxy to do naughty web stuff. |
web | Directory | commix | Command injection and exploitation tool. |
web | Directory | mitmproxy | CLI Web proxy and python library. |
web | Directory | subbrute | A DNS meta-query spider that enumerates DNS records, and subdomains. |
web | Directory | webgrep | grep for Web pages, with JS deobfuscation, CSS unminifying and OCR on images. |
stego | Directory | sound-visualizer | Audio file visualization. |
stego | Directory | steganabara | Another image stenography solver. |
stego | Directory | stegano-tools | A collection of text and image steganography tools (incl LSB, PVD, PIT). |
stego | Directory | stegdetect | Stenography detection/breaking tool. |
stego | Directory | stegsolve | Image stenography solver. |
stego | Directory | stegosaurus | A steganography tool for embedding arbitrary payloads in Python bytecode (pyc or pyo) files. |
stego | Directory | zsteg | detect stegano-hidden data in PNG & BMP. |
misc | Directory | xspy | Tiny tool to spy on X sessions. |
misc | Directory | jdgui | Java decompiler. |
misc | Directory | veles | Binary data analysis and visualization tool. |
misc | Directory | python2 | For when you really need it... |
There are also some installers for non-CTF stuff to break the monotony!
Category | Tool | Description |
---|---|---|
C magic | C-bind | A library used to enable function binding in C! |
game | Dwarf Fortress | Something to help you relax after a CTF! |
library collection | single_file_libs | A large collection of useful single file include libraries written for C/C++ |
dolphin | sudolphin | If your friend ever leaves their laptop unlocked, curl -sSL sh.sudolph.in | sh then wait and see! |
tor-browser | tor-browser | Useful when you need to hit a web challenge from different IPs. |
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).
Python and Ruby tools are installed in a tool-specific virtual environment.
If you want to add other packages to this environment, look under the ctf-tools/TOOL/pipx
or ctf-tools/TOOL/gems
directories.
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!
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
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 separately such as Ubuntu.
Most tools aren't affected though.
To add a tool (say, named toolname), do the following:
- Create a
toolname
directory. - Create an
install
script. - (optional) if special uninstall steps are required, create an
uninstall
script.
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
!
The individual tools are all licensed under their own licenses. As for ctf-tools itself, it is licensed under BSD 2-Clause License. If you find it useful, star it on github (https://github.com/zardus/ctf-tools).
Good luck!
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.
As tools get officially packaged, we switch to just suggesting that you apt install them!
Category | Source | Tool | Description |
---|---|---|---|
binary | apt | aflplusplus | State-of-the-art fuzzer. |
binary | apt | checksec | Check binary hardening settings. |
binary | apt | radare2 | Some crazy thing crowell likes. |
binary | apt | rr | Record and Replay Debugging Framework |
binary | apt | wcc | The Witchcraft Compiler Collection is a collection of compilation tools to perform binary black magic on the GNU/Linux and other POSIX platforms. |
forensics | apt | binwalk | Firmware (and arbitrary file) analysis tool. |
forensics | apt | foremost | File carver. |
forensics | apt | dislocker | Tool for reading Bitlocker encrypted partitions. |
forensics | apt | origami-pdf | PDF manipulator. |
forensics | apt | testdisk | Testdisk and photorec for file recovery. |
web | apt | dirb | Web path scanner. |
web | apt | dirsearch | Web path scanner. |
web | apt | sqlmap | SQL injection automation engine. |
stego | apt | pngtools | PNG's analysis tool. |
networking | apt | dsniff | Grabs passwords and other data from pcaps/network streams. |
networking | apt | bettercap | Network shenanigans swiss army knife. |
misc | apt | z3 | Theorem prover from Microsoft Research. |
Previously, this repository included some scripts that were wrappers around docker pull
.
We trust that you can do that yourself :-)
Category | Source | Tool | Description |
---|---|---|---|
binary | docker | panda | Platform for Architecture-Neutral Dynamic Analysis. |
stego | Docker | stego-toolkit | A docker image with dozens of steg tools. |
Previously, this repository included library installers. Because of how bespoke library install preferences are (e.g., unlike a tool, it's not clear if per-library venvs are a desired thing), we've stopped shipping them, and link them here for posterity.
Category | Source | Tool | Description |
---|---|---|---|
binary | Library | capstone | Multi-architecture disassembly framework. |
binary | Library | keystone | Lightweight multi-architecture assembler framework. |
binary | Library | lief | Library to Instrument Executable Formats. |
binary | Library | miasm | Reverse engineering framework in Python. |
binary | Library | unicorn | Multi-architecture CPU emulator framework. |
binary | Library | virtualsocket | A nice library to interact with binaries. |
crypto | Library | cryptanalib3 | The surviving core of featherduster cryptanalysis tool, updated for python3. |
crypto | Library | python-paddingoracle | Padding oracle attack automation. |