Skip to content

Latest commit

 

History

History
190 lines (149 loc) · 17 KB

README_CN.md

File metadata and controls

190 lines (149 loc) · 17 KB

TerraformGoat

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

English | 中文

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 腾讯云 弹性计算服务 云硬盘未被使用
29 腾讯云 弹性计算服务 CVM SSRF 漏洞环境
30 腾讯云 弹性计算服务 CVM 虚拟机的磁盘未开启加密
31 华为云 网络 ECS 不安全的安全组配置
32 华为云 对象存储 任意文件上传
33 华为云 对象存储 Object ACL 可写
34 华为云 对象存储 Bucket 对象遍历
35 华为云 对象存储 特殊的 Bucket 策略
36 华为云 对象存储 错误的 Policy 策略导致任意文件上传
37 华为云 弹性计算服务 ECS SSRF 漏洞环境
38 华为云 关系型数据库 RDS Mysql基线检查环境
39 Amazon Web Services 网络 VPC 安全组允许所有端口访问
40 Amazon Web Services 网络 VPC 安全组允许常见端口访问
41 Amazon Web Services 对象存储 任意文件上传
42 Amazon Web Services 对象存储 Object ACL 可写
43 Amazon Web Services 对象存储 Bucket ACL 可写
44 Amazon Web Services 对象存储 Bucket ACL 可读
45 Amazon Web Services 对象存储 Bucket 对象遍历
46 Amazon Web Services 对象存储 特殊的 Bucket 策略
47 Amazon Web Services 对象存储 Bucket 允许 HTTP 访问
48 Amazon Web Services 对象存储 Bucket 默认加密未开启
49 Amazon Web Services 对象存储 Bucket 日志转存未开启
50 Amazon Web Services 对象存储 Bucket 删除未开启 MFA
51 Amazon Web Services 弹性计算服务 EBS 卷未使用
52 Amazon Web Services 弹性计算服务 EC2 SSRF 漏洞环境
53 Amazon Web Services 弹性计算服务 控制台接管漏洞环境
54 Amazon Web Services 弹性计算服务 EBS 卷加密默认未开启
55 Amazon Web Services 弹性计算服务 EBS 卷快照未开启加密
56 Amazon Web Services 身份和访问管理 IAM 提权环境
57 Google Cloud Platform 对象存储 任意文件上传
58 Google Cloud Platform 对象存储 Object ACL 可写
59 Google Cloud Platform 对象存储 Bucket ACL 可写
60 Google Cloud Platform 对象存储 Bucket 对象遍历
61 Google Cloud Platform 弹性计算服务 VM 命令执行漏洞环境
62 Microsoft Azure 对象存储 Blob 公开访问
63 Microsoft Azure 对象存储 Container Blob 遍历
64 Microsoft Azure 弹性计算服务 VM 命令执行漏洞环境

💫 安装

TerraformGoat 使用 Docker 镜像部署,因此需要 Docker Engine 环境支持,Docker Engine 安装可以参考 https://docs.docker.com/engine/install/

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

阿里云

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

腾讯云

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

华为云

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

📄 演示

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

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

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