All Projects → CTFd → Ctfcli

CTFd / Ctfcli

Licence: apache-2.0
ctfcli is a tool to manage Capture The Flag events and challenges

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Ctfcli

bento
Bento Toolkit is a minimal fedora-based container for penetration tests and CTF with the sweet addition of GUI applications.
Stars: ✭ 74 (+72.09%)
Mutual labels:  ctf, ctf-tools
Crypton
Library consisting of explanation and implementation of all the existing attacks on various Encryption Systems, Digital Signatures, Key Exchange, Authentication methods along with example challenges from CTFs
Stars: ✭ 995 (+2213.95%)
Mutual labels:  ctf, ctf-tools
pwnscripts
Very simple script(s) to hasten binary exploit creation
Stars: ✭ 66 (+53.49%)
Mutual labels:  ctf, ctf-tools
Ciphey
⚡ Automatically decrypt encryptions without knowing the key or cipher, decode encodings, and crack hashes ⚡
Stars: ✭ 9,116 (+21100%)
Mutual labels:  ctf, ctf-tools
Stegcracker
Steganography brute-force utility to uncover hidden data inside files
Stars: ✭ 396 (+820.93%)
Mutual labels:  ctf, ctf-tools
TomatoTools
TomatoTools 一款CTF杂项利器,支持36种常见编码和密码算法的加密和解密,31种密文的分析和识别,支持自动提取flag,自定义插件等。
Stars: ✭ 66 (+53.49%)
Mutual labels:  ctf, ctf-tools
Crypto
封装多种CTF和平时常见加密及编码C#类库
Stars: ✭ 20 (-53.49%)
Mutual labels:  ctf, ctf-tools
haiti
🔑 Hash type identifier (CLI & lib)
Stars: ✭ 287 (+567.44%)
Mutual labels:  ctf, ctf-tools
Awd Predator Framework
AWD攻防赛webshell批量利用框架
Stars: ✭ 265 (+516.28%)
Mutual labels:  ctf, ctf-tools
soma
Cross-platform CTF problem container manager
Stars: ✭ 23 (-46.51%)
Mutual labels:  ctf, ctf-tools
ctf4noobs
Resumão da massa sobre Capture the Flag.
Stars: ✭ 18 (-58.14%)
Mutual labels:  ctf, ctf-tools
Name That Hash
🔗 Don't know what type of hash it is? Name That Hash will name that hash type! 🤖 Identify MD5, SHA256 and 3000+ other hashes ☄ Comes with a neat web app 🔥
Stars: ✭ 540 (+1155.81%)
Mutual labels:  ctf, ctf-tools
ImageStrike
ImageStrike是一款用于CTF中图片隐写的综合利用工具
Stars: ✭ 118 (+174.42%)
Mutual labels:  ctf, ctf-tools
BerylEnigma
一个为渗透测试与CTF而制作的工具集,主要实现一些加解密的功能。
Stars: ✭ 329 (+665.12%)
Mutual labels:  ctf, ctf-tools
Auto-AWD
🚩 CTF AWD framework
Stars: ✭ 24 (-44.19%)
Mutual labels:  ctf, ctf-tools
blackhat-python
Black Hat Python workshop for Disobey 2019
Stars: ✭ 27 (-37.21%)
Mutual labels:  ctf, ctf-tools
axion
A toolkit for CTFs
Stars: ✭ 15 (-65.12%)
Mutual labels:  ctf, ctf-tools
CryptionTool
一个CTF+渗透测试工具框架,集成常见加解密,密码、编码转换,端口扫描,字符处理等功能
Stars: ✭ 62 (+44.19%)
Mutual labels:  ctf, ctf-tools
CTF-Game
Capture the flag Game
Stars: ✭ 14 (-67.44%)
Mutual labels:  ctf, ctf-tools
Security Tools
Collection of small security tools, mostly in Bash and Python. CTFs, Bug Bounty and other stuff.
Stars: ✭ 509 (+1083.72%)
Mutual labels:  ctf, ctf-tools

ctfcli

ctfcli is a tool to manage Capture The Flag events and challenges.

ctfcli provides challenge specifications and templates to make it easier to generate challenges of different categories. It also provides an integration with the CTFd REST API to allow for command line uploading of challenges and integration with CI/CD build systems.

ctfcli features tab completion, a REPL interface (thanks to Python-Fire) and plugin support for custom commands.

WIP: ctfcli is an alpha project and changes will happen. Be sure to pin versions and read the CHANGELOG when updating.

Installation and Usage

ctfcli can be installed with pip install ctfcli

1. Create an Event

ctfcli turns the current folder into a CTF event git repo. It asks for the base url of the CTFd instance you're working with and an access token.

❯ ctf init
Please enter CTFd instance URL: https://demo.ctfd.io
Please enter CTFd Admin Access Token: d41d8cd98f00b204e9800998ecf8427e
Do you want to continue with https://demo.ctfd.io and d41d8cd98f00b204e9800998ecf8427e [y/N]: y
Initialized empty Git repository in /Users/user/Downloads/event/.git/

This will create the .ctf folder with the config file that will specify the URL, access token, and keep a record of all the challenges dedicated for this event.

2. Add challenges

Events are made up of challenges. Challenges can be made from a subdirectory or pulled from another repository. Remote challenges are pulled into the event repo and a reference is kept in the .ctf/config file.

❯ ctf challenge add [REPO | FOLDER]
❯ ctf challenge add crypto/stuff
❯ ctf challenge add https://github.com/challenge.git
challenge
Cloning into 'challenge'...
remote: Enumerating objects: 624, done.
remote: Counting objects: 100% (624/624), done.
remote: Compressing objects: 100% (540/540), done.
remote: Total 624 (delta 109), reused 335 (delta 45), pack-reused 0
Receiving objects: 100% (624/624), 6.49 MiB | 21.31 MiB/s, done.
Resolving deltas: 100% (109/109), done.

3. Install challenges

Installing a challenge will automatically create the challenge in your CTFd instance using the API.

❯ ctf challenge install [challenge.yml | DIRECTORY]
❯ ctf challenge install buffer_overflow
Found buffer_overflow/challenge.yml
Loaded buffer_overflow
Installing buffer_overflow
Success!

4. Update challenges

Syncing a challenge will automatically update the challenge in your CTFd instance using the API. Any changes made in the challenge.yml file will be reflected in your instance.

❯ ctf challenge sync [challenge.yml | DIRECTORY]
❯ ctf challenge sync buffer_overflow
Found buffer_overflow/challenge.yml
Loaded buffer_overflow
Syncing buffer_overflow
Success!

Challenge Templates

ctfcli contains pre-made challenge templates to make it faster to create CTF challenges with safe defaults.

ctf challenge new
                ├── binary
                ├── crypto
                ├── programming
                └── web
❯ ctf challenge new binary
/Users/user/.virtualenvs/ctfcli/lib/python3.7/site-packages/ctfcli-0.0.1-py3.7.egg/ctfcli/templates/binary/default
name [Hello]: buffer_overflow

❯ ls -1 buffer_overflow
Makefile
README.md
WRITEUP.md
challenge.yml
dist/
src/

Contributions welcome on improving the challenge templates to make CTF challenges better for everyone!

Challenge Specification

ctfcli provides a challenge specification (challenge.yml) that outlines the major details of a challenge.

Every challenge generated by or processed by ctfcli should have a challenge.yml file.

The specification format has already been tested and used with CTFd in production events but comments, suggestions, and PRs are welcome on the format of challenge.yml.

Plugins

ctfcli plugins are essentially additions to to the command line interface via dynamic class modifications. See the plugin documentation page for a simple example.

ctfcli is an alpha project! The plugin interface is likely to change!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].