
Erstelle deinen eigenen, absichtlich verwundbaren Spielplatz für AWS-Penetrationstests.

Hacking starten: CloudFoxable
Lies den Blog für weitere Details: Introducing CloudFoxable: A Gamified Cloud Hacking Sandbox
CloudFox hilft Penetrationstestern und Sicherheitsexperten, ausnutzbare Angriffspfade in Cloud-Infrastrukturen zu finden. Doch was, wenn du Dienste finden und ausnutzen möchtest, die in deiner aktuellen Umgebung noch nicht vorhanden sind? Was, wenn du keinen Zugang zu einer AWS-Unternehmensumgebung hast?
Hier kommt CloudFoxable ins Spiel: eine absichtlich verwundbare AWS-Umgebung, die speziell dafür entwickelt wurde, die Fähigkeiten von CloudFox zu demonstrieren und dir zu helfen, latente Angriffspfade effektiver zu finden. Inspiriert von CloudGoat, flaws.cloud, flaws2.cloud und Metasploitable 1-3 bietet CloudFoxable eine breite Palette an Flags und Angriffspfaden im CTF-Format.
Ähnlich wie CloudGoat und IAM-Vulnerable stellt CloudFoxable absichtlich verwundbare AWS-Ressourcen in einem benutzerverwalteten Spielplatz-Konto bereit, damit Nutzer lernen, Cloud-Schwachstellen zu identifizieren und auszunutzen. Allerdings ist deine Erfahrung – ähnlich wie bei flaws.cloud – stärker webbasiert und geführt.
CloudFoxable verwendet Terraform, um absichtlich verwundbare AWS-Infrastruktur bereitzustellen und zu verwalten. Dieser Abschnitt enthält die Mindestanleitung zum Installieren von Terraform sowie zum Bereitstellen, Ändern und Entfernen von CloudFoxable-Ressourcen.
Terraform muss lokal installiert sein, bevor CloudFoxable bereitgestellt wird.
Befolge die offizielle HashiCorp-Installationsanleitung für dein Betriebssystem:
https://developer.hashicorp.com/terraform/tutorials/aws-get-started/install-cli
Überprüfe die Installation:
terraform version
Eine erfolgreiche Installation gibt die Terraform-Version aus.
Bevor du Terraform ausführst:
aws configure, Umgebungsvariablen oder eine angenommene Rolle).Wichtig: CloudFoxable stellt absichtlich verwundbare Infrastruktur bereit. Setze dies nicht in Produktions-, Shared- oder Unternehmens-AWS-Konten ein.
Alle Terraform-Befehle sollten aus dem folgenden Verzeichnis ausgeführt werden:
cd cloudfoxable/aws
Initialisiere das Arbeitsverzeichnis und lade die erforderlichen Provider herunter:
Ähnlich wie bei IAM-Vulnerable sind einige Challenges standardmäßig aktiviert (diejenigen mit geringen oder keinen Kostenfolgen), andere standardmäßig deaktiviert (diejenigen, die bei der Bereitstellung Kosten verursachen). Auf diese Weise kannst du bei Bedarf bestimmte Module aktivieren. Der Mechanismus zum Aktivieren/Deaktivieren von Challenges unterscheidet sich jedoch etwas von IAM-Vulnerable.
Auf cloudfoxable.bishopfox.com teilt dir jede Challenge mit, ob du Terraform-Änderungen vornehmen musst (d. h. etwas bereitstellen musst), um die Challenge abzuschließen. Dazu bearbeitest du terraform.tfvars und setzt das enabled-Flag bei Bedarf von false auf true.
Hier ist ein Beispiel:
############################
# Enabled/Disabled Challenges
############################
# Always on (Low or No cost)
challenge_foo_enabled = true
challenge_bar_enabled = true
challenge_alice_enabled = true
# Enable as needed (These challenges incur cost)
challenge_bob_enabled = false
challenge_mallory_enabled = false
Um die mallory-Challenge zu aktivieren, musst du lediglich die folgende Zeile ändern:
challenge_mallory_enabled = true
Nachdem du eine Challenge aktiviert hast, musst du terraform apply erneut ausführen:
terraform apply
Du hast die mallory-Challenge nun bereitgestellt.
Bereinigung
Wann immer du alle von CloudFoxable erstellten Ressourcen entfernen möchtest, kannst du diese Befehle ausführen:
cd cloudfoxable/awsterraform destroyWenn du Windows verwendest, kannst du bei der Bereitstellung einiger Challenges aufgrund plattformspezifischer Einschränkungen auf Probleme stoßen. Um dies zu vermeiden, wird ein Dockerfile bereitgestellt, das dir hilft, die Anwendung in einer konsistenten Umgebung auf verschiedenen Systemen zu bauen und auszuführen.
Beginne damit, das Repository auf deinen lokalen Rechner zu klonen:
git clone https://github.com/BishopFox/cloudfoxable.git
cd cloudfoxable
Sobald du das Repository geklont hast, erstelle das Docker-Image mit dem folgenden Befehl. Dadurch wird sichergestellt, dass du einen frischen Build ohne zwischengespeicherte Layer verwendest:
docker build --no-cache -t cloudfoxable .
Wenn du Windows verwendest, nutze den folgenden PowerShell-Befehl, um den Docker-Container auszuführen. Dieser wird:
cd aws
docker run -it -v $env:USERPROFILE/.aws/credentials:/root/.aws/credentials -v ${PWD}:/cloudfoxable/aws cloudfoxable
https://github.com/iknowjason/Awesome-CloudSec-Labs
Wenn du eine neue Challenge hinzufügen möchtest, findest du hier die Schritte innerhalb von CloudFoxable, sobald du das Repository geforkt hast:
cp aws/challenges/1_challenge_template aws/challenges/challenge_namechallenge_name.tf in den Namen deiner Challenge um.variable "challenge_name_enabled" {
description = "Enable or disable challenge_name challenge (true = enabled, false = disabled)"
type = bool
default = false
}
terraform.tfvars.example hinzu. Gib an, ob sie standardmäßig aktiviert (geringe/keine Kosten) oder standardmäßig deaktiviert sein soll (kostet $$).
challenge_name_enabled = false
module "challenge_challenge_name" {
source = "./challenges/challenge-name"
count = var.challenge_name_enabled ? 1 : 0
aws_assume_role_arn = (var.aws_assume_role_arn != "" ? var.aws_assume_role_arn : data.aws_caller_identity.current.arn)
account_id = data.aws_caller_identity.current.account_id
aws_local_profile = var.aws_local_profile
user_ip = local.user_ip
}
enabled_challenges hinzu:
terraform init
Dies ist einmal pro Workspace erforderlich (oder wenn sich die Provider-Konfiguration ändert).
Um zu prüfen, was Terraform erstellen, ändern oder zerstören wird:
terraform plan
Um die derzeit aktivierten Challenges bereitzustellen:
terraform apply
Gib yes ein, wenn du zur Bestätigung aufgefordert wirst.
Um alle von CloudFoxable erstellten Ressourcen zu entfernen:
terraform destroy
Bestätige mit yes, wenn du dazu aufgefordert wirst.
| Befehl | Beschreibung |
|---|---|
terraform init | Initialisiert das Terraform-Projekt |
terraform plan | Zeigt vorgeschlagene Infrastrukturänderungen |
terraform apply | Erstellt oder aktualisiert Ressourcen |
terraform destroy | Entfernt alle bereitgestellten Ressourcen |
var.challenge_name_enabled ? "name | $12/month |" : ""