s3enum 是一个快速且隐秘的 Amazon S3 存储桶枚举工具。它利用 DNS 而非 HTTP,这意味着请求不会被记录在 S3 服务器访问日志中。
它最初于 2016 年构建,用于 针对 GitHub 的漏洞赏金狩猎。
go install github.com/koenrh/s3enum@latest
你需要指定目标的基础名称(例如 hackerone)、一个单词列表和一个后缀列表。候选存储桶名称通过将目标名称与每个单词组合(使用 -、_、. 以及无分隔符)生成,然后可以选择性地在后缀列表中每个条目前面或后面添加。你可以使用本仓库中的示例文件 wordlist.txt 和 suffixlist.txt,或者从 其他地方 获取单词列表。可选地,你可以指定工作线程数(默认为 50)。
$ s3enum \
-wordlist examples/wordlist.txt \
-suffixlist examples/suffixlist.txt \
hackerone
hackerone
hackerone-attachment
hackerone-attachments
hackerone-static
hackerone-upload
默认情况下,s3enum 将使用 /etc/resolv.conf 中指定的名称服务器。或者,你可以使用 -nameserver 选项指定其他名称服务器。此外,你可以同时测试多个名称。
s3enum \
-wordlist examples/wordlist.txt \
-suffixlist examples/suffixlist.txt \
-nameserver 1.1.1.1 \
-workers 100 \
hackerone h1 roflcopter
存储桶检测依赖于 s3.amazonaws.com 下的 CNAME 响应。位于 us-east-1 的存储桶解析为 s3-1-w.amazonaws.com,目前无法与不存在的存储桶区分。