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;

工具依赖

dnspython

requests

requests_futures

工具下载

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

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

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

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

cd cloud_enum

pip3 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 THREADS

                      HTTP爆破线程数量,默认为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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/727048.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

kettle实时增量同步mysql数据

** 本文主要介绍运用kettle实时增量同步mysql数据 ** Debezium介绍 官网地址:https://debezium.io/documentation/ Debezium是一个开源项目,为捕获数据更改(Capture Data Change,CDC)提供了一个低延迟的流式处理平台,通过安装配置Debeziu…

[面试题]RabbitMQ

[面试题]Java【基础】[面试题]Java【虚拟机】[面试题]Java【并发】[面试题]Java【集合】[面试题]MySQL[面试题]Maven[面试题]Spring Boot[面试题]Spring Cloud[面试题]Spring MVC[面试题]Spring[面试题]MyBatis[面试题]Nginx[面试题]缓存[面试题]Redis[面试题]消息队列[面试题]…

科普文章:怎么远程监控电脑屏幕?三种监控电脑屏幕的方法

远程监控公司电脑屏幕是一项重要的管理手段,它不仅有助于提升工作效率,还能确保公司信息安全和合规性。随着远程办公的普及,这一需求变得日益重要。下面我将详细介绍几种实现远程监控公司电脑屏幕的方法,以及实施过程中需要注意的…

网络安全 DVWA通关指南 SQL Injection(SQL注入)

DVWA SQL Injection 文章目录 DVWA SQL InjectionLowMediumHighImpossible SQL注入漏洞基本原理 Web应用程序对用户输入的数据校验处理不严或者根本没有校验,致使用户可以拼接执行SQL命令。 可能导致数据泄露或数据破坏,缺乏可审计性,甚至导致…

机器学习案例|使用机器学习轻松预测信用卡坏账风险,极大程度降低损失

01、案例说明 对于模型的参数,除了使用系统的设定值之外,可以进行再进一步的优化而得到更好的结果。RM提供了几种参数优化的方法,能够让整体模型的效率提高。而其使用的概念,仍然是使用计算机强大的计算能力,对于不同…

01 Shell 编程规范与变量

目录 1.1 Shell脚本概述 1.1.1 Shell的作用 1.1.2 编写第一个Shell脚本 1.1.3 重定向与管道操作 1. 重定向操作 1. 重定向输出 2. 重定向输入 3. 错误重定向 2. 管代操作 1.2 Shell变量的作用、类型 1.2.1 自定义变量 1. 定义新的变量 2. 查看和引用变量的值 3. 变量赋值的特…

Django使用django-apscheduler实现定时任务

定时任务可以在后台定时执行指定的代码,避免了很多人为操作。下面是在Django项目中如何使用定时任务的具体操作流程。 我在这里使用的 django-apscheduler库来实现定时任务。 一、安装 django-apscheduler pip install django-apscheduler二、在项目的setting.py…

java.io.eofexception:ssl peer shut down incorrectly

可能是因为 1)https设置 2)超时设置 FeignConfig.java package zwf.service;import java.io.IOException; import java.io.InputStream; import java.security.KeyStore;import javax.net.ssl.SSLContext; import javax.net.ssl.SSLSocketFactory;import org.apac…

PXE高效批量网络装机(补充) 实验部分

然后把防火墙、安全机制全都给关闭掉,不要让它们干扰后续的实验: 然后安装那几个需要用到的软件包: 如果重启了系统vsftpd是不能自动启动起来的,如果想让该服务每次开机都自动的启动起来,可以执行下图中的命令&#xf…

关系数据理论

什么是关系数据理论:用来评判数据库逻辑设计“好坏程度”的标准;二是如果逻辑设计中存在“不好”的关系模式,如何将其修改为“好”的关系模式。 函数依赖:举个例子:学生表中,一个学生的学生号确定了,学生的…

Arduino平台软硬件原理及使用——无源蜂鸣器模块的使用

文章目录 一、蜂鸣器发声原理 二、无源蜂鸣器与有源蜂鸣器的区分 三、无源蜂鸣器模块在Arduino中的使用 一、蜂鸣器发声原理 上图为常见的不同封装及规格的蜂鸣器。 同蜜蜂、知了等昆虫发声原理一样,蜂鸣器同样靠振动来发出声音; 如上图为无源蜂鸣器的内…

whiteboard - 笔记

1 drawio draw.io GitHub - jgraph/drawio: draw.io is a JavaScript, client-side editor for general diagramming. 2 demo 可以将XML数据保存到服务器上的data目录。需要在服务器端创建一个接收和处理POST请求的脚本,该脚本将接收到的SVG数据保存到指定的文件中。下面是…

subversion

subversion Install # CentOS安装Subversion yum install subversion mkdir /var/svn/ systemctl restart svnserve# Docker安装Subversion(参考:https://github.com/garethflowers/docker-svn-server) docker run \--name my-svn-server \…

《C++ Primer》导学系列:第 6 章 - 函数

6.1 函数基础 6.1.1 基本概念 函数是C程序的基本组成单元,用于将代码组织成可以复用的模块。函数通过函数名进行调用,并且可以接受参数和返回值。函数的定义包括函数头和函数体,其中函数头描述了函数的接口,函数体包含了具体的实…

RabbitMQ 开发指南

连接RabbitMQ 连接方式一: 也可以选择使用URI的方式来实现 连接方式二: Connection接口被用来创建一个Channel,在创建之后,Channel可以用来发送或者接收消息。 Channel channel conn.createChannel();使用交换器和队列 声明…

基于Java的留守儿童爱心网站

你好呀,我是计算机学姐码农小野!如果有相关需求,可以私信联系我。 开发语言:Java 数据库:MySQL 技术:B/S结构,SpringBoot框架 工具:MyEclipse,Navicat,To…

全球森林碳通量(2001-2023年)数据集

简介 全球森林碳通量(2001-2023) 森林碳净通量表示 2001-2023 年间森林与大气之间的碳净交换量,计算方法是模型期内森林排放的碳与森林清除(或封存)的碳之间的平衡(兆克 CO2 排放量/公顷)。碳净…

【PB案例学习笔记】-20制作一个超链接按钮

写在前面 这是PB案例学习笔记系列文章的第19篇,该系列文章适合具有一定PB基础的读者。 通过一个个由浅入深的编程实战案例学习,提高编程技巧,以保证小伙伴们能应付公司的各种开发需求。 文章中设计到的源码,小凡都上传到了gite…

【机器学习】基于稀疏识别方法的洛伦兹混沌系统预测

1. 引言 1.1. DNN模型的来由 从数据中识别非线性动态学意味着什么? 假设我们有时间序列数据,这些数据来自一个(非线性)动态学系统。 识别一个系统意味着基于数据推断该系统的控制方程。换句话说,就是找到动态系统方…

生成式AI时代,数据存储管理与成本如何不失控?

无数据,不AI。 由生成式AI掀起的这一次人工智能浪潮,对企业的产品、服务乃至商业模式都有着颠覆性的影响。因此,在多云、大数据、生成式AI等多元技术的驱动下,数据要素变得愈发重要的同时,企业对于数据存储的需求也在…