Goblob是一款功能强大的公开Azure Blob存储快速枚举工具,该工具旨在帮助广大研究人员快速扫描和发现Azure Blob存储中公开暴露的敏感信息,而这些信息可以用于各种安全分析、研究、审计、渗透测试和网络侦查活动中。
注意,Goblob会向每一个容器名称发送单独的goroutine以检测每一个存储账号,我们可以通过-goroutines选项来控制最大并发goroutine数量。在大多数情况下,使用默认的字典可能导致带宽迅速耗尽,因此如果你想在云环境中使用该工具的话,可能会消耗掉大量的资源。
由于该工具基于Go语言开发,因此我们首先需要在本地设备上安装并配置好最新版本的Go语言环境。
接下来,广大研究人员可以直接使用go install命令下载和安装Goblob:
go install github.com/Macmod/goblob@latest
Goblob提供了下列参数选项来帮助广大研究人员自定义和优化枚举过程:
-goroutines=N - 允许的最大并发goroutine数量(默认:5000);
-blobs=true - 报告每一个Bolb的URL,而非容器的URL(默认:false);
-verbose=N - 设置Verbose模式等级(默认:1,最小:0,最大:3);
-maxpages=N - 要寻找Blob遍历容器页面的最大数量(默认:20);
-timeout=N - HTTP请求超时(默认:90秒)
-maxidleconns=N - HTTP客户端的MaxIdleConns传输参数(默认:100);
-maxidleconnsperhost=N - HTTP客户端的MaxIdleConnsPerHost 传输参数(默认:10);
-maxconnsperhost=N - HTTP客户端的MaxConnsPerHost 传输参数(默认:0);
-skipssl=true - 跳过SSL验证(默认:false);
-invertsearch=true - 枚举每一个容器的账号,而非每一个账号包含的容器(默认:false);
下列命令即可直接运行Goblob:
$ ./goblob <storageaccountname>
其中,<storageaccountname>为目标存储账号。
我们还可以指定一个存储账号名称列表并进行批量检测:
$ ./goblob -accounts accounts.txt
默认配置下,该工具将会使用一个包含常见Azure Blob存储容器名称的列表来构造出潜在的URL地址。不过,我们也可以使用-containers参数来指定一个自定义的容器名称列表:
$ ./goblob -accounts accounts.txt -containers wordlists/goblob-folder-names.txt
该工具还支持将分析和扫描结果存储到一个文件中,在命令中添加-output选项即可:
$ ./goblob -accounts accounts.txt -containers wordlists/goblob-folder-names.txt -output results.txt
如果你想好通过stdin提供目标账号,你还可以直接忽略-accounts选项或账号名称:
$ cat accounts.txt | ./goblob
演示视频:
goblob - asciinema.org
本项目的开发与发布遵循MIT开源许可证协议。
Goblob:
https://github.com/Macmod/goblob
https://fireshellsecurity.team/dangers-of-exposed-blobs/ https://github.com/koaj/aws-s3-bucket-wordlist/blob/master/list.txt