Top Related Projects
CTFs as you need them
A curated list of CTF frameworks, libraries, resources and softwares
CTF framework and exploit development library
Quick Overview
CTF-tools is a collection of security-related utilities for Capture The Flag (CTF) competitions. It provides a curated set of tools commonly used in CTFs, along with installation scripts and management features. This repository aims to simplify the process of setting up and maintaining a CTF toolset.
Pros
- Comprehensive collection of popular CTF tools
- Easy installation and management of tools
- Supports multiple operating systems (Linux, macOS)
- Regular updates and community contributions
Cons
- Some tools may be outdated or no longer maintained
- Installation process can be time-consuming for all tools
- Potential conflicts with existing system packages
- Limited documentation for individual tools
Getting Started
To get started with ctf-tools, follow these steps:
# Clone the repository
git clone https://github.com/zardus/ctf-tools.git
cd ctf-tools
# Install a tool (e.g., pwntools)
./ctf-tools-pip install pwntools
# List all available tools
./ctf-tools-pip list
# Update all installed tools
./ctf-tools-pip update
# Remove a tool
./ctf-tools-pip uninstall <tool-name>
Note: Make sure you have the necessary dependencies installed on your system before using ctf-tools. Refer to the repository's README for more detailed instructions and system-specific requirements.
Competitor Comparisons
CTFs as you need them
Pros of CTFd
- Complete CTF platform with web interface for hosting competitions
- Actively maintained with regular updates and a large community
- Scalable and customizable with plugin support
Cons of CTFd
- Focused on hosting CTFs rather than providing individual tools
- Steeper learning curve for setup and configuration
- Requires more resources to run compared to standalone tools
Code Comparison
CTFd (Python):
@challenges.route('/challenges', methods=['GET'])
@during_ctf_time_only
@require_verified_emails
def challenges_view():
infos = get_infos()
errors = get_errors()
return render_template('challenges.html', infos=infos, errors=errors)
ctf-tools (Bash):
#!/bin/bash
set -eu -o pipefail
if [[ $# -lt 1 ]]; then
echo "Usage: $0 <tool>"
exit 1
fi
CTFd is a full-featured CTF platform written in Python, while ctf-tools is a collection of scripts to install and manage individual CTF tools. CTFd provides a web interface and comprehensive competition management, whereas ctf-tools focuses on tool installation and management for CTF participants.
A curated list of CTF frameworks, libraries, resources and softwares
Pros of awesome-ctf
- More comprehensive list of CTF resources, including tools, websites, and learning materials
- Better organized into categories, making it easier to find specific types of tools
- Regularly updated with new resources and community contributions
Cons of awesome-ctf
- Lacks installation scripts or automated setup for tools
- Doesn't provide version information or compatibility details for listed tools
- Less focus on practical tool usage and more on resource aggregation
Code comparison
awesome-ctf:
## Forensics
*Tools used for solving Forensics challenges*
- [Aircrack-Ng](http://www.aircrack-ng.org/) - Crack 802.11 WEP and WPA-PSK keys
- [Audacity](http://sourceforge.net/projects/audacity/) - Analyze sound files (mp3, m4a, whatever)
ctf-tools:
#!/bin/bash -e
git clone https://github.com/devttys0/binwalk.git
cd binwalk
sudo python setup.py install
sudo apt-get install squashfs-tools
The code snippets highlight the difference in approach: awesome-ctf provides a curated list of tools with brief descriptions, while ctf-tools focuses on installation scripts for specific tools.
CTF framework and exploit development library
Pros of pwntools
- Comprehensive Python library specifically designed for exploit development and CTF challenges
- Extensive documentation and active community support
- Seamless integration with other Python libraries and tools
Cons of pwntools
- Steeper learning curve for beginners compared to ctf-tools
- Focused primarily on binary exploitation, may not cover all CTF categories
Code Comparison
pwntools:
from pwn import *
r = remote('example.com', 1337)
r.sendline(b'Hello, World!')
response = r.recvline()
log.info(f'Received: {response.decode()}')
ctf-tools:
# No direct code comparison available
# ctf-tools is a collection of installation scripts
./ctf-tools/bin/manage-tools install pwntools
Summary
pwntools is a powerful Python library for exploit development and CTF challenges, offering comprehensive features and extensive documentation. However, it has a steeper learning curve and focuses primarily on binary exploitation. ctf-tools, on the other hand, is a collection of installation scripts for various CTF tools, including pwntools, providing a broader range of utilities but lacking the direct coding capabilities of pwntools.
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
ctf-tools
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 every once in a while, so things should hopefully have a decent chance of working!
Installers for the following tools are included:
Category | Tool | Description |
---|---|---|
binary | angr | |
binary | angr-management | |
binary | beef | |
binary | crosstool | |
binary | cross2 | |
binary | decomp2dbg | |
binary | elfkickers | |
binary | elfparser | |
binary | evilize | |
binary | gdb | |
binary | gef | |
binary | ghidra | |
binary | honggfuzz | |
binary | ida | Decompilation and reversing tool (requires you to download it to ~/Downloads on your own!). |
binary | manticore | |
binary | one_gadget | |
binary | preeny | |
binary | pwninit | |
binary | pwndbg | |
binary | pwnsh | |
binary | pwntools | |
binary | qemu | |
binary | qiling | |
binary | qira | |
binary | rappel | |
binary | ropper | |
binary | rp++ | |
binary | seccomp-tools | |
binary | shellnoob | |
binary | taintgrind | |
binary | valgrind | |
binary | villoc | |
binary | xrop | |
forensics | firmware-mod-kit | |
forensics | pdf-parser | |
forensics | peepdf | |
forensics | scrdec18 | |
forensics | volatility | |
forensics | volatility3 | |
crypto | codext | |
crypto | cribdrag | |
crypto | fastcoll | |
crypto | foresight | |
crypto | featherduster | |
crypto | galois | |
crypto | hashpump-partialhash | |
crypto | hash-identifier | |
crypto | libc-database | |
crypto | msieve | |
crypto | nonce-disrespect | |
crypto | pemcrack | |
crypto | pkcrack | |
crypto | reveng | |
crypto | rsactftool | |
crypto | ssh_decoder | 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 | |
crypto | xortool | |
crypto | yafu | |
web | burpsuite | |
web | commix | |
web | mitmproxy | |
web | subbrute | |
web | webgrep | grep for Web pages, with JS deobfuscation, CSS unminifying and OCR on images. |
stego | steganabara | |
stego | stegano-tools | |
stego | stegdetect | |
stego | stegsolve | |
stego | stegosaurus | |
stego | zsteg | |
misc | jdgui | |
misc | python2 | |
misc | social-analyzer | |
misc | veles | |
misc | xspy |
There are also some installers for non-CTF stuff to break the monotony!
Category | Tool | Description |
---|---|---|
game | df | |
web | tor-browser |
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).
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.
Help!
Something not working? I didn't write (almost) any of these tools, but hit up the discord if you're desperate. Maybe some kind soul will help!
Dockerized Tools
Prebuilt Tool Containers
You can get most of these tools in prebuilt containers from https://hub.docker.com/r/ctftools. For example:
$ echo hi | docker run -i ctftools/taintgrind taintgrind --taint-stdin=yes /bin/cat
/home/ctf/tools/taintgrind/valgrind-3.21.0/build/bin/valgrind --tool=taintgrind --taint-stdin=yes /bin/cat
==8== Taintgrind, the taint analysis tool
==8== Copyright (C) 2010-2018, and GNU GPL'd, by Wei Ming Khoo.
==8== Using Valgrind-3.21.0 and LibVEX; rerun with -h for copyright info
==8== Command: /bin/cat
==8==
0xFFFFFFFF: _syscall_read | Read:3 | 0x0 | 4a5a000_unknownobj
hi
==8==
Building Your Own
You can build a docker image with:
git clone https://github.com/zardus/ctf-tools
cd ctf-tools
docker build -t ctf-tools --build-arg PREINSTALLED=some-tool .
And run it with:
docker run -it ctf-tools
The built image will have ctf-tools cloned and ready to go and your tool installed.
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. 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, use docker, or running another distribution separately such as Ubuntu.
Adding Tools
To add a tool (say, named toolname), do the following:
- Create a
toolname
directory. - Create an
install
script. - Add it to the readme.
- (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 licensed under BSD 2-Clause License. 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.
Useful CTF tools in apt repos
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. |
stego | apt | sonic-visualizer | Audio file visualization. |
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. |
Useful CTF tools in docker images
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. |
Useful CTF Libraries
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. |
Top Related Projects
CTFs as you need them
A curated list of CTF frameworks, libraries, resources and softwares
CTF framework and exploit development library
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot