- Notifications
You must be signed in to change notification settings - Fork1.9k
Some setup scripts for security research tools.
License
zardus/ctf-tools
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
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 fromhttps://launchpad.net/~brightbox/+archive/ubuntu/ruby-ng to run this. Run withssh_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 |
To use, do:
# set up the path/path/to/ctf-tools/bin/manage-tools setupsource~/.bashrc# list the available toolsmanage-tools list# install gdb, allowing it to try to sudo install dependenciesmanage-tools -s install gdb# install pwntools, but don't let it sudo install dependenciesmanage-tools install pwntools# install qemu, but use "nice" to avoid degrading performance during compilationmanage-tools -n install qemu# uninstall gdbmanage-tools uninstall gdb# uninstall all toolsmanage-tools uninstall all# search for a toolmanage-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 togit clean
(NOTE, this isNOT 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 thectf-tools/TOOL/pipx
orctf-tools/TOOL/gems
directories.
Something not working?I didn't write (almost) any of these tools, but hit upthe discord if you're desperate.Maybe some kind soul will help!
You can get most of these tools in prebuilt containers fromhttps://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_unknownobjhi==8==
You can build a docker image with:
git clone https://github.com/zardus/ctf-toolscd ctf-toolsdocker 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 (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.
To add a tool (say, namedtoolname), 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.
The install script will be run with$PWD
beingtoolname
. It should install the tool into this directory, in as contained a manner as possible.Ideally, full uninstallation should be possible with agit clean
.
The install script should create abin
directory and put its executables there.These executables will be automatically linked into the mainbin
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. |
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. |
Previously, this repository included some scripts that were wrappers arounddocker 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. |