ctf-tools/README.md

102 lines
6.1 KiB
Markdown
Raw Normal View History

2015-05-07 20:29:51 +00:00
# ctf-tools
2015-05-07 11:02:00 +00:00
This is a collection of setup scripts to create an install of various security research tools.
2015-05-07 20:25:48 +00:00
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 |
|----------|------|-------------|
2015-05-08 05:08:43 +00:00
| binary | [afl](http://lcamtuf.coredump.cx/afl/) | State-of-the-art fuzzer. |
2015-05-14 05:29:52 +00:00
| binary | [barf](https://github.com/programa-stic/barf-project) | Binary Analysis and Reverse-engineering Framework. |
2015-05-14 19:49:06 +00:00
| binary | [bindead](https://bitbucket.org/mihaila/bindead/wiki/Home) | A static analysis tool for binaries. |
2015-05-08 05:08:43 +00:00
| binary | [checksec](https://github.com/slimm609/checksec.sh) | Check binary hardening settings. |
| binary | [crosstool-ng](http://crosstool-ng.org/) | Cross-compilers and cross-architecture tools. |
| binary | [gdb](http://www.gnu.org/software/gdb/) | Up-to-date gdb with python2 bindings. |
| binary | [peda](https://github.com/longld/peda) | Enhanced environment for gdb. |
| binary | [preeny](https://github.com/zardus/preeny) | A collection of helpful preloads (compiled for many architectures!). |
2015-05-08 06:08:30 +00:00
| binary | [villoc](https://github.com/wapiflapi/villoc) | Visualization of heap operations. |
2015-05-08 05:08:43 +00:00
| binary | [qemu](http://qemu.org) | Latest version of qemu! |
2015-05-08 02:24:30 +00:00
| binary | [pwntools](https://github.com/Gallopsled/pwntools) | Useful CTF utilities. |
2015-05-08 08:50:50 +00:00
| binary | [python-pin](https://github.com/blankwall/Python_Pin) | Python bindings for pin. |
2015-05-08 05:08:43 +00:00
| binary | [radare2](http://www.radare.org/) | Some crazy thing crowell likes. |
| binary | [shellnoob](https://github.com/reyammer/shellnoob) | Shellcode writing helper. |
2015-05-08 08:38:42 +00:00
| binary | [taintgrind](https://github.com/wmkhoo/taintgrind) | A valgrind taint analysis tool. |
2015-05-07 23:55:04 +00:00
| binary | [qira](http://qira.me) | Parallel, timeless debugger. |
2015-05-08 05:08:43 +00:00
| binary | [xrop](https://github.com/acama/xrop) | Gadget finder. |
2015-05-12 00:15:36 +00:00
| binary | [rp++](https://github.com/0vercl0k/rp) | Another gadget finder. |
2015-05-08 02:50:13 +00:00
| forensics | [binwalk](https://github.com/devttys0/binwalk.git) | Firmware (and arbitrary file) analysis tool. |
2015-05-10 07:24:34 +00:00
| forensics | [dislocker](http://www.hsc.fr/ressources/outils/dislocker/) | Tool for reading Bitlocker encrypted partitions. |
2015-05-08 05:08:43 +00:00
| forensics | [firmware-mod-kit](https://code.google.com/p/firmware-mod-kit/) | Tools for firmware packing/unpacking. |
| forensics | [testdisk](http://www.cgsecurity.org/wiki/TestDisk) | Testdisk and photorec for file recovery. |
2015-05-11 05:41:44 +00:00
| forensics | [pdf-parser](http://blog.didierstevens.com/programs/pdf-tools/) | Tool for digging in PDF files |
2015-05-08 05:08:43 +00:00
| crypto | [cribdrag](https://github.com/SpiderLabs/cribdrag) | Interactive crib dragging tool (for crypto). |
| crypto | [hashpump](https://github.com/bwall/HashPump) | A tool for performing hash length extension attaacks. |
2015-05-08 05:14:51 +00:00
| crypto | [hashpump-partialhash](https://github.com/mheistermann/HashPump-partialhash) | Hashpump, supporting partially-unknown hashes. |
2015-05-07 20:54:42 +00:00
| crypto | [hash-identifier](https://code.google.com/p/hash-identifier/source/checkout) | Simple hash algorithm identifier. |
2015-05-08 05:14:51 +00:00
| crypto | [littleblackbox](https://github.com/devttys0/littleblackbox) | Database of private SSL/SSH keys for embedded devices. |
2015-05-08 03:25:38 +00:00
| crypto | [pemcrack](https://github.com/robertdavidgraham/pemcrack) | SSL PEM file cracker. |
2015-05-08 03:37:57 +00:00
| crypto | [reveng](http://reveng.sourceforge.net/) | CRC finder. |
2015-05-08 03:28:48 +00:00
| crypto | [sslsplit](https://github.com/droe/sslsplit) | SSL/TLS MITM. |
2015-05-11 04:08:17 +00:00
| crypto | [python-paddingoracle](https://github.com/mwielgoszewski/python-paddingoracle) | Padding oracle attack automation. |
2015-05-08 05:08:43 +00:00
| crypto | [xortool](https://github.com/hellman/xortool) | XOR analysis tool. |
2015-05-14 21:37:56 +00:00
| web | [burp](http://portswigger.net/burp) | Web proxy to do naughty web stuff. |
2015-05-08 05:08:43 +00:00
| web | [dirs3arch](https://github.com/maurosoria/dirs3arch) | Web path scanner. |
| web | [sqlmap](http://sqlmap.org/) | SQL injection automation engine. |
2015-05-11 04:44:07 +00:00
| stego | [sound-visualizer](http://www.sonicvisualiser.org/) | Audio file visualization. |
2015-05-14 04:36:14 +00:00
| stego | [stegdetect](http://www.outguess.org/) | Steganography detection/breaking tool. |
2015-05-11 04:07:46 +00:00
| stego | [steganabara](http://www.caesum.com/handbook/stego.htm) | Antoher image steganography solver. |
2015-05-11 04:44:07 +00:00
| stego | [stegsolve](http://www.caesum.com/handbook/stego.htm) | Image steganography solver. |
2015-05-11 05:41:44 +00:00
| android | [APKTool](https://ibotpeaches.github.io/Apktool/) | Dissect, dis-assemble, and re-pack Android APKs |
2015-05-11 10:02:14 +00:00
2015-05-14 19:59:11 +00:00
There are also some installers for non-CTF stuff to break the monotony!
| Category | Tool | Description |
|----------|------|-------------|
| game | [Dwarf Fortress](http://www.bay12games.com/dwarves/) | Something to help you relax after a CTF! |
2015-05-11 10:02:14 +00:00
## Usage
To use, do:
```bash
# set up the path
2015-05-14 19:50:51 +00:00
/path/to/ctf-tools/bin/manage-tools setup
2015-05-11 10:02:14 +00:00
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
```
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 ctf`).
2015-05-08 01:01:30 +00:00
## 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 reuired, 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`!