大家好,我是Rohan Chavan,一名计算机工程专业的学生,同时也是一名漏洞挖掘者。在这篇文章中,我将分享一些关于Amazon S3 buckets安全性的研究。请评论你的反馈,或者如果你有更多的技巧和技巧,可以和我交流。
什么是S3 buckets?
Amazon S3(Simple Storage service)是由AWS(Amazon Web Services)提供的服务,它可以存储文本、文件夹、图片、视频、PDF等,类似于云存储,并且在极少数情况下可以以纯文本形式存储备份、凭证等。我们可以通过网站或CLI(后者我们将使用)来控制AWS。
配置你的AWS帐户:
首先你需要注册一个免费的AWS帐户。
https://aws.amazon.com/
然后下载CLI。
https://docs.aws.amazon.com/cli/latest/userguide/install-windows.html
下一步是在CLI上配置你的AWS帐户
https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html
AWS的官方文档写的很简单易懂,只要按照指引很快就能实现上述步骤。
寻找Buckets
为了寻找Buckets,你既可以手动完成,也可以使用一些自动脚本,例如:
bucket_finder
S3Scanner
- Download: https://github.com/sa7mon/S3Scanner
s3-inspector
- Download: https://github.com/kromtech/s3-inspector
手动搜索
1.假设你瞄准了一个特定的目标,你可以使用dnsdumpster之类的脚本来查找其所有子域。当然你也可以使用s3buckets,格式如下:
<bucket_name>.s3.amazonaws.com
2.在某些上传文件和图片的请求时,也许可以找到buckets。
3.同时,在下载某些文件时,如果此时你使用了Mozilla,它会提示一个文件保存的选项,其中就有文件下载的URL地址,其中可能会包含buckets。
如果你知道更多寻找buckets的方法,请和我交流。
6种漏洞类型
AmazonS3 bucket允许匿名访问
AmazonS3 bucket允许列出文件
AmazonS3 Bucket允许任意文件上传和读取
AmazonS3 bucket允许盲上传
AmazonS3 bucket允许任意读取/写入对象
AmazonS3 bucket显示ACP/ACL
(参考Detectify博客)
检查配置错误
既然我们已经配置了AWS CLI,并且知道了如何查找buckets,那么让我们来看看如何检查基本的配置错误。
我们可以使用命令检查是否可以列出存储在bucket中的项目。
aws s3 ls s3://Bucket_name
也许你可以看到如下结果(来自hackone报告的图片)
只需使用--recursive flag
,你还可以列出子目录中的所有项目。
在正常的情况下,bucket通常会拒绝访问。
在某些时候,我们不能列出某个文件,但我们可以复制,移动,删除文件。
如果你使用以下命令。
aws s3 mv test.txt s3://bucket
则有可能把文件移动,输出如下。
而正常情况下也是拒绝访问。
再举几个例子:
影响
这种错误配置所造成的影响取决于bucket存储的内容,如果bucket在范围中有一些敏感的数据,那么这个漏洞也许会值不少赏金。但是如果信息不那么敏感,那么它甚至会被忽略,虽然这并不安全,但这种事经常发生。
最后,以下是一些涉及Amazon S3的hackeone报告:
Legal Robot:错误配置导致的信息泄露
https://hackerone.com/reports/189023
Zomato:错误配置导致的非法改动文件
https://hackerone.com/reports/229690
Reverb.com:错误配置导致的任意文件上传
https://hackerone.com/reports/172549
Ruby:错误配置导致的任意文件删除,移动
https://hackerone.com/reports/209223
Twitter:错误配置导致的文件读取,写入,删除
https://hackerone.com/reports/129381
修复
这类漏洞的根本原因还是文件权限的不正确,确保文件权限的正确性可以解决此类问题。
本文由白帽汇整理并翻译,不代表白帽汇任何观点和立场
来源:https://medium.com/@rohanchavan/finding-and-testing-misconfigured-s3-buckets-d77992c4b5cd