glem0/goGetBucket

GitHub: glem0/goGetBucket

一款通过域名变形枚举 AWS S3 Bucket 并检测其访问权限的渗透测试工具。

Stars: 116 | Forks: 35

# goGetBucket - 通过 alterations 和 permutations 发现 AWS S3 Bucket 在对某个域名进行侦察时,了解其拥有的资产非常重要。AWS S3 Bucket 的权限配置经常被混淆,从而导致敏感材料泄露。 该工具的作用是利用我在漏洞赏金狩猎和渗透测试期间总结的常见模式来枚举 S3 Bucket 名称。支持使用自定义字典对根域名进行 Permutations 变形。强烈推荐使用 [AltDNS](https://github.com/infosec-au/altdns) 中附带的字典。 对于每个被发现的 Bucket,将返回以下信息: - 列表权限 (List Permission) - 写入权限 (Write Permission) - Bucket 所在的区域 - Bucket 是否已禁用所有访问 # 安装 ``` go get -u github.com/glen-mac/goGetBucket ``` # 用法 `goGetBucket -m ~/tools/altdns/words.txt -d -o -i ` ``` Usage of ./goGetBucket: -d string Supplied domain name (used with mutation flag) -f string Path to a testfile (default "/tmp/test.file") -i string Path to input wordlist to enumerate -k string Keyword list (used with mutation flag) -m string Path to mutation wordlist (requires domain flag) -o string Path to output file to store log -t int Number of concurrent threads (default 100) ``` 在使用该工具的过程中,我发现当我输入感兴趣的根域名的子域名列表 (`-i`) 时,效果最好。例如: ``` www.domain.com mail.domain.com dev.domain.com ``` 测试文件 (`-f`) 是一个脚本会尝试存储在 Bucket 中以测试写入权限的文件。因此,如果这是在赏金活动中进行的,也许可以在其中存储您的联系信息和警告信息? 关键字列表 (`-k`) 会与根域名 (`-d`) 以及去掉 TLD 的域名拼接,并使用提供的变形字典 (`-m`) 进行排列组合。 注意不要将线程 (`-t`) 调得过高 —— 因为 AWS 有 API 速率限制,如果超过限制将会返回非预期的返回码。 # 截图 # 待办事项 - 编写更好的 GoLang 代码 - 使用 net/http 代替 AWS 的 Go 服务库 - 优化区域检查 - 优化 channel / 传递结构体的使用
标签:Amazon Web Services, AWS S3, Bug Bounty, EVTX分析, EVTX分析, Go语言, S3 Bucket, 云存储, 可自定义解析器, 域名安全, 子域名爆破, 存储桶枚举, 日志审计, 权限分析, 程序破解, 足迹分析