This page describes the technical details for participation in FAUST CTF. If you're looking for a guide on how to get the Vulnbox running, have a look at Basic Vulnbox Hosting.
Vulnbox
The Vulnbox image will be available as an x86-64 image in OVA and QCOW2 format. This means it should run in VirtualBox, QEMU/KVM and other hypervisors. Support for hardware virtualization (VT-x) is highly recommended.
A test image to check your virtualization setup will be available. To also check your networking setup, the VPN will be online as soon as the test image is available.
Network
We will send out OpenVPN configs containing the required passwords when the VPN is online. OpenVPN is supposed to run on a router box under your responsibility. This might be another VM, the box which hosts the hypervisor, or a completely different machine.
You probably want to reach the competition network (your Vulnbox, flag submission etc.) from your team member's personal computers. The easiest way to achieve this is to use the "team network" IP space delegated to you (although you might want to firewall connections originating from the vulnbox to the team's computers).
IP Ranges Overview
- VPN routing networks:
10.65.<team_ID>.1
: Competiton gateway10.65.<team_ID>.2
: Team router
- Team networks:
10.66.<team_ID>.0/24
- Vulnbox:
10.66.<team_ID>.2
- Vulnbox:
- Competition infrastructure (flag submission etc.):
10.67.0.0/16
NOP Team
An unaltered Vulnbox to check your exploits against will be available with team ID 1 (i.e. IP 10.66.1.2
). No vulnerabilities will be patched on this machine, but it will receive new flags (which of course won't be valid for submission) and be checked by the Gameserver.
Exploitation
You will run attacks against other teams from your infrastructure, using your own tools.
Flag submission will be possible using a plaintext protocol on submission.faustctf.net:666
from within the competition network.
Flag Format
Flags will match this regular expression: FAUST_[A-Za-z0-9/\+]{32}
Service Status
The Gamerserver's checks for the functioning of a service have one of these results:
- up: Everything is working fine
- flag not found: The service seems to be working, but flags from past ticks cannot be retrieved
- recovering: Flags from more recent ticks can be retrieved, but flags from previous ticks are still missing
- faulty: The service is reachable, but not working correctly
- down: The service is not reachable at all, e.g. because the port is closed or a timeout occured