Exploit farm for attack-defense CTF competition
Quick Start • Features • Components
- Docker
- Docker Compose
- Make
-
Configure config.yml for your competition. A detailed description of the quick configuration is here
-
Start the farm
make upCredentials for basic auth and the token for sending flags via start_exploit.py will be printed to stdout.
- After the game ends, turn off the farm and clean the database and queue
make down
make clean-all- Uploading exploits in ui
- Real-time configuration farm options like number of concurrently running exploits, the size of the flag sending batch, team ip addresses, etc
- The ability to change the plugin for sending flags to jury.
- There are already two sending plugins: forcad_http and saarctf_tcp.
- Different exploit types:
- Python (one file)
- Python (zip)
- Bash script
- Binary
- View logs of running exploits and sending flags on ui
- Configuring vulnboxes ip addresses using various methods
- Frontend - ui for
- viewing flags with any filters
- adding exploits of different types via '+' button
- deleting or updating exploits by right mouse button
- adding teams
- updating farm config
- viewing logs
- start_exploit.py - python cli tool for starting exploits on local machine (TODO)
- Exploit Runner - a worker that launches exploits on all teams. More details
- Flag Sender - a worker that sends flags to jury using Plugins. More details
- JacFARM API - API for frontend and cli start_exploit.py.
- Config Loader - loads config into db from config.yml on start. Next configuration editing is available through the frontend.
Plugin - is a function in a farm that sends flags to the jury system.

