No longer maintained. A generalized version of picoCTF that can be easily adapted to host CTF or programming competitions
Shell Python
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
configs
picoCTF-problems @ 60bfbb7
picoCTF-shell-manager @ 4a933fd
picoCTF-web @ 1317dc9
scripts
.gitattributes
.gitignore
.gitmodules
LICENSE
README.md
Vagrantfile

README.md

picoCTF-platform

The latest code is at https://github.com/picoCTF/picoCTF. This repo is no longer maintained.

The picoCTF-platform is the infrastructure which is used to run picoCTF. The platform is designed to be easily adapted to other CTF or programming competitions.

Additional documentation can be found on the wiki. Quick Start

  1. git clone --recursive https://github.com/picoCTF/picoCTF-platform.git
  2. cd picoCTF-platform
  3. vagrant up
  4. Navigate to http://192.168.2.2/
  5. Register an account (this user will be the site administrator)

Current Development

The picoCTF-platform is actively being developed towards version 3 and additional documentation on significant platform changes are located on the wiki.

Project Overview

The picoCTF-platform is a superproject composed of three distinct git submodules (this is why you must use --recursive when you clone the project). The submodules are picoCTF-web, picoCTF-shell-manager, and picoCTF-problems. This repository (picoCTF-platform) consists of the necessary scripts and configurations to pull these three components together into a fully functional deployment for demonstration or development. In order to achieve this reproducible environment the project leverages Vagrant.

The picoCTF-web project consists of the competitor facing web site, the api for running a CTF, as well as management functionality for CTF organizers. This is deployed (via the Vagrantfile) as a virtual machine (web) at http://192.168.2.2/. For more information on this component of the picoCTF-platform please consult the documentation in the repository or on the wiki.

The picoCTF-shell-manager project consists of the hacksport library and the shell_manager utility which are used to create, package, and deploy challenges for use in a CTF. The Vagrantfile uses this to deploy a second virtual machine (shell) at 192.168.2.3. This shell-server is where challenge instances will be deployed and is also where competitors are provided an account for use in solving the challenges. For more information on this component of the picoCTF-platform please consult the documentation in the repository or on the wiki.

The picoCTF-problems project consists of CTF challenges that are compatible with picoCTF-platform. These challenges can be easily shared and deployed, or adapted for use in a CTF. When deployed the picoCTF-platform loads some example problems to demonstrate the features of both the web server and the shell-server. For more information on this component of the picoCTF-platform please consult the documentation in the repository or on the wiki.

Contact

We are happy to help but no support is guaranteed.

Authors: Tim Becker, Chris Ganas

Copyright: Carnegie Mellon University

License: MIT

Credits: David Brumley, Tim Becker, Chris Ganas, Peter Chapman, Jonathan Burket

Email: opensource@picoctf.com

Additional Credits

v1 Credits: Collin Petty, Tyler Nighswander, Garrett Barboza