当前位置:首页 > 云原生安全 > 正文内容

UzJu云存储桶利用工具使用教程

UzJu2年前 (2022-04-17)云原生安全2139

0x00 前言

关于原理上的,可以参考火线云安全社区上的文章

原理都大致相同

个人理解的工具用处就是帮助人解决繁琐的流程,达到自动化

0x01 安装

GitHubhttps://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

image-20220308215429415

1、配置自己的阿里云AK

image-20220308225628485

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

0x02 使用方法

1、整体功能

image-20220308215923624

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

如果是域名

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

如果是存储桶

  • 继续走下面的流程

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

1、存储桶名称不存在

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

2、存储桶名称存在

3、存储桶名称不符合规则

1.1、检测功能

判断是否可以遍历存储桶

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

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

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

2、单个Target检测与利用

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

image-20220308221748258

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

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

uzjucalksdklfkalsdkf.oss-cn-beijing.aliyuncs.com

image-20220308223137080

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

{
    "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}/*"
        ]
    }]
}

image-20220308222443040

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

image-20220308223031206

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

image-20220308223416734

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

image-20220308223459947

0x03 批量检测

1、fofa

用fofa上的资产作为演示

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

image-20220308223657071

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

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

image-20220308223929730

image-20220308224031611

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

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

image-20220308224322450

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

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

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

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

        所以该函数只在OssBucketExploitFromSDK类中实现了,详情请看AliyunOssPutBucketPolicy_Exp方法
        """
        pass

image-20220308224414889

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

image-20220308225047188

2、批量传入域名

在fofa上随便找了几个域名

image-20220308225427387

image-20220308225459889

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

0x04 后续支持

1、存储桶爆破

2、存储桶枚举

3、多云存储结合

可供多种云存储进行选择

扫描二维码推送至手机访问。

版权声明:本文由UzJu的安全屋发布,如需转载请注明出处。

SQL ERROR: ERROR 1105 (HY000): XPATH syntax error: '~root@localhost'

本文链接:https://uzzju.com/post/42.java

分享给朋友:
返回列表

没有更早的文章了...

下一篇:Terraform快速入门到入土

相关文章

Terraform快速入门到入土

Terraform快速入门到入土

Terraform快速入门到入土本文按照官方教程来进行学习,为了方便快速上手,不去看官方的机翻,所以对于文中的所有定义,都会进行解释,通俗易懂Terraform安装sudo apt-get update && sudo ap...

六大云元数据地址速查

AWShttp://169.254.169.254/latest/meta-data/ Google Cloudhttp://metadata/computeMetadata/v1/ Azurehttp://169.254.169.25...

ServerLess Aws Lambda攻击与横向方法研究

ServerLess Aws Lambda攻击与横向方法研究

前言1、这篇文章讲了什么?文本围绕三个问题 1、lambda会遇到什么攻击场景 2、什么情况下,在lambda中读取到的env环境变量密钥可以让我们接管服务器甚至整个账号 3、什么情况下,可以通过lambda权限去横向到其他的EC2服...

评论列表

test
test
1年前 (2023-03-05)

师傅这个工具 报错无法使用 可以更新一下不

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。