跳到主要内容

TerraformGoat

License: Apache-2.0 GitHub release Github Stars PRs Welcome tweet

TerraformGoat 靶场项目地址为:https://github.com/HXSecurity/TerraformGoat

TerraformGoat 是一个支持多云的云场景漏洞靶场搭建工具,目前支持阿里云、腾讯云、华为云、Amazon Web Services、Google Cloud Platform、Microsoft Azure 六个云厂商的云场景漏洞搭建。

🎯 目前所支持的场景

序号云厂商云服务类型漏洞环境
1阿里云网络VPC 安全组允许所有端口访问
2阿里云网络VPC 安全组允许常见端口访问
3阿里云对象存储任意文件上传
4阿里云对象存储Bucket 对象遍历
5阿里云对象存储Object ACL 可写
6阿里云对象存储Object ACL 可读
7阿里云对象存储Bucket 公开访问
8阿里云对象存储Object 公开访问
9阿里云对象存储Bucket 策略可读
10阿里云对象存储Bucket HTTP 开启
11阿里云对象存储特殊的 Bucket 策略
12阿里云对象存储Bucket 日志转存未开启
13阿里云对象存储Bucket 服务端加密未使用 KMS
14阿里云对象存储Bucket 服务端加密未使用 BYOK
15阿里云弹性计算服务ECS SSRF 漏洞环境
16阿里云弹性计算服务ECS 未连接的磁盘未开启加密
17阿里云弹性计算服务ECS 虚拟机的磁盘未开启加密
18腾讯云网络VPC 安全组允许所有端口访问
19腾讯云网络VPC 安全组允许常见端口访问
20腾讯云对象存储任意文件上传
21腾讯云对象存储Bucket 对象遍历
22腾讯云对象存储Bucket 公开访问
23腾讯云对象存储Object 公开访问
24腾讯云对象存储Bucket ACL 可写
25腾讯云对象存储Bucket ACL 可读
26腾讯云对象存储服务端加密未开启
27腾讯云对象存储Bucket 日志存储未开启
28腾讯云弹性计算服务CVM SSRF 漏洞环境
29腾讯云弹性计算服务CVM 虚拟机的磁盘未开启加密
30华为云网络ECS 不安全的安全组配置
31华为云对象存储任意文件上传
32华为云对象存储Object ACL 可写
33华为云对象存储Bucket 对象遍历
34华为云对象存储特殊的 Bucket 策略
35华为云对象存储错误的 Policy 策略导致任意文件上传
36华为云弹性计算服务ECS SSRF 漏洞环境
37华为云关系型数据库RDS Mysql基线检查环境
38Amazon Web Services网络VPC 安全组允许所有端口访问
39Amazon Web Services网络VPC 安全组允许常见端口访问
40Amazon Web Services对象存储任意文件上传
41Amazon Web Services对象存储Object ACL 可写
42Amazon Web Services对象存储Bucket ACL 可写
43Amazon Web Services对象存储Bucket ACL 可读
44Amazon Web Services对象存储Bucket 对象遍历
45Amazon Web Services对象存储特殊的 Bucket 策略
46Amazon Web Services对象存储Bucket 允许 HTTP 访问
47Amazon Web Services对象存储Bucket 默认加密未开启
48Amazon Web Services对象存储Bucket 日志转存未开启
49Amazon Web Services对象存储Bucket 删除未开启 MFA
50Amazon Web Services弹性计算服务EC2 SSRF 漏洞环境
51Amazon Web Services弹性计算服务控制台接管漏洞环境
52Amazon Web Services弹性计算服务EBS 卷加密默认未开启
53Amazon Web Services身份和访问管理IAM 提权环境
54Google Cloud Platform对象存储任意文件上传
55Google Cloud Platform对象存储Object ACL 可写
56Google Cloud Platform对象存储Bucket ACL 可写
57Google Cloud Platform对象存储Bucket 对象遍历
58Google Cloud Platform弹性计算服务VM 命令执行漏洞环境
59Microsoft Azure对象存储Blob 公开访问
60Microsoft Azure对象存储Container Blob 遍历
61Microsoft Azure弹性计算服务VM 命令执行漏洞环境

💫 安装

根据你使用到的云服务提供商,选择对应的安装命令。

阿里云

docker pull registry.cn-hongkong.aliyuncs.com/huoxian_pub/terraformgoat_aliyun:0.0.5
docker run -itd --name terraformgoat_aliyun_0.0.5 registry.cn-hongkong.aliyuncs.com/huoxian_pub/terraformgoat_aliyun:0.0.5
docker exec -it terraformgoat_aliyun_0.0.5 /bin/bash

腾讯云

docker pull registry.cn-hongkong.aliyuncs.com/huoxian_pub/terraformgoat_tencentcloud:0.0.5
docker run -itd --name terraformgoat_tencentcloud_0.0.5 registry.cn-hongkong.aliyuncs.com/huoxian_pub/terraformgoat_tencentcloud:0.0.5
docker exec -it terraformgoat_tencentcloud_0.0.5 /bin/bash

华为云

docker pull registry.cn-hongkong.aliyuncs.com/huoxian_pub/terraformgoat_huaweicloud:0.0.5
docker run -itd --name terraformgoat_huaweicloud_0.0.5 registry.cn-hongkong.aliyuncs.com/huoxian_pub/terraformgoat_huaweicloud:0.0.5
docker exec -it terraformgoat_huaweicloud_0.0.5 /bin/bash

Amazon Web Services

docker pull registry.cn-hongkong.aliyuncs.com/huoxian_pub/terraformgoat_aws:0.0.5
docker run -itd --name terraformgoat_aws_0.0.5 registry.cn-hongkong.aliyuncs.com/huoxian_pub/terraformgoat_aws:0.0.5
docker exec -it terraformgoat_aws_0.0.5 /bin/bash

Google Cloud Platform

docker pull registry.cn-hongkong.aliyuncs.com/huoxian_pub/terraformgoat_gcp:0.0.5
docker run -itd --name terraformgoat_gcp_0.0.5 registry.cn-hongkong.aliyuncs.com/huoxian_pub/terraformgoat_gcp:0.0.5
docker exec -it terraformgoat_gcp_0.0.5 /bin/bash

Microsoft Azure

docker pull registry.cn-hongkong.aliyuncs.com/huoxian_pub/terraformgoat_azure:0.0.5
docker run -itd --name terraformgoat_azure_0.0.5 registry.cn-hongkong.aliyuncs.com/huoxian_pub/terraformgoat_azure:0.0.5
docker exec -it terraformgoat_azure_0.0.5 /bin/bash

📄 演示

进入到容器后,cd 到对应的场景目录,就可以开始部署靶场了,这里以 阿里云 Bucket 对象遍历 漏洞场景的搭建进行演示:

docker pull registry.cn-hongkong.aliyuncs.com/huoxian_pub/terraformgoat_aliyun:0.0.5
docker run -itd --name terraformgoat_aliyun_0.0.5 registry.cn-hongkong.aliyuncs.com/huoxian_pub/terraformgoat_aliyun:0.0.5
docker exec -it terraformgoat_aliyun_0.0.5 /bin/bash

img

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

img

提示Enter a value:,输入 yes 并回车,使用 curl 访问该 bucket,可以看到遍历到的对象。

img

为避免云服务继续产生费用,请在复现完后,及时销毁靶场,销毁靶场命令如下:

terraform destroy

🚀 卸载

如果在容器中,先执行 exit 命令退出容器,然后在宿主机下执行以下命令。

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*")

❗注意事项

  1. 在每个漏洞环境的 README 中都是在 TerraformGoat 容器环境内执行的,因此需要先部署 TerraformGoat 容器环境。
  2. 由于部分靶场存在云上内网横向的风险,因此强烈建议用户使用自己的测试账号配置靶场,避免使用生产环境的云账号,使用 Dockerfile 安装 TerraformGoat 也是为了将用户本地的云厂商令牌和测试账号的令牌进行隔离。
  3. TerraformGoat 仅可用于教育学习目的,不得用于违法犯罪目的,由 TerraformGoat 产生的结果由使用者承担,与 HXSecurity 无关。

🎊 贡献

我们非常欢迎并感谢你对 TerraformGoat 项目进行贡献,在 CONTRIBUTING.md 中可以了解贡献流程的细节。

🪪 许可证

TerraformGoat 使用 Apache 2.0 许可证,详情参见 LICENSE

🔮 Stats

Alt