2022-03-06 21:28:14 +08:00
|
|
|
|
# :rooster:0x00 前言
|
2022-02-22 18:16:52 +08:00
|
|
|
|
|
|
|
|
|
|
想写个存储桶的利用,先给自己画个饼
|
2022-03-04 19:16:52 +08:00
|
|
|
|
|
2022-03-06 21:35:56 +08:00
|
|
|
|
+ 阿里云(Aliyun Cloud Oss)
|
|
|
|
|
|
+ 腾讯云(Tencent Cloud COS)
|
|
|
|
|
|
+ 华为云 (HuaWei Cloud OBS)
|
|
|
|
|
|
+ AWS (Amazon S3 Bucket)
|
|
|
|
|
|
+ Azure (Azure Blob)
|
|
|
|
|
|
+ GCP (Google Cloud Bucket)
|
|
|
|
|
|
|
|
|
|
|
|
工具名称我都没想好,相信大佬们看到项目名就知道...机翻王
|
2022-03-06 21:28:14 +08:00
|
|
|
|
|
|
|
|
|
|
如果觉得用的还行,可以提issue给工具起个名字?:sos:
|
|
|
|
|
|
|
|
|
|
|
|
:waning_crescent_moon:**画饼进度**
|
2022-03-04 19:16:52 +08:00
|
|
|
|
|
|
|
|
|
|
1、阿里云存储桶利用
|
|
|
|
|
|
|
|
|
|
|
|
不太会用Git,代码写的也烂,有BUG直接提Issue即可(好像我连issue可能都用不明白)
|
|
|
|
|
|
|
2022-03-06 21:28:14 +08:00
|
|
|
|
> 好在二爷给我推荐的GitHub Desktop 二爷YYDS
|
|
|
|
|
|
|
|
|
|
|
|
# :pill:0x01 依赖
|
2022-03-04 19:16:52 +08:00
|
|
|
|
|
|
|
|
|
|
+ pip3 install oss2
|
|
|
|
|
|
+ pip3 install colorlog
|
|
|
|
|
|
+ pip3 install logging
|
2022-03-06 21:30:46 +08:00
|
|
|
|
+ pip3 install argparse
|
2022-03-04 19:16:52 +08:00
|
|
|
|
|
2022-03-06 21:28:14 +08:00
|
|
|
|
# :gun:0x02 使用方法
|
2022-03-04 19:16:52 +08:00
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
git clone https://github.com/UzJu/Cloud-Bucket-Leak-Detection-Tools.git
|
|
|
|
|
|
python3 main.py -h
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
随后在config/conf.py中写入自己的阿里云AK,作用如下
|
|
|
|
|
|
|
|
|
|
|
|
1、如果可以劫持,会用该AK创建同名的存储桶
|
|
|
|
|
|
|
|
|
|
|
|
2、用来验证合法用户
|
|
|
|
|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|
|
|
|
|
## 1、当存储桶Policy权限可获取时
|
|
|
|
|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|
|
|
|
|
## 2、当存储桶不存在时(自动创建并劫持)
|
|
|
|
|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
2022-03-06 21:28:14 +08:00
|
|
|
|
## 3、批量检测存储桶
|
|
|
|
|
|
|
|
|
|
|
|
新增批量存储桶的检测功能,推荐fofa一键导出所有资产
|
|
|
|
|
|
|
|
|
|
|
|
**fofa**
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
domain="aliyuncs.com"
|
|
|
|
|
|
server="AliyunOSS"domain="aliyuncs.com" #不推荐该语法
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
python3 main.py -f filepath
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
随后等待即可,扫描结果会在results目录下,文件名为当天的日期
|
|
|
|
|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|
|
|
|
|
只会保存有权限操作的存储桶
|
|
|
|
|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
2022-03-04 19:16:52 +08:00
|
|
|
|
输入存储桶地址即可自动检测,功能如下
|
|
|
|
|
|
|
|
|
|
|
|
+ 1、检测当前存储桶是否可劫持
|
|
|
|
|
|
+ 如果可劫持,自动在config中写入的AK账号上创建同命名的存储桶并开放所有权限
|
|
|
|
|
|
+ 2、检测当前存储桶是否可列出Object
|
|
|
|
|
|
+ 3、检测当前存储桶是否可获取ACL
|
|
|
|
|
|
+ 4、检测当前存储桶是否可获取Policy策略表
|
|
|
|
|
|
+ 5、检测存储桶是否可上传Object
|
2022-03-06 21:28:14 +08:00
|
|
|
|
+ 6、批量检测功能
|
2022-03-04 19:16:52 +08:00
|
|
|
|
|
2022-03-06 21:28:14 +08:00
|
|
|
|
# 0x03 阿里云存储桶利用
|
2022-03-04 19:16:52 +08:00
|
|
|
|
|
|
|
|
|
|
### 1、实现思路
|
|
|
|
|
|
|
|
|
|
|
|
首先实现了`OssBucketCheckFromSDK`类
|
|
|
|
|
|
|
|
|
|
|
|
+ AliyunOssBucketDoesBucketExist
|
|
|
|
|
|
|
|
|
|
|
|
+ 用来判断当前存储桶是否存在,首先如果存储桶存在那么就返回一个True,继续走下面的流程,如果存储桶不存在,那么就调用OssBucketExploitFromSDK类,创建存储桶,并且设置ACL权限,上传访问策略,随后上传一个文件进行验证,如果存储桶此时存在或者为AccessDenied,继续走下面的流程
|
|
|
|
|
|
|
|
|
|
|
|
+ AliyunOssGetBucketObjectList
|
|
|
|
|
|
|
|
|
|
|
|
+ 判断是否可以遍历存储桶中的内容,如果可以,则会选择前3个内容进行遍历并显示
|
|
|
|
|
|
|
|
|
|
|
|
> 如果想遍历更多的内容,可以查看aliyunOss.py中的AliyunOssGetBucketObjectList方法
|
|
|
|
|
|
|
|
|
|
|
|
+ AliyunOssGetBucketAcl
|
|
|
|
|
|
|
|
|
|
|
|
+ 判断能否访问当前Bucket的ACL,如果可以的话,就返回当前Bucket的ACL,如果不可以就继续走下面的Check流程
|
|
|
|
|
|
|
|
|
|
|
|
+ AliyunOssGetBucketPolicy
|
|
|
|
|
|
|
|
|
|
|
|
+ 判断能否访问当前Bucket的Policy,如果可以的话,就会返回当前Bucket的ACL,如果不可以就继续走下面的Check
|
|
|
|
|
|
|
|
|
|
|
|
+ AliyunOssGetBucketObject
|
|
|
|
|
|
|
|
|
|
|
|
+ 尝试上传一个文件,是否可以成功上传
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-03-06 21:28:14 +08:00
|
|
|
|
# :older_man:0x040001 更新日志
|
|
|
|
|
|
|
|
|
|
|
|
**2022年3月6日**
|
|
|
|
|
|
|
|
|
|
|
|
+ 新增批量扫描功能
|
|
|
|
|
|
+ 修复Fake_UserAgent报错的问题
|
|
|
|
|
|
|
|
|
|
|
|
> 其实是直接把这个库删了,不用了^ ^
|
|
|
|
|
|
|
|
|
|
|
|
# :cop:0xffffffff 免责声明
|
|
|
|
|
|
|
|
|
|
|
|
免责声明
|
|
|
|
|
|
|
|
|
|
|
|
1、本工具只作为学术交流,禁止使用工具做违法的事情
|
2022-03-04 19:16:52 +08:00
|
|
|
|
|
2022-03-06 21:28:14 +08:00
|
|
|
|
2、只是写着玩
|