
Créez votre propre environnement de test d'intrusion AWS vulnérable par conception.

Commencez le hacking : CloudFoxable
Lisez le blog pour plus de détails : Présentation de CloudFoxable : un bac à sable de hacking cloud ludique
CloudFox aide les testeurs d'intrusion et les professionnels de la sécurité à trouver des chemins d'attaque exploitables dans une infrastructure cloud. Cependant, que faire si vous souhaitez trouver et exploiter des services pas encore présents dans votre environnement actuel ? Et si vous n'avez pas accès à un environnement AWS d'entreprise ?
C'est là qu'intervient CloudFoxable, un environnement AWS volontairement vulnérable créé spécifiquement pour mettre en valeur les capacités de CloudFox et vous aider à identifier plus efficacement les chemins d'attaque latents. S'inspirant de CloudGoat, flaws.cloud, flaws2.cloud et Metasploitable 1-3, CloudFoxable propose un large éventail de flags et de chemins d'attaque au format CTF.
À l'instar de CloudGoat et d'IAM-Vulnerable, CloudFoxable déploie des ressources AWS volontairement vulnérables dans un compte de type terrain de jeu géré par l'utilisateur, afin que chacun apprenne à identifier et à exploiter les vulnérabilités cloud. Cependant, plus proche de flaws.cloud, votre expérience est davantage guidée et basée sur le web.
CloudFoxable utilise Terraform pour déployer et gérer une infrastructure AWS volontairement vulnérable. Cette section fournit les instructions minimales nécessaires pour installer Terraform, puis déployer, modifier et supprimer les ressources CloudFoxable.
Terraform doit être installé localement avant de déployer CloudFoxable.
Suivez le guide d'installation officiel de HashiCorp pour votre système d'exploitation :
https://developer.hashicorp.com/terraform/tutorials/aws-get-started/install-cli
Vérifiez l'installation :
terraform version
Une installation réussie affiche la version de Terraform.
Avant d'exécuter Terraform :
aws configure, des variables d'environnement ou un rôle assumé).Important : CloudFoxable déploie une infrastructure volontairement vulnérable. Ne déployez pas cela dans des comptes AWS de production, partagés ou d'entreprise.
Toutes les commandes Terraform doivent être exécutées depuis le répertoire suivant :
cd cloudfoxable/aws
Initialisez le répertoire de travail et téléchargez les fournisseurs requis :
Comme pour IAM-Vulnerable, certains challenges sont activés par défaut (ceux qui ont peu ou pas d'impact financier), et d'autres sont désactivés par défaut (ceux qui engendrent des coûts s'ils sont déployés). Vous pouvez ainsi activer des modules spécifiques selon vos besoins. Le mécanisme d'activation/désactivation des challenges est toutefois un peu différent de celui d'IAM-Vulnerable.
Sur cloudfoxable.bishopfox.com, chaque challenge vous indique si vous devez apporter des modifications Terraform (c'est-à-dire déployer quelque chose) pour le terminer. Pour ce faire, modifiez terraform.tfvars et passez le flag enabled de false à true selon vos besoins.
Voici un exemple :
############################
# 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
Pour activer le challenge mallory, il vous suffit de mettre à jour la ligne suivante :
challenge_mallory_enabled = true
Après avoir activé un challenge, vous devrez relancer terraform apply :
terraform apply
Vous avez maintenant déployé le challenge mallory.
Nettoyage
Chaque fois que vous souhaitez supprimer toutes les ressources créées par CloudFoxable, vous pouvez exécuter ces commandes :
cd cloudfoxable/awsterraform destroySi vous utilisez Windows, vous pouvez rencontrer des problèmes lors du déploiement de certains challenges en raison de limitations propres à la plateforme. Pour éviter cela, un Dockerfile est fourni pour vous aider à construire et à exécuter l'application dans un environnement cohérent sur différents systèmes.
Commencez par cloner le dépôt sur votre machine locale :
git clone https://github.com/BishopFox/cloudfoxable.git
cd cloudfoxable
Une fois le dépôt cloné, construisez l'image Docker avec la commande suivante. Cela garantit que vous utilisez une nouvelle construction, sans aucun calque en cache :
docker build --no-cache -t cloudfoxable .
Si vous êtes sous Windows, utilisez la commande PowerShell suivante pour exécuter le conteneur Docker. Cela va :
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
Si vous souhaitez ajouter un nouveau challenge, voici les étapes à suivre dans CloudFoxable après avoir forké le dépôt :
cp aws/challenges/1_challenge_template aws/challenges/challenge_namechallenge_name.tf avec le nom de votre challenge.variable "challenge_name_enabled" {
description = "Enable or disable challenge_name challenge (true = enabled, false = disabled)"
type = bool
default = false
}
terraform.tfvars.example. Précisez si elle doit être activée par défaut (coût faible/nul), ou désactivée par défaut (engendre des coûts $$)
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
Cette opération est requise une fois par espace de travail (ou lorsque la configuration des fournisseurs change).
Pour examiner ce que Terraform va créer, modifier ou détruire :
terraform plan
Pour déployer les challenges actuellement activés :
terraform apply
Saisissez yes lorsque vous êtes invité à confirmer.
Pour supprimer toutes les ressources créées par CloudFoxable :
terraform destroy
Confirmez avec yes lorsque vous êtes invité.
| Command | Description |
|---|---|
terraform init | Initialiser le projet Terraform |
terraform plan | Afficher les modifications d'infrastructure proposées |
terraform apply | Créer ou mettre à jour des ressources |
terraform destroy | Supprimer toutes les ressources déployées |
var.challenge_name_enabled ? "name | $12/month |" : ""