
Herramienta de despliegue multinube vulnerable por diseño que utiliza Terraform para aprovisionar infraestructura cloud intencionadamente insegura para formación y prácticas en seguridad.
Inglés | 中文
TerraformGoat es una herramienta de despliegue multinube "Vulnerable por Diseño" del laboratorio de investigación HXSecurity.
Actualmente, los proveedores de nube compatibles incluyen Alibaba Cloud, Tencent Cloud, Huawei Cloud, Amazon Web Services, Google Cloud Platform, Microsoft Azure.
| ID | Compañía de servicios en la nube | Tipos de servicios en la nube | Entorno vulnerable |
|---|---|---|---|
| 1 | Alibaba Cloud | Redes | Grupo de seguridad VPC con todos los puertos abiertos |
| 2 | Alibaba Cloud | Redes | Grupo de seguridad VPC con puertos comunes abiertos |
| 3 | Alibaba Cloud | Almacenamiento de objetos | Bucket HTTP habilitado |
| 4 | Alibaba Cloud | Almacenamiento de objetos | ACL de objeto escribible |
| 5 | Alibaba Cloud | Almacenamiento de objetos | ACL de objeto legible |
| 6 | Alibaba Cloud | Almacenamiento de objetos | Política de bucket especial |
| 7 | Alibaba Cloud | Almacenamiento de objetos | Acceso público al bucket |
| 8 | Alibaba Cloud | Almacenamiento de objetos | Acceso público al objeto |
| 9 | Alibaba Cloud |
TerraformGoat se despliega mediante imágenes Docker y por lo tanto requiere soporte del entorno Docker Engine. La instalación de Docker Engine se puede encontrar en https://docs.docker.com/engine/install/
Dependiendo del proveedor de servicios en la nube que esté utilizando, elija el comando de instalación correspondiente.
Alibaba Cloud
docker pull registry.cn-hongkong.aliyuncs.com/huoxian_pub/terraformgoat_aliyun:0.0.7
docker run -itd --name terraformgoat_aliyun_0.0.7 registry.cn-hongkong.aliyuncs.com/huoxian_pub/terraformgoat_aliyun:0.0.7
docker exec -it terraformgoat_aliyun_0.0.7 /bin/bash
Tencent Cloud
docker pull registry.cn-hongkong.aliyuncs.com/huoxian_pub/terraformgoat_tencentcloud:0.0.7
docker run -itd --name terraformgoat_tencentcloud_0.0.7 registry.cn-hongkong.aliyuncs.com/huoxian_pub/terraformgoat_tencentcloud:0.0.7
docker exec -it terraformgoat_tencentcloud_0.0.7 /bin/bash
Huawei Cloud
docker pull registry.cn-hongkong.aliyuncs.com/huoxian_pub/terraformgoat_huaweicloud:0.0.7
docker run -itd --name terraformgoat_huaweicloud_0.0.7 registry.cn-hongkong.aliyuncs.com/huoxian_pub/terraformgoat_huaweicloud:0.0.7
docker exec -it terraformgoat_huaweicloud_0.0.7 /bin/bash
Amazon Web Services
docker pull registry.cn-hongkong.aliyuncs.com/huoxian_pub/terraformgoat_aws:0.0.7
docker run -itd --name terraformgoat_aws_0.0.7 registry.cn-hongkong.aliyuncs.com/huoxian_pub/terraformgoat_aws:0.0.7
docker exec -it terraformgoat_aws_0.0.7 /bin/bash
Google Cloud Platform
docker pull registry.cn-hongkong.aliyuncs.com/huoxian_pub/terraformgoat_gcp:0.0.7
docker run -itd --name terraformgoat_gcp_0.0.7 registry.cn-hongkong.aliyuncs.com/huoxian_pub/terraformgoat_gcp:0.0.7
docker exec -it terraformgoat_gcp_0.0.7 /bin/bash
Microsoft Azure
docker pull registry.cn-hongkong.aliyuncs.com/huoxian_pub/terraformgoat_azure:0.0.7
docker run -itd --name terraformgoat_azure_0.0.7 registry.cn-hongkong.aliyuncs.com/huoxian_pub/terraformgoat_azure:0.0.7
docker exec -it terraformgoat_azure_0.0.7 /bin/bash
Después de ingresar al contenedor, cd al directorio del escenario correspondiente y podrá comenzar a desplegar el escenario.
Aquí hay una demostración de la construcción del escenario Alibaba Cloud Bucket Object Traversal.
docker pull registry.cn-hongkong.aliyuncs.com/huoxian_pub/terraformgoat_aliyun:0.0.7
docker run -itd --name terraformgoat_aliyun_0.0.7 registry.cn-hongkong.aliyuncs.com/huoxian_pub/terraformgoat_aliyun:0.0.7
docker exec -it terraformgoat_aliyun_0.0.7 /bin/bash

cd /TerraformGoat/aliyun/oss/bucket_object_traversal/
aliyun configure
terraform init
terraform apply

El programa solicita Enter a value:, escriba yes y presione enter, use curl para acceder al bucket y podrá ver el objeto recorrido.

Para evitar que el servicio en la nube siga generando cargos, recuerde destruir el escenario a tiempo después de usarlo.
terraform destroy
Si está en un contenedor, primero ejecute el comando exit para salir del contenedor, y luego ejecute el siguiente comando en el host.
docker stop $(docker ps -a -q -f "name=terraformgoat*")
docker rm $(docker ps -a -q -f "name=terraformgoat*")
docker rmi $(docker images -a -q -f "reference=registry.cn-hongkong.aliyuncs.com/huoxian_pub/terraformgoat*")
Las contribuciones son bienvenidas y muy apreciadas. Lectura adicional — CONTRIBUTING.md para más detalles sobre el flujo de trabajo de contribución.
TerraformGoat está bajo la licencia Apache 2.0. Consulte el archivo LICENSE para más detalles.
| Almacenamiento de objetos |
| Registro de bucket deshabilitado |
| 10 | Alibaba Cloud | Almacenamiento de objetos | Política de bucket legible |
| 11 | Alibaba Cloud | Almacenamiento de objetos | Recorrido de objetos del bucket |
| 12 | Alibaba Cloud | Almacenamiento de objetos | Carga de archivos sin restricciones |
| 13 | Alibaba Cloud | Almacenamiento de objetos | Cifrado del lado del servidor sin KMS configurado |
| 14 | Alibaba Cloud | Almacenamiento de objetos | Cifrado del lado del servidor sin usar BYOK |
| 15 | Alibaba Cloud | Servicio de cómputo elástico | ECS SSRF |
| 16 | Alibaba Cloud | Servicio de cómputo elástico | Discos no adjuntos de ECS sin cifrar |
| 17 | Alibaba Cloud | Servicio de cómputo elástico | Discos de máquina virtual ECS sin cifrar |
| 18 | Tencent Cloud | Redes | Grupo de seguridad VPC con todos los puertos abiertos |
| 19 | Tencent Cloud | Redes | Grupo de seguridad VPC con puertos comunes abiertos |
| 20 | Tencent Cloud | Almacenamiento de objetos | ACL de bucket escribible |
| 21 | Tencent Cloud | Almacenamiento de objetos | ACL de bucket legible |
| 22 | Tencent Cloud | Almacenamiento de objetos | Acceso público al bucket |
| 23 | Tencent Cloud | Almacenamiento de objetos | Acceso público al objeto |
| 24 | Tencent Cloud | Almacenamiento de objetos | Carga de archivos sin restricciones |
| 25 | Tencent Cloud | Almacenamiento de objetos | Recorrido de objetos del bucket |
| 26 | Tencent Cloud | Almacenamiento de objetos | Registro de bucket deshabilitado |
| 27 | Tencent Cloud | Almacenamiento de objetos | Cifrado del lado del servidor deshabilitado |
| 28 | Tencent Cloud | Servicio de cómputo elástico | CVM SSRF |
| 29 | Tencent Cloud | Servicio de cómputo elástico | Almacenamiento CBS no utilizado |
| 30 | Tencent Cloud | Servicio de cómputo elástico | Discos de máquina virtual CVM sin cifrar |
| 31 | Huawei Cloud | Redes | Grupo de seguridad no seguro de ECS |
| 32 | Huawei Cloud | Almacenamiento de objetos | ACL de objeto escribible |
| 33 | Huawei Cloud | Almacenamiento de objetos | Política de bucket especial |
| 34 | Huawei Cloud | Almacenamiento de objetos | Carga de archivos sin restricciones |
| 35 | Huawei Cloud | Almacenamiento de objetos | Recorrido de objetos del bucket |
| 36 | Huawei Cloud | Almacenamiento de objetos | Política incorrecta causa cargas de archivos arbitrarias |
| 37 | Huawei Cloud | Servicio de cómputo elástico | ECS SSRF |
| 38 | Huawei Cloud | Servicio de base de datos relacional | Entorno de verificación de línea base RDS MySQL |
| 39 | Amazon Web Services | Redes | Grupo de seguridad VPC con todos los puertos abiertos |
| 40 | Amazon Web Services | Redes | Grupo de seguridad VPC con puertos comunes abiertos |
| 41 | Amazon Web Services | Almacenamiento de objetos | ACL de objeto escribible |
| 42 | Amazon Web Services | Almacenamiento de objetos | ACL de bucket escribible |
| 43 | Amazon Web Services | Almacenamiento de objetos | ACL de bucket legible |
| 44 | Amazon Web Services | Almacenamiento de objetos | Eliminación con MFA deshabilitada |
| 45 | Amazon Web Services | Almacenamiento de objetos | Política de bucket especial |
| 46 | Amazon Web Services | Almacenamiento de objetos | Recorrido de objetos del bucket |
| 47 | Amazon Web Services | Almacenamiento de objetos | Carga de archivos sin restricciones |
| 48 | Amazon Web Services | Almacenamiento de objetos | Registro de bucket deshabilitado |
| 49 | Amazon Web Services | Almacenamiento de objetos | Bucket permite acceso HTTP |
| 50 | Amazon Web Services | Almacenamiento de objetos | Cifrado predeterminado del bucket deshabilitado |
| 51 | Amazon Web Services | Servicio de cómputo elástico | EC2 SSRF |
| 52 | Amazon Web Services | Servicio de cómputo elástico | Toma de consola |
| 53 | Amazon Web Services | Servicio de cómputo elástico | Volúmenes EBS no utilizados |
| 54 | Amazon Web Services | Servicio de cómputo elástico | Cifrado de volúmenes EBS deshabilitado |
| 55 | Amazon Web Services | Servicio de cómputo elástico | Instantáneas de volúmenes EBS sin cifrar |
| 56 | Amazon Web Services | Gestión de identidad y acceso | Escalada de privilegios IAM |
| 57 | Google Cloud Platform | Almacenamiento de objetos | ACL de objeto escribible |
| 58 | Google Cloud Platform | Almacenamiento de objetos | ACL de bucket escribible |
| 59 | Google Cloud Platform | Almacenamiento de objetos | Recorrido de objetos del bucket |
| 60 | Google Cloud Platform | Almacenamiento de objetos | Carga de archivos sin restricciones |
| 61 | Google Cloud Platform | Servicio de cómputo elástico | Ejecución de comandos en VM |
| 62 | Microsoft Azure | Almacenamiento de objetos | Acceso público a blobs |
| 63 | Microsoft Azure | Almacenamiento de objetos | Recorrido de blobs en contenedor |
| 64 | Microsoft Azure | Servicio de cómputo elástico | Ejecución de comandos en VM |