CBLD云存储桶利用工具的使用与实战

VSole2022-03-09 15:55:20

CBLD名字乱写的,我自己都没想好这个工具叫什么名字,如果有好想法的时候可以在Issue中提出。

目录概要

0x00 前言

关于原理上的,可以参考以下文章。

  • UzJu——阿里云 OSS对象存储攻防
  • ricky——谷歌云对象存储攻防
  • ricky——微软云对象存储攻防
  • KEVIL——腾讯云COS对象存储攻防
  • TeamsSix——AWS S3 对象存储攻防

原理都大致相同,个人理解的工具用处就是帮助人解决繁琐的流程,达到自动化。

0x01 安装

GitHub:

https://github.com/UzJu/Cloud-Bucket-Leak-Detection-Tools

git clone https://github.com/UzJu/Cloud-Bucket-Leak-Detection-Tools
  • pip3 install oss2
  • pip3 install colorlog
  • pip3 install argparse
  • pip3 install dnspython

配置自己的阿里云AK

获取AK后写入config/conf.py文件即可。

0x02 使用方法

1、整体功能

首先会检查传入的参数是存储桶,还是域名

如果是域名

  • 判断解析的CNAME是不是存储桶的地址

如果与存储桶

  • 继续走下面的流程

检测存储桶的名称是否存在,会有以下三种情况

  • 存储桶名称不存在

此时会自动调用self.Exploit.AliyunOssCreateBucket_Exp()方法劫持存储桶。

  • 存储桶名称存在
  • 存储桶名称不符合规则

检测功能

判断是否可以遍历存储桶

判断是否拥有获取/上传存储桶的ACL权限

判断是否拥有获取/上传存储桶策略的权限

判断是否可以上传文件到存储桶

2、单个Target检测与利用

如果使用-aliyun作为参数传入一个存储桶地址,就会自动检测。

上图可以看到是所有权限都是AccessDenid的状态。

如果此时我们传入一个不存在的存储桶名称。

uzjucalksdklfkalsdkf.oss-cn-beijing.aliyuncs.com

此时判断该存储桶不存在,所以会自动创建一个同名称的存储桶,并写入以下策略。

{  "Version": "1",  "Statement": [{    "Effect": "Allow",    "Action": [      "oss:*"    ],    "Principal": [      "*"    ],    "Resource": [      f "acs:oss:*:{bucket_info.owner.id}:{self.target}",      f "acs:oss:*:{bucket_info.owner.id}:{self.target}/*"    ]  }]}

如果存在其他的权限,就如下图。

如果我们传入一个域名,首先我们先看一下域名的CNAME。

随后再直接传入,会自动判断域名的CNAME。

0x03 批量检测

1、fofa

用fofa上的资产作为演示:

# fofa查询语法domain="aliyuncs.com"

用工具批量导出出来,这里使用的是fofa_viewer

GitHub地址:https://github.com/wgpsec/fofa_viewer

上图中我们可以看到该存储桶没有获取ListObject的权限,但是有PutObject的权限。

下图中我们可以看到可以获取存储桶的ACL和策略权限。

下图我们可以看到完全拥有存储桶的所有权限,也成功获取到了ACL,存储桶策略。

注意:在批量检测中,我们获取到了存储桶的策略,并不会进行上传新的策略,因为这样会对对方的存储桶造成很严重的后果,这里的原因我也写在了代码里面,在aliyunoss.py中的AliyunOssPutBucketPolicy类。

为什么在AliyunOssPutBucketPolicy_Exp方法中我们可以随意操作存储桶策略,主要的原因是,我们劫持存储桶之后,虽然是叫劫持,但是该存储桶已经创建在我们自己的账号上了,并不会造成很严重的后果。

def AliyunOssPutBucketPolicy(self, getOssResource):        """        PutBucketPolicy        危险操作,会更改存储桶的策略组,建议查看AliyunOssgetBucketPolicy来自行判断        是否拥有AliyunOssPutBucketPolicy权限,如果用代码的方式写入会存在问题        1、写入后无法还原(当然这里可以使用备份原有的策略,然后再上传新的策略)这里又会遇到一个新的问题            如果只是存在PutBucketPolicy我们Put后是无法知道对方的ResourceID的
        所以该函数只在OssBucketExploitFromSDK类中实现了,详情请看AliyunOssPutBucketPolicy_Exp方法        """        pass

随后结果会保存在results目录中,名称为当天日期。

2、批量传入域名

在fofa上随便找了几个域名

如果这些域名中存在权限配置错误,也会检测出来保存到results目录中。

后续支持

  1. 存储桶爆破
  2. 存储桶枚举
  3. 多云存储结合

可供多种云存储进行选择。

域名
本作品采用《CC 协议》,转载必须注明作者和本文链接
在互联网+时代,网站是个人或企业展示品牌形象和推广品牌的重要工具,而无论是个人还是企业,在建设网站时,都需要提前注册域名。那么域名应该怎么注册呢?从域名选择,到选择域名注册商,再到域名注册,小编将一步步教你如何注册自己的域名。第一步:选择一个好的域名域名是作为互联网的身份标识而存在的,一个好的域名,不仅要起到宣传品牌、展示企业形象的作用,也要方便用户记忆和搜索引擎优化,由此,选择一个好的域名非常重
在现代的数字世界中,随着互联网的普及和发展,域名成为了每个网站的标识符号,而我们也经常听到域名注册证书、域名SSL证书这些专业名词。很多初次涉猎此行业的人对此并不了解,傻傻分不清两者的区别与联系,甚至很多人将域名注册证书与域名SSL证书混为一谈,事实真的如此吗?接下来,我们就一起来深入了解一下,一起寻找答案。什么是域名注册证书?域名注册证书,指的是注册机构颁发给域名所有人的证书,用于确认某个域名
美国军方邮件域名的后缀是.mil,而马里的国家域名是 .ml,美国军方人员经常在发送邮件时因拼写错误而将高度敏感的邮件发送到 .ml 域名。Johannes Zuurbier 是一名荷兰的互联网创业者,他与马里政府签署了长达十年的国家域名管理合同。这份合同即将到期,而马里是俄罗斯的亲密盟友,当合同过期之后,马里当局将会接收到这些发送错误的邮件。他警告美国,这一真实存在的风险可能会被美国的对手利用。
之前一位学员分享了一个关于自动化挖洞的方法论《我的渗透测试方法论》完整讲述了如何从一个域名开始到最终的漏洞扫描,但是对于初学者而言,知道思路,从思路到实践又有很长的路要走,今天来分享下第一阶段的工作如何做。多工具组合收集子域名主要完成以下工作:1、使用 Oneforall、amass、ksubdomain 针对目标进行域名收集?
截至2021年3月,我国域名注册市场规模降至不足4000万个,其中新通用顶级域(gTLD)市场受冲击较大,数个排名靠前的新gTLD域名注册量出现较大降幅,域名注册服务机构市场集中度相应下降。
网络扫描:探测域名
2021-07-28 11:12:21
Ping扫描,域名解析,反向DNS查询,子域名枚举。
在当前不断发展的网络威胁环境中,电子邮件已经成为了网络钓鱼攻击的主要目标。威胁行为者正在不断采用更复杂的技术方法来绕过安全监测机制并欺骗目标用户以实施威胁行为。目前,最为流行的攻击策略之一就是利用合法平台实现欺骗性链接并进行重定向攻击。在此类活动中,威胁行为者会利用可信任平台进行重定向攻击,并将毫无戒心的目标用户重定向到恶意URL目的地。
在网络安全领域,SSL证书经常作为传输数据安全保护的重要措施而出现,泛域名证书作为SSL证书中的一个重要类别,很多企业根据业务需求会选择泛域名证书。那么你知道泛域名证书什么意思?泛域名证书有什么用吗?为何企业选择泛域名证书吗?本文将为您详细说明。泛域名证书什么意思?泛域名证书,也叫通配符证书,是SSL证书的一种,可以保护一个域名和该域名所有二级子域名,可开启无限子域名HTTPS安全加密,且后续新增
近年来,随着网络攻击频率的不断提高,部署SSL证书以实现网站数据的传输加密和身份验证已成为企业的共识。泛域名SSL证书又叫通配符证书,申请这样的证书可以保护一个域名及该域名下的所有二级子域名,后续新增同级子域名,无需额外付费,具有高扩展性、方便管理、省钱省时等特性。一般情况下企业因为业务需求,会解析很多子域名,对于这类有很多子域名的企业来说,部署SSL证书是一项非常繁琐的工作。
VSole
网络安全专家