简介 🪶
Cloudlist 是一个多云工具,用于识别跨多个云服务提供商的资产。它由 ProjectDiscovery 开发,专为蓝队设计,用于通过维护跨多个云的中心资产列表来增强攻击面管理工作。Cloudlist 的主要特点包括支持多个云服务提供商、支持多种输出格式和过滤器,并具有高度可扩展性,便于添加新的提供商。此外,它还支持将结果输出到标准输出,方便与其他工具的整合。
Cloudlist 允许用户通过最低限度的配置,轻松列出来自多个云提供商的云资产。支持的云提供商包括 AWS、GCP、Azure、DigitalOcean、Heroku、Linode 等。用户可以使用 JSON 格式的输出与其他安全工具如 Nuclei 集成,以进行安全评估。
特点
跨云资产管理:
Cloudlist 能够列出来自不同云服务提供商的资产。支持包括 AWS、GCP、Azure、阿里云等在内的多个主要云提供商,还支持 VPS 与 PaaS 提供商如 DigitalOcean、Heroku、Linode 等,以及其他资源管理工具如 Kubernetes、Nomad、Consul 及 Terraform。 多格式输出支持:
Cloudlist 支持多种输出格式,可以将结果输出为 JSON 格式,或通过 stdout 支持与其他工具在流水线中协作。 多种过滤器支持:
提供多种过滤选项,包括按提供商、ID、服务类型等进行过滤,以便用户根据具体需求定制输出结果。 高扩展性:
Cloudlist 的设计高度可扩展,易于添加新的提供商。这使其能够迅速适应不断变化的云服务环境。 易于配置:
Cloudlist 的配置相对简单,用户需要将各个供应商的认证信息添加到配置文件中即可运行。 与其他工具配合使用:
由于其支持标准输出,Cloudlist 可以与其他安全评估工具如 Nuclei 配合使用,通过使用命令管道,Cloudlist 的输出可以直接作为其他工具的输入。 丰富的提供商支持:
Cloudlist 支持大量的云服务,包括但不限于实例、DNS、存储桶及更多服务。
安装 🍂
安装 Cloudlist
Cloudlist 提供了两种安装方式,您可以选择下载安装 Go 工具链或者直接下载预编译的二进制文件。 使用 Go 安装
确保您已经安装并设置最新版本的 Go。您可以通过访问 Go 官方网站获取安装指南。
在终端中执行以下命令,使用 Go 安装 Cloudlist:
go install -v github.com/projectdiscovery/cloudlist/cmd/cloudlist@latest
将 Go 的 bin 路径添加到系统路径中。如果您使用的是 OSX 或 Linux,请在终端中执行以下命令:
echo 'export PATH=$PATH:$HOME/go/bin' >> $HOME/.bashrc
source $HOME/.bashrc在 Windows 上,您需要手动将 Go bin 路径添加到系统路径。
安装完成后,您可以在
$HOME/go/bin/cloudlist
找到 Cloudlist 的二进制文件。
使用 🌿
参数选项
配置:
-config string 指定 cloudlist 标志配置文件(默认 "$HOME/.config/cloudlist/config.yaml")
-pc, -provider-config string 指定提供商配置文件(默认 "$HOME/.config/cloudlist/provider-config.yaml")
过滤器:
-p, -provider value 显示指定提供商的结果(以逗号分隔)(默认 linode, fastly, heroku, terraform, digitalocean, consul, cloudflare, hetzner, nomad, do, scw, openstack, alibaba, aws, gcp, namecheap, kubernetes, azure)
-id string[] 显示指定 ID 的结果(以逗号分隔)
-host 仅显示结果中的主机名
-ip 仅显示结果中的 IP 地址
-s, -service value 查询并显示指定服务的结果(以逗号分隔)(默认 cloudfront, gke, domain, compute, ec2, instance, cloud-function, app, eks, consul, droplet, vm, ecs, fastly, alb, s3, lambda, elb, cloud-run, route53, publicip, dns, service, nomad, lightsail, ingress, apigateway)
-ep, -exclude-private 在 CLI 输出中排除私有 IP
更新:
-up, -update 更新 cloudlist 到最新版本
-duc, -disable-update-check 禁用自动 cloudlist 更新检查
输出:
-o, -output string 输出文件以写入结果
-json 以 JSON 格式写入输出
-version 显示 cloudlist 的版本
-v 显示详细输出
-silent 仅在输出中显示结果
配置 Cloudlist
Cloudlist 使用配置文件来管理不同云服务提供商的访问配置。默认的提供商配置文件位于
$HOME/.config/cloudlist/provider-config.yaml
。以下是配置文件的示例内容:- provider: aws # 提供商名称
id: staging # 用户定义的过滤器名称(可选)
aws_access_key: $AWS_ACCESS_KEY # AWS 账户的访问密钥
aws_secret_key: $AWS_SECRET_KEY # AWS 账户的密钥
aws_session_token: $AWS_SESSION_TOKEN # 临时安全凭证(可选)
- provider: gcp
id: logs
gcp_service_account_key: '{"type":"service_account","project_id":"example-project","private_key_id":"example-key","private_key":"-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----\n","client_email":"[email protected]"}'
# 其他提供商配置...
根据您使用的云服务提供商,更新配置文件中的各项 API 密钥和凭证信息。 确保权限仅限于 Cloudlist 所需的功能。为不同的提供商创建 API 密钥时,建议使用只读权限。 运行 Cloudlist
一旦安装和配置完成,您就可以使用 Cloudlist 来列出您在云服务中的资产。
列出所有配置的资产: cloudlist
列出特定提供商的资产(如 AWS 和 GCP): cloudlist -provider aws,gcp
这些命令将从您配置的提供商中收集资产并在标准输出中显示。
使用过滤器和输出选项
Cloudlist 提供了多种过滤器和输出选项,帮助您优化结果:
仅显示主机名: cloudlist -host
仅显示 IP 地址: cloudlist -ip
输出为 JSON 格式: cloudlist -json
复杂过滤和输出选项可以帮助您更好地定制 Cloudlist 的行为,满足特定的资产管理需求。通过正确配置和使用 Cloudlist,您将更有效地管理跨多个云服务提供商的 IT 资产。
参考链接 🌲
https://docs.projectdiscovery.io/tools/cloudlist/overview
https://github.com/projectdiscovery/cloudlist
原文始发于微信公众号(人遁安全):Cloudlist 资产管理工具,蓝队资产管理利器
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论