如何查找目标S3 Bucket属于哪一个账号ID – 作者:Alpha_h4ck

图片[1]-如何查找目标S3 Bucket属于哪一个账号ID – 作者:Alpha_h4ck-安全小百科

关于S3 Account Search

S3 Account Search可以帮助广大研究查找目标S3 Bucket属于哪一个账号ID。为了实现这个功能,我们需要拥有至少下列权限之一:

从Bucket下载一个已知文件的权限(s3:getObject);

枚举Bucket内容列表的权限(s3:ListBucket);

除此之外,你还需要一个角色,能够包含上述之一权限。

工具安装

我们可以通过pypi来安装S3 Account Search工具包,比如说,我们可以使用下列其中一个命令来完成安装,这里推荐使用pipx:

pipx install s3-account-search
pip install s3-account-search

工具使用样例

# 使用一个bucket进行查询

s3-account-search arn:aws:iam::123456789012:role/s3_read s3://my-bucket

# 使用一个对象进行查询

s3-account-search arn:aws:iam::123456789012:role/s3_read s3://my-bucket/path/to/object.ext

# Y还可以去掉s3://

s3-account-search arn:aws:iam::123456789012:role/s3_read my-bucket

# 或者提供一个指定的源配置文件进行查询

s3-account-search --profile source_profile arn:aws:iam::123456789012:role/s3_read s3://my-bucket

工具运行机制

S3中有一个IAM策略条件-s3:ResourceAccount,这个条件用来给指定账号提供目标S3的访问权,但同时也支持通配符。通过构建正确的模式,我们就可以查看哪些模式将导致拒绝访问或允许访问,这样就能够找出目标账号ID了。

项目开发

我们使用Poetry来管理这个项目,首先,我们需要使用下列命令将该项目源码克隆至本地:

git clone https://github.com/WeAreCloudar/s3-account-search

然后,运行下列安装命令:

poetry install

最后,使用下列命令激活虚拟环境:

poetry shell

poetry run $command

向pypi发布一个新版本

编辑toml并更新版本号;

提交版本号;

运行下列命令:

poetry publish --build

推送至GitHub;

在GitHub上创建一个新的Release;

项目地址

S3 Account Search:GitHub传送门

参考资料

https://www.cloudar.be/awsblog/finding-the-accountid-of-any-public-s3-bucket/

来源:freebuf.com 2021-07-20 00:05:14 by: Alpha_h4ck

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论