
Crea tu propio campo de pruebas de penetración en AWS vulnerable por diseño

Comienza a hackear: CloudFoxable
Lee el blog para más detalles: Introducción a CloudFoxable: un sandbox de hacking en la nube gamificado
CloudFox ayuda a los probadores de penetración y a los profesionales de la seguridad a encontrar rutas de ataque explotables en la infraestructura en la nube. Sin embargo, ¿qué sucede si quieres encontrar y explotar servicios que aún no están presentes en tu entorno actual? ¿Qué pasa si no tienes acceso a un entorno AWS empresarial?
Presentamos CloudFoxable, un entorno AWS intencionalmente vulnerable creado específicamente para mostrar las capacidades de CloudFox y ayudarte a encontrar rutas de ataque latentes de manera más efectiva. Inspirándose en CloudGoat, flaws.cloud, flaws2.cloud y Metasploitable 1-3, CloudFoxable ofrece una amplia variedad de flags y rutas de ataque en formato CTF.
Al igual que CloudGoat e IAM-Vulnerable, CloudFoxable despliega recursos AWS intencionalmente vulnerables en una cuenta de pruebas administrada por el usuario, para que los usuarios aprendan a identificar y explotar vulnerabilidades en la nube. Sin embargo, más parecido a flaws.cloud, tu experiencia es más guiada y basada en la web.
CloudFoxable utiliza Terraform para desplegar y gestionar infraestructura AWS intencionalmente vulnerable. Esta sección proporciona la orientación mínima necesaria para instalar Terraform y para desplegar, modificar y eliminar los recursos de CloudFoxable.
Terraform debe instalarse localmente antes de desplegar CloudFoxable.
Sigue la guía de instalación oficial de HashiCorp para tu sistema operativo:
https://developer.hashicorp.com/terraform/tutorials/aws-get-started/install-cli
Verifica la instalación:
terraform version
Una instalación correcta mostrará la versión de Terraform.
Antes de ejecutar Terraform:
aws configure, variables de entorno o un rol asumido).Importante: CloudFoxable despliega infraestructura intencionalmente vulnerable. No despliegues esto en cuentas de AWS de producción, compartidas o corporativas.
Todos los comandos de Terraform deben ejecutarse desde el siguiente directorio:
cd cloudfoxable/aws
Inicializa el directorio de trabajo y descarga los proveedores necesarios:
Al igual que IAM-Vulnerable, algunos desafíos están habilitados por defecto (los que tienen pocas o ninguna implicación de costo) y otros están deshabilitados por defecto (los que incurren en costos si se despliegan). De esta manera, puedes habilitar módulos específicos según sea necesario. Sin embargo, el mecanismo para habilitar/deshabilitar desafíos es un poco diferente al de IAM-Vulnerable.
Dentro de cloudfoxable.bishopfox.com, cada desafío te indicará si necesitas realizar algún cambio de Terraform (es decir, desplegar algo) para completarlo. La forma de hacerlo es editar terraform.tfvars y actualizar la marca enabled de false a true según sea necesario.
Este es un ejemplo:
############################
# 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
Para habilitar el desafío mallory, simplemente actualizarías la siguiente línea:
challenge_mallory_enabled = true
Después de habilitar un desafío, deberás volver a ejecutar terraform apply:
terraform apply
Ahora has desplegado el desafío mallory.
Limpieza
Siempre que quieras eliminar todos los recursos creados por CloudFoxable, puedes ejecutar estos comandos:
cd cloudfoxable/awsterraform destroySi estás usando Windows, es posible que encuentres problemas al desplegar algunos de los desafíos debido a limitaciones específicas de la plataforma. Para evitarlo, se proporciona un Dockerfile que te ayuda a construir y ejecutar la aplicación en un entorno consistente en diferentes sistemas.
Comienza clonando el repositorio en tu máquina local:
git clone https://github.com/BishopFox/cloudfoxable.git
cd cloudfoxable
Una vez que hayas clonado el repositorio, construye la imagen de Docker con el siguiente comando. Esto asegurará que estés usando una compilación nueva sin capas en caché:
docker build --no-cache -t cloudfoxable .
Si estás en Windows, usa el siguiente comando de PowerShell para ejecutar el contenedor de Docker. Esto:
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 te gustaría agregar un nuevo desafío, estos son los pasos dentro de CloudFoxable una vez que hagas un fork del repositorio:
cp aws/challenges/1_challenge_template aws/challenges/challenge_namechallenge_name.tf al nombre de tu desafío.variable "challenge_name_enabled" {
description = "Enable or disable challenge_name challenge (true = enabled, false = disabled)"
type = bool
default = false
}
terraform.tfvars.example. Especifica si debe estar habilitado por defecto (costo bajo/nulo) o deshabilitado por defecto (cuesta $$)
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
Esto es necesario una vez por espacio de trabajo (o cuando cambie la configuración del proveedor).
Para revisar lo que Terraform creará, modificará o destruirá:
terraform plan
Para desplegar los desafíos actualmente habilitados:
terraform apply
Escribe yes cuando se te solicite confirmar.
Para eliminar todos los recursos creados por CloudFoxable:
terraform destroy
Confirma con yes cuando se te solicite.
| Command | Descripción |
|---|---|
terraform init | Inicializa el proyecto de Terraform |
terraform plan | Muestra los cambios de infraestructura propuestos |
terraform apply | Crea o actualiza recursos |
terraform destroy | Elimina todos los recursos desplegados |
var.challenge_name_enabled ? "name | $12/month |" : ""