关于Sa7mon-S3scanner
Sa7mon-S3scanner是一款针对S3 Bucket的错误配置扫描工具,该工具兼容S3 API,可以帮助广大研究人员轻松扫描开放S3 Bucket中潜在的错误配置信息。
支持的厂商服务
当前版本的Sa7mon-S3scanner支持查找AWS或其他云服务提供商中开放S3 Bucket的潜在错误配置,支持的厂商列表如下:
AWS
DigitalOcean
DreamHost
GCP
Linode
Scaleway
功能介绍
1、多线程扫描;
2、支持许多内置 S3 Bucket提供商;
3、扫描所有S3 Bucket权限以查找错误配置;
4、将结果保存到Postgres数据库;
5、连接到RabbitMQ进行大规模自动扫描;
6、Docker支持;
工具安装
由于该工具基于Go开发,因此我们首先需要在本地设备上安装并配置好最新版本的Go环境。
接下来,广大研究人员可以直接使用下列命令将该项目源码克隆至本地:
git clone https://github.com/sa7mon/S3Scanner.git
然后切换到项目目录中,使用下列命令完成代码构建即可:
cd S3Scanner go build -o s3scanner
多平台安装
支持的平台 | 安装命令 |
BlackArch | pacman -S s3scanner |
Docker | docker run ghcr.io/sa7mon/s3scanner |
Go | go install -v github.com/sa7mon/s3scanner@latest |
Kali Linux | apt install s3scanner |
MacOS | brew install s3scanner |
Parrot OS | apt install s3scanner |
Windows - winget | winget install s3scanner |
NixOS | nix-shell -p s3scanner |
工具使用
INPUT: (1 required) -bucket string 要检查的bucket的名称 -bucket-file string 要检查的bucket名称的文件路径 -mq 连接到RabbitMQ以获取bucket。需要配置文件密钥“mq”,默认值:“false” OUTPUT: -db 将结果保存到Postgres数据库。需要配置文件密钥“db.uri”,默认值:“false” -json 以json格式将日志打印到stdout,默认值:“false” OPTIONS: -enumerate 枚举bucket对象(可能很耗时),默认值:“false” -provider string 对象存储提供程序:aws、custom、digitalcean、dreamhost、gcp、linode、scaleway-自定义需要配置文件。默认值:“aws” -threads int 要扫描的线程数,默认值:“4” DEBUG: -verbose 启用详细日志记录,默认值:“false” -version 打印工具当前版本,默认值:“false”
工具使用样例
扫描 AWS 以查找文件中列出的Bucket名称,枚举所有对象
$ s3scanner -bucket-file names.txt -enumerate
扫描 GCP 中的Bucket,枚举所有对象,并将结果保存到数据库
$ s3scanner -provider gcp -db -bucket my-bucket -enumerate
工具截图
许可证协议
本项目的开发与发布遵循MIT开源许可协议。
项目地址
Sa7mon-S3scanner:【GitHub传送门】
参考资料
https://docs.aws.amazon.com/AmazonS3/latest/user-guide/set-bucket-permissions.html