Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/picatz/competition-practice-env

🌩 Cloud infrastructure-as-code for attack and defense CTFs on GCP
https://github.com/picatz/competition-practice-env

cloud ctf-platform google-cloud-platform linux packer terraform windows

Last synced: about 1 month ago
JSON representation

🌩 Cloud infrastructure-as-code for attack and defense CTFs on GCP

Awesome Lists containing this project

README

        

# competition-practice-env

[![Actions Status](https://github.com/picatz/competition-practice-env/workflows/CI/badge.svg)](https://github.com/picatz/competition-practice-env/actions)

[![Open in Cloud Shell](https://gstatic.com/cloudssh/images/open-btn.svg)](https://ssh.cloud.google.com/cloudshell/editor?cloudshell_git_repo=https%3A%2F%2Fgithub.com%2Fpicatz%2Fcompetition-practice-env&open_in_editor=README.md)

Read the wiki [here](https://github.com/picatz/competition-practice-env/wiki).


scoreboard


scoreboard


diagram

The scoring engine application, like the rest of the infrastructure, is [defined as HCL](https://github.com/picatz/competition-practice-env/blob/master/scoring_engine/template/service_registry.hcl):

```hcl
server {
ip = "0.0.0.0"
port = "6767"
}

scoring_interval = "1m"

state {
save_interval = "5m"
save_path = "/tmp/service-registry.json"
}

team "team-1" {
service "http" {
protocol = "tcp"
ip = "192.168.1.2"
port = 80
}

service "ssh" {
protocol = "tcp"
ip = "192.168.1.3"
port = 22
}

service "rdp" {
protocol = "tcp"
ip = "192.168.1.4"
port = 3389
}
}

team "team-2" {
service "http" {
protocol = "tcp"
ip = "192.168.2.2"
port = 80
}

service "ssh" {
protocol = "tcp"
ip = "192.168.2.3"
port = 22
}

service "rdp" {
protocol = "tcp"
ip = "192.168.2.4"
port = 3389
}
}

```