Skip to content

Latest commit

History

260 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

ctf-tools

Build StatusIRC

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:

CategoryToolDescription
binaryaflState-of-the-art fuzzer.
binaryangrNext-generation binary analysis engine from Shellphish.
binarybarfBinary Analysis and Reverse-engineering Framework.
binarybindeadA static analysis tool for binaries.
binarychecksecCheck binary hardening settings.
binarycodereasonSemantic Binary Code Analysis Framework.
binarycrosstool-ngCross-compilers and cross-architecture tools.
binarycross2A set of cross-compilation tools from a Japanese book on C.
binaryelfkickersA set of utilities for working with ELF files.
binaryelfparserQuickly determine the capabilities of an ELF binary through static analysis.
binaryevilizeTool to create MD5 colliding binaries
binarygdbUp-to-date gdb with python2 bindings.
binarypandaPlatform for Architecture-Neutral Dynamic Analysis.
binarypathgrindPath-based, symbolically-assisted fuzzer.
binarypedaEnhanced environment for gdb.
binarypreenyA collection of helpful preloads (compiled for many architectures!).
binarypwntoolsUseful CTF utilities.
binarypython-pinPython bindings for pin.
binaryqemuLatest version of qemu!
binaryqiraParallel, timeless debugger.
binaryradare2Some crazy thing crowell likes.
binaryrp++Another gadget finder.
binaryshellnoobShellcode writing helper.
binaryshellsploitShellcode development kit.
binarysnowmanCross-architecture decompiler.
binarytaintgrindA valgrind taint analysis tool.
binaryvillocVisualization of heap operations.
binaryvirtualsocketA nice library to interact with binaries.
binaryxropGadget finder.
forensicsbinwalkFirmware (and arbitrary file) analysis tool.
forensicsdislockerTool for reading Bitlocker encrypted partitions.
forensicsexetractorUnpacker for packed Python executables. Supports PyInstaller and py2exe.
forensicsfirmware-mod-kitTools for firmware packing/unpacking.
forensicspdf-parserTool for digging in PDF files
forensicsscrdecA decoder for encoded Windows Scripts.
forensicstestdiskTestdisk and photorec for file recovery.
cryptocribdragInteractive crib dragging tool (for crypto).
cryptoforesightA tool for predicting the output of random number generators. To run, launch "foresee".
cryptohashpumpA tool for performing hash length extension attaacks.
cryptohashpump-partialhashHashpump, supporting partially-unknown hashes.
cryptohash-identifierSimple hash algorithm identifier.
cryptolittleblackboxDatabase of private SSL/SSH keys for embedded devices.
cryptomsieveMsieve is a C library implementing a suite of algorithms to factor large integers.
cryptopemcrackSSL PEM file cracker.
cryptopkcrackPkZip encryption cracker.
cryptopython-paddingoraclePadding oracle attack automation.
cryptorevengCRC finder.
cryptossh_decoderA 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.
cryptosslsplitSSL/TLS MITM.
cryptoxortoolXOR analysis tool.
cryptoyafuAutomated integer factorization.
webburpsuiteWeb proxy to do naughty web stuff.
webcommixCommand injection and exploitation tool.
webdirs3archWeb path scanner.
websqlmapSQL injection automation engine.
websubbruteA DNS meta-query spider that enumerates DNS records, and subdomains.
stegosound-visualizerAudio file visualization.
stegosteganabaraAnother image steganography solver.
stegostegdetectSteganography detection/breaking tool.
stegostegsolveImage steganography solver.
androidapktoolDissect, dis-assemble, and re-pack Android APKs

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

CategoryToolDescription
gameDwarf FortressSomething to help you relax after a CTF!

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

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

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

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

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.

CategoryPackageDescriptionPackage
forensicsforemostFile carver.foremost
dsniffdsniffGrabs passwords and other data from pcaps/network streams.dsniff

Tools with unofficial Debian/Ubuntu repos or debs

CategoryPackageDescriptionRepo/deb
stegosound-visualizerAudio file visualization.deb

About

Some setup scripts for security research tools.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages