
Crea il tuo playground di penetration testing AWS vulnerabile by design

Inizia a fare hacking: CloudFoxable
Leggi il blog per maggiori dettagli: Presentazione di CloudFoxable: una sandbox gamificata per l'hacking cloud
CloudFox aiuta i penetration tester e i professionisti della sicurezza a individuare percorsi di attacco sfruttabili nell'infrastruttura cloud. Tuttavia, cosa succede se vuoi trovare e sfruttare servizi non ancora presenti nel tuo ambiente attuale? E se non hai accesso a un ambiente AWS aziendale?
Ecco CloudFoxable, un ambiente AWS volutamente vulnerabile creato appositamente per mostrare le capacità di CloudFox e aiutarti a individuare percorsi di attacco latenti in modo più efficace. Ispirandosi a CloudGoat, flaws.cloud, flaws2.cloud e Metasploitable 1-3, CloudFoxable offre un'ampia gamma di flag e percorsi di attacco in formato CTF.
Analogamente a CloudGoat e IAM-Vulnerable, CloudFoxable distribuisce risorse AWS volutamente vulnerabili in un account playground gestito dall'utente, affinché gli utenti imparino a identificare e sfruttare le vulnerabilità cloud. Tuttavia, più simile a flaws.cloud, la tua esperienza è più basata sul web e guidata.
CloudFoxable usa Terraform per distribuire e gestire infrastrutture AWS volutamente vulnerabili. Questa sezione fornisce le indicazioni minime necessarie per installare Terraform e per distribuire, modificare e rimuovere le risorse di CloudFoxable.
Terraform deve essere installato localmente prima di distribuire CloudFoxable.
Segui la guida ufficiale all'installazione di HashiCorp per il tuo sistema operativo:
https://developer.hashicorp.com/terraform/tutorials/aws-get-started/install-cli
Verifica l'installazione:
terraform version
Un'installazione riuscita stamperà la versione di Terraform.
Prima di eseguire Terraform:
aws configure, variabili d'ambiente o un ruolo assumibile).Importante: CloudFoxable distribuisce infrastrutture volutamente vulnerabili. Non distribuirlo in account AWS di produzione, condivisi o aziendali.
Tutti i comandi Terraform devono essere eseguiti dalla seguente directory:
cd cloudfoxable/aws
Inizializza la directory di lavoro e scarica i provider richiesti:
Analogamente a IAM-Vulnerable, alcune sfide sono abilitate per impostazione predefinita (quelle che hanno costi nulli o minimi), mentre altre sono disabilitate per impostazione predefinita (quelle che comportano costi se distribuite). In questo modo, puoi abilitare moduli specifici quando necessario. Il meccanismo per abilitare/disabilitare le sfide è comunque un po' diverso da IAM-Vulnerable.
All'interno di cloudfoxable.bishopfox.com, ogni sfida ti dirà se devi apportare modifiche a Terraform (ovvero distribuire qualcosa) per completare la sfida. Il modo per farlo è modificare terraform.tfvars e aggiornare il flag enabled da false a true secondo necessità.
Ecco un esempio:
############################
# 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
Per abilitare la sfida mallory, ti basterà aggiornare la seguente riga:
challenge_mallory_enabled = true
Dopo aver abilitato una sfida, dovrai rieseguire terraform apply:
terraform apply
Ora hai distribuito la sfida mallory.
Pulizia
Ogni volta che vuoi rimuovere tutte le risorse create da CloudFoxable, puoi eseguire questi comandi:
cd cloudfoxable/awsterraform destroySe utilizzi Windows, potresti incontrare problemi durante la distribuzione di alcune sfide a causa di limitazioni specifiche della piattaforma. Per evitare ciò, viene fornito un Dockerfile per aiutarti a creare ed eseguire l'applicazione in un ambiente coerente su sistemi diversi.
Inizia clonando il repository sulla tua macchina locale:
git clone https://github.com/BishopFox/cloudfoxable.git
cd cloudfoxable
Dopo aver clonato il repository, crea l'immagine Docker con il seguente comando. Ciò garantirà di utilizzare una build pulita senza layer in cache:
docker build --no-cache -t cloudfoxable .
Se sei su Windows, usa il seguente comando PowerShell per eseguire il container Docker. Questo:
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
Se desideri aggiungere una nuova sfida, ecco i passaggi all'interno di CloudFoxable dopo aver fatto il fork del repository:
cp aws/challenges/1_challenge_template aws/challenges/challenge_namechallenge_name.tf con il nome della tua sfida.variable "challenge_name_enabled" {
description = "Enable or disable challenge_name challenge (true = enabled, false = disabled)"
type = bool
default = false
}
terraform.tfvars.example. Specifica se deve essere abilitata per impostazione predefinita (costo nullo o minimo), o disabilitata per impostazione predefinita (comporta costi $$)
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:
terraform init
Questa operazione è richiesta una volta per workspace (o quando cambia la configurazione dei provider).
Per rivedere ciò che Terraform creerà, modificherà o distruggerà:
terraform plan
Per distribuire le sfide attualmente abilitate:
terraform apply
Digita yes quando richiesto per confermare.
Per rimuovere tutte le risorse create da CloudFoxable:
terraform destroy
Conferma con yes quando richiesto.
| Comando | Descrizione |
|---|---|
terraform init | Inizializza il progetto Terraform |
terraform plan | Mostra le modifiche proposte all'infrastruttura |
terraform apply | Crea o aggiorna le risorse |
terraform destroy | Rimuove tutte le risorse distribuite |
var.challenge_name_enabled ? "name | $12/month |" : ""