当前位置: 首页 > news >正文

cloud_enum:一款针对不同平台云环境安全的OSINT工具

关于cloud_enum

cloud_enum是一款功能强大的云环境安全OSINT工具,该工具支持AWS、Azure和Google Cloud三种不同的云环境,旨在帮助广大研究人员枚举目标云环境中的公共资源,并尝试寻找其中潜在的安全威胁。

功能介绍

当前版本的cloud_enum支持枚举下列内容:

Amazon Web Services

1、公开/受保护的 S3 Bucket;

2、AWSApp(WorkMail、WorkDocs和Connect等);

Microsoft Azure

1、存储账号;

2、开放Blob存储容器;

3、托管的数据库;

4、虚拟机;

5、Web App;

Google Cloud Platform

1、公开/受保护的GCP Bucket;

2、公开/受保护的Firebase实时数据库;

3、Google App Engine站点;

4、云函数(使用已有函数枚举项目/地区);

5、开放的Firebase App;

工具依赖

dnspythonrequestsrequests_futures

工具下载

由于该工具基于Python 3开发,因此我们首先需要在本地设备上安装并配置好最新版本的Python 3环境。

接下来,广大研究人员可以直接使用下列命令将该项目源码克隆至本地:

git clone https://github.com/initstring/cloud_enum.git

然后切换到项目目录中,使用pip3命令和项目提供的requirements.txt文件安装该工具所需的其他依赖组件:

cd cloud_enumpip3 install -r ./requirements.txt

工具使用帮助

usage: cloud_enum.py [-h] -k KEYWORD [-m MUTATIONS] [-b BRUTE]Multi-cloud enumeration utility. All hail OSINT!optional arguments:-h, --help            显示工具帮助信息和退出-k KEYWORD, --keyword KEYWORD关键词,可以多次使用该参数指定多个关键词-kf KEYFILE, --keyfile KEYFILE输入文件,每行一个关键词-m MUTATIONS, --mutations MUTATIONS变异文件 ,默认为enum_tools/fuzz.txt-b BRUTE, --brute BRUTE需要爆破Azure容器名称的列表文件,默认为enum_tools/fuzz.txt-t THREADS, --threads THREADSHTTP爆破线程数量,默认为5-ns NAMESERVER, --nameserver NAMESERVER爆破中要使用的DNS服务器-l LOGFILE, --logfile LOGFILE日志文件路径-f FORMAT, --format FORMAT日志文件格式,可选为text、json和csv,,默认为text--disable-aws        禁用Amazon检测--disable-azure      禁用Azure检测--disable-gcp        禁用Google检测-qs, --quickscan      禁用所有变异和二级扫描

工具使用样例

该工具的运行最少只需要提供一个关键词即可,我们可以使用内置的模糊字符串,或通过-m或-b参数使用自己的关键词。除此之外,我们还可以多次使用-k参数提供多个关键词。工具会自动使用enum_tools/fuzz.txt中的或-m参数提供的文件中的字符串执行变异。

假设你现在在对某个组织进行安全评估,其域名为“somecompany.io”,他们的产品名为“blockchaindoohickey”,那么我们就可以使用下列命令来对其执行安全评估测试:

./cloud_enum.py -k somecompany -k somecompany.io -k blockchaindoohickey

HTTP爬虫和DNS查询默认各自将使用5个线程执行任务,我们可以适当增加线程数量,但增加太多的话可能会被云服务提供商限制。下面的命令中我们将线程数量增加到了10个:

./cloud_enum.py -k keyword -t 10

需要注意的是,我们还可以在cloudenum/azure_regions.py和cloudenum/gcp_regions.py文件中定义一个“REGIONS”变量,以设置只使用一个地区来提升扫描速度。

工具运行截图

工具使用演示

演示视频:【点我观看】

许可证协议

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

项目地址

cloud_enum:【GitHub传送门】

参考资料

https://www.youtube.com/embed/pTUDJhWJ1m0

GCPBucketBrute/permutations.txt at master · RhinoSecurityLabs/GCPBucketBrute · GitHub

相关文章:

  • 当OpenHarmony遇上OpenEuler
  • 元数据:数据的罗塞塔石碑
  • Pytorch环境配置的方法
  • eclipse maven打包报错: 致命错误: 在类路径或引导类路径中找不到程序包 java.lang的解决
  • MySQL 保姆级教程(七):用正则表达式进行搜索
  • 【Python】已解决报错:AttributeError: module ‘json‘ has no attribute ‘loads‘解决办法
  • mac免费的ntfs软件哪个好 MAC读取NTFS硬盘格式
  • 分数限制下,选好专业还是选好学校?
  • Databricks超10亿美元收购Tabular;Zilliz 推出 Milvus Lite ; 腾讯云支持Redis 7.0
  • 软考初级网络管理员__网络单选题
  • 黑龙江等保测评的流程和注意事项
  • 2023年全国大学生数学建模竞赛C题蔬菜类商品的自动定价与补货决策(含word论文和源代码资源)
  • 如何用多线程执行 unittest 测试用例实现方案
  • One能聊天接入百度千帆AppBuilder
  • 六西格玛助力便携式产品功耗大降:打造绿色节能新标杆!
  • [iOS]Core Data浅析一 -- 启用Core Data
  • 002-读书笔记-JavaScript高级程序设计 在HTML中使用JavaScript
  • avalon2.2的VM生成过程
  • CSS3 聊天气泡框以及 inherit、currentColor 关键字
  • EventListener原理
  • java B2B2C 源码多租户电子商城系统-Kafka基本使用介绍
  • JAVA之继承和多态
  • React-flux杂记
  • Spring Cloud中负载均衡器概览
  • 动态魔术使用DBMS_SQL
  • 基于游标的分页接口实现
  • 物联网链路协议
  • 详解移动APP与web APP的区别
  • 学习HTTP相关知识笔记
  • ​LeetCode解法汇总518. 零钱兑换 II
  • ​业务双活的数据切换思路设计(下)
  • #!/usr/bin/python与#!/usr/bin/env python的区别
  • #我与Java虚拟机的故事#连载16:打开Java世界大门的钥匙
  • (1)(1.13) SiK无线电高级配置(六)
  • (机器学习的矩阵)(向量、矩阵与多元线性回归)
  • (论文阅读23/100)Hierarchical Convolutional Features for Visual Tracking
  • (入门自用)--C++--抽象类--多态原理--虚表--1020
  • (原創) 如何將struct塞進vector? (C/C++) (STL)
  • (转)linux下的时间函数使用
  • (转)人的集合论——移山之道
  • (转)一些感悟
  • ./include/caffe/util/cudnn.hpp: In function ‘const char* cudnnGetErrorString(cudnnStatus_t)’: ./incl
  • .NET 6 在已知拓扑路径的情况下使用 Dijkstra,A*算法搜索最短路径
  • .NET 解决重复提交问题
  • .NET 设计模式—简单工厂(Simple Factory Pattern)
  • .NET成年了,然后呢?
  • .sh 的运行
  • 。Net下Windows服务程序开发疑惑
  • @ConditionalOnProperty注解使用说明
  • [\u4e00-\u9fa5] //匹配中文字符
  • [20180312]进程管理其中的SQL Server进程占用内存远远大于SQL server内部统计出来的内存...
  • [2021ICPC济南 L] Strange Series (Bell 数 多项式exp)
  • [202209]mysql8.0 双主集群搭建 亲测可用
  • [ai笔记9] openAI Sora技术文档引用文献汇总
  • [Angular] 笔记 20:NgContent