前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >安全研究 | Cloudlist从云服务商处获取资产信息

安全研究 | Cloudlist从云服务商处获取资产信息

作者头像
FB客服
发布2021-03-25 10:35:44
1K0
发布2021-03-25 10:35:44
举报
文章被收录于专栏:FreeBuf
Cloudlist

Cloudlist是一款整合了多个云端资源的工具,可以帮助广大研究人员从云服务商那里获取到云端资产的相关信息,比如说主机名称和IP地址等等。该工具主要为蓝队研究人员设计,可以帮助蓝队成员更好地管理和评估云端资产的攻击面,只需很少的配置工作,就可以跨多个云维护一个集中的资产列表。

功能介绍

可轻松列出具有多种配置的云端资产。 支持多个云服务商。 高度可扩展性,支持轻松添加新的云服务商。 STDOUT支持,可在管道中与其他工具配合使用。

工具下载

源码下载

该工具的下载配置非常简单,我们可以访问该项目的Releases页面下载最新版本的工具预编译代码,使用tar命令提取项目文件后,将其移动到$PATH路径下,然后运行下列命令即可完成工具的配置:

代码语言:javascript
复制
tar -xvf cloudlist-linux-amd64.tar

mv cloudlist-linux-amd64 /usr/local/bin/cloudlist

cloudlist -h

Go下载

Cloudlist的正常运行要求本地主机预先下载并配置好Go v1.14+环境,然后运行下列命令即可获取项目库:

代码语言:javascript
复制
GO111MODULE=on go get -v github.com/projectdiscovery/cloudlist/cmd/cloudlist

GitHub下载

代码语言:javascript
复制
git clone https://github.com/projectdiscovery/cloudlist.git; cd cloudlist/cmd/cloudlist; go build; cp cloudlist /usr/local/bin/; cloudlist -version

配置文件

默认的工具配置文件存储在“$HOME/.config/cloudlist/config.yaml”路径下,并且包含了配置样例代码。为了保证工具的正常运行,必须更新配置文件中的对应键值:

代码语言:javascript
复制
# Configuration file for cloudlist enumeration agent

- # provider is the name of the provider (Digitalocean)

  provider: do

  # profile is the name of the provider profile

  profile: xxxx

  # digitalocean_token is the API key for digitalocean cloud platform

  digitalocean_token: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

- # provider is the name of the provider (Scaleway)

  provider: scw

  # scaleway_access_key is the access key for scaleway API

  scaleway_access_key: SCWXXXXXXXXXXXXXX

  # scaleway_access_token is the access token for scaleway API

  scaleway_access_token: xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx

- # provider is the name of the provider (Amazon Web Services)

  provider: aws

  # profile is the name of the provider profile

  profile: staging

  # aws_access_key is the access key for AWS account

  aws_access_key: AKIAXXXXXXXXXXXXXX

  # aws_secret_key is the secret key for AWS account

  aws_secret_key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

- # provider is the name of the provider (Google Cloud Platform)

  provider: gcp

  # profile is the name of the provider profile

  profile: logs

  # gcp_service_account_key is the minified json of a google cloud service account with list permissions

  gcp_service_account_key: '{xxxxxxxxxxxxx}'

工具使用帮助

代码语言:javascript
复制
cloudlist -h

上述命令将显示该工具的帮助菜单,下面给出的是该工具支持的所有参数选项:

参数

描述

使用样例

config

云服务商的配置文件

cloudlist -config test.yaml

provider

给定云服务商的资产列表

cloudlist -provider aws

host

主机列表

cloudlist -host

ip

主机IP

cloudlist -ip

json

JSON格式输出

cloudlist -json

output

将输出存储至文件

cloudlist -output

silent

仅显示结果

cloudlist -silent

version

显示当前工具版本

cloudlist -version

verbose

显示Verbose模式

cloudlist -verbose

工具运行

代码语言:javascript
复制
cloudlist

该命令将会把配置文件中配置的云服务商所有对应的资产全部枚举出来,我们还可以使用其他命令来显示指定的云服务商或资产类型:

代码语言:javascript
复制
▶ cloudlist -provider aws

   ________                _____      __

  / ____/ /___  __  ______/ / (_)____/ /_

 / /   / / __ \/ / / / __  / / / ___/ __/

/ /___/ / /_/ / /_/ / /_/ / / (__  ) /_  

\____/_/\____/\__,_/\__,_/_/_/____/\__/  v0.0.1        

    projectdiscovery.io

[WRN] Use with caution. You are responsible for your actions

[WRN] Developers assume no liability and are not responsible for any misuse or damage.

[INF] Listing assets from AWS (prod) provider.

abc.com

example.com

1.1.1.1

2.2.2.2

3.3.3.3

4.4.4.4

5.5.5.5

6.6.6.6

[INF] Found 2 hosts and 6 IPs from AWS service (prod)

Nuclei和Cloudlist配合使用

我们还可以跟Nuclei配置使用来从多个云服务商扫描资产以实现安全评估和审计的目的:

代码语言:javascript
复制
cloudlist -silent | httpx -silent | nuclei -t cves/

支持的云服务商

AWS(亚马逊Web服务):EC2、Route53 GCP(谷歌云平台):Cloud DNS DO(DigitalOcean):实例 SCW(Scaleway):实例

以代码库的形式使用Cloudlist

当然了,我们还能够将Coudlist以代码库的方式直接引入到我们的Go程序中。下列代码段演示了如何在Go代码中使用Cloudlist枚举出给定云服务商所有的资产:

代码语言:javascript
复制
package main

import (

"context"

"log"

"github.com/projectdiscovery/cloudlist/pkg/inventory"

"github.com/projectdiscovery/cloudlist/pkg/schema"

)

func main() {

inventory, err := inventory.New(schema.Options{

schema.OptionBlock{"provider": "digitalocean", "digitalocean_token": "ec405badb974fd3d891c9223245f9ab5*871c127fce9e632c8dc421edd46d7242"},

})

if err != nil {

log.Fatalf("%s\n", err)

}

for _, provider := range inventory.Providers {

resources, err := provider.Resources(context.Background())

if err != nil {

log.Fatalf("%s\n", err)

}

for _, resource := range resources.Items {

_ = resource // Do something with the resource

}

}

}

工具使用截图

项目地址

Cloudlist:【点击阅读原文获取链接】

许可证协议

本项目的开发与发布遵循MIT开源许可证协议。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-03-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 功能介绍
  • 工具下载
    • 源码下载
      • Go下载
        • GitHub下载
        • 配置文件
        • 工具使用帮助
        • 工具运行
        • Nuclei和Cloudlist配合使用
        • 支持的云服务商
        • 以代码库的形式使用Cloudlist
        • 工具使用截图
        • 项目地址
        • 许可证协议
        相关产品与服务
        文件存储
        文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档