输入:(1 个必填)
-bucket string 要检查的存储桶名称。
-bucket-file string 包含要检查的存储桶名称的文件。
-mq 连接到 RabbitMQ 以获取存储桶。需要配置文件键 "mq"。默认值:"false"
输出:
-db 将结果保存到 Postgres 数据库。需要配置文件键 "db.uri"。默认值:"false"
-json 以 JSON 格式将日志输出到标准输出,而非人类可读格式。默认值:"false"
选项:
-enumerate 枚举存储桶对象(可能耗时)。默认值:"false"
-provider string 对象存储提供商:aws、custom、digitalocean、dreamhost、gcp、linode、scaleway - custom 需要配置文件。默认值:"aws"
-threads int 扫描使用的线程数。默认值:"4"
调试:
-verbose 启用详细日志记录。默认值:"false"
-version 打印版本。默认值:"false"
如果需要配置文件,将在以下位置搜索 config.yml:"."、"/etc/s3scanner/"、"$HOME/.s3scanner/"
如果您发现此工具有用,请考虑捐赠以支持其开发。您可以在本仓库页面侧边栏或 FUNDING.yml 中找到赞助选项。
衷心感谢 tines 对本项目的持续赞助。
扫描 AWS 中文件中列出的存储桶名称,枚举所有对象
$ s3scanner -bucket-file names.txt -enumerate
扫描 GCP 中的存储桶,枚举所有对象,并将结果保存到数据库
$ s3scanner -provider gcp -db -bucket my-bucket -enumerate
| 平台 | 版本 | 步骤 |
|---|---|---|
| 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 | |
| NixOS 不稳定版 | nix-shell -p s3scanner | |
| 其他 - 从源码编译 | git clone [email protected]:sa7mon/S3Scanner.git && cd S3Scanner && go build -o s3scanner . |
s3scanner 需要恰好一种输入类型:-bucket、-bucket-file 或 -mq。
输入:(1 个必填)
-bucket string 要检查的存储桶名称。
-bucket-file string 包含要检查的存储桶名称的文件。
-mq 连接到 RabbitMQ 以获取存储桶。需要配置文件键 "mq"。默认值:"false"
-bucket扫描单个存储桶
s3scanner -bucket secret_uploads
-bucket-file扫描文件中列出的每个存储桶名称
s3scanner -bucket-file names.txt
其中 names.txt 每行包含一个存储桶名称
$ cat names.txt
bucket123
assets
image-uploads
重复列出的存储桶名称只会被扫描一次。
-mq连接到 RabbitMQ 服务器并消费包含要扫描的存储桶名称的消息。
s3scanner -mq
消息应为 JSON 编码的 Bucket 对象——请参考 mqingest 获取 Golang 发布示例。
-mq 需要配置文件键 mq.uri 和 mq.queue_name。请参阅配置文件部分获取示例。
输出:
-db 将结果保存到 Postgres 数据库。需要配置文件键 "db.uri"。默认值:"false"
-json 以 JSON 格式将日志输出到标准输出,而非人类可读格式。默认值:"false"
-db将所有扫描结果保存到 PostgreSQL 数据库
s3scanner -bucket images -db
db.uri。请参阅配置文件部分获取示例。-db,结果也会打印到控制台,无论是否使用 -json 或默认的人类可读输出模式。s3scanner 每次连接到数据库时都会运行 Gorm 的 自动迁移 功能。如果
数据库中已存在 Gorm 所期望名称的表,它可能会修改这些表的结构。建议创建一个专门用于 s3scanner 结果的 Postgres 模式(Schema)。-json