AWS - DynamoDB Post Exploitation
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
अधिक जानकारी के लिए देखें:
AWS - DynamoDB Enumdynamodb:BatchGetItem
इस अनुमति के साथ एक हमलावर प्राथमिक कुंजी द्वारा तालिकाओं से आइटम प्राप्त करने में सक्षम होगा (आप तालिका के सभी डेटा के लिए बस नहीं पूछ सकते)। इसका मतलब है कि आपको प्राथमिक कुंजी जानने की आवश्यकता है (आप इसे तालिका के मेटाडेटा (describe-table
) प्राप्त करके प्राप्त कर सकते हैं)।
संभावित प्रभाव: तालिका में संवेदनशील जानकारी को खोजकर अप्रत्यक्ष प्रिवेस्क
dynamodb:GetItem
पिछले अनुमतियों के समान यह एक संभावित हमलावर को केवल 1 तालिका से मान पढ़ने की अनुमति देता है, जो कि पुनर्प्राप्त करने के लिए प्रविष्टि की प्राथमिक कुंजी दी गई है:
इस अनुमति के साथ transact-get-items
विधि का उपयोग करना भी संभव है:
संभावित प्रभाव: तालिका में संवेदनशील जानकारी को खोजकर अप्रत्यक्ष प्रिवेस्क
dynamodb:Query
पिछले अनुमतियों के समान यह एक संभावित हमलावर को केवल 1 तालिका से मान पढ़ने की अनुमति देता है, जो कि पुनः प्राप्त करने के लिए प्रविष्टि की प्राथमिक कुंजी दी गई है। यह तुलनाओं का एक उपसमुच्चय उपयोग करने की अनुमति देता है, लेकिन प्राथमिक कुंजी के साथ केवल "EQ" तुलना की अनुमति है (जो कि प्रकट होनी चाहिए), इसलिए आप एक अनुरोध में पूरे DB को प्राप्त करने के लिए तुलना का उपयोग नहीं कर सकते।
संभावित प्रभाव: तालिका में संवेदनशील जानकारी को खोजकर अप्रत्यक्ष प्रिवेस्क
dynamodb:Scan
आप इस अनुमति का उपयोग पूरी तालिका को आसानी से डंप करने के लिए कर सकते हैं।
संभावित प्रभाव: तालिका में संवेदनशील जानकारी को खोजकर अप्रत्यक्ष प्रिवेस्क
dynamodb:PartiQLSelect
आप इस अनुमति का उपयोग पूरी तालिका को आसानी से डंप करने के लिए कर सकते हैं।
यह अनुमति batch-execute-statement
करने की भी अनुमति देती है जैसे:
लेकिन आपको एक मान के साथ प्राथमिक कुंजी निर्दिष्ट करने की आवश्यकता है, इसलिए यह इतना उपयोगी नहीं है।
संभावित प्रभाव: तालिका में संवेदनशील जानकारी को खोजकर अप्रत्यक्ष प्रिवेस्क
dynamodb:ExportTableToPointInTime|(dynamodb:UpdateContinuousBackups)
यह अनुमति एक हमलावर को पूरी तालिका को उसके चयन के S3 बकेट में निर्यात करने की अनुमति देगी:
ध्यान दें कि इसके काम करने के लिए तालिका में point-in-time-recovery सक्षम होना चाहिए, आप यह जांच सकते हैं कि तालिका में यह है या नहीं:
यदि यह सक्षम नहीं है, तो आपको इसे सक्षम करना होगा और इसके लिए आपको dynamodb:ExportTableToPointInTime
अनुमति की आवश्यकता है:
संभावित प्रभाव: तालिका में संवेदनशील जानकारी का पता लगाकर अप्रत्यक्ष प्रिवेस्क
dynamodb:CreateTable
, dynamodb:RestoreTableFromBackup
, (dynamodb:CreateBackup)
इन अनुमतियों के साथ, एक हमलावर बैकअप से एक नई तालिका बनाने में सक्षम होगा (या यहां तक कि एक बैकअप बनाने के लिए जिसे फिर एक अलग तालिका में पुनर्स्थापित किया जा सके)। फिर, आवश्यक अनुमतियों के साथ, वह जानकारी की जांच करने में सक्षम होगा जो उत्पादन तालिका में और नहीं हो सकती।
संभावित प्रभाव: तालिका बैकअप में संवेदनशील जानकारी का पता लगाकर अप्रत्यक्ष प्रिवेस्क
dynamodb:PutItem
यह अनुमति उपयोगकर्ताओं को तालिका में एक नया आइटम जोड़ने या मौजूदा आइटम को नए आइटम से बदलने की अनुमति देती है। यदि समान प्राथमिक कुंजी वाला एक आइटम पहले से मौजूद है, तो पूरा आइटम नए आइटम से बदल दिया जाएगा। यदि प्राथमिक कुंजी मौजूद नहीं है, तो निर्दिष्ट प्राथमिक कुंजी के साथ एक नया आइटम बनाया जाएगा।
संभावित प्रभाव: DynamoDB तालिका में डेटा जोड़ने/संशोधित करने में सक्षम होने के कारण आगे की कमजोरियों/बायपास का शोषण
dynamodb:UpdateItem
यह अनुमति उपयोगकर्ताओं को एक आइटम के मौजूदा गुणों को संशोधित करने या एक आइटम में नए गुण जोड़ने की अनुमति देती है। यह पूरे आइटम को प्रतिस्थापित नहीं करती; यह केवल निर्दिष्ट गुणों को अपडेट करती है। यदि प्राथमिक कुंजी तालिका में मौजूद नहीं है, तो यह क्रिया निर्दिष्ट प्राथमिक कुंजी के साथ एक नया आइटम बनाएगी और अपडेट अभिव्यक्ति में निर्दिष्ट गुणों को सेट करेगी।
संभावित प्रभाव: DynamoDB तालिका में डेटा जोड़ने/संशोधित करने में सक्षम होने के कारण आगे की कमजोरियों/बायपास का शोषण
dynamodb:DeleteTable
इस अनुमति के साथ एक हमलावर DynamoDB तालिका को हटा सकता है, जिससे डेटा हानि होती है।
संभावित प्रभाव: डेटा हानि और हटाए गए तालिका पर निर्भर सेवाओं का विघटन।
dynamodb:DeleteBackup
इस अनुमति के साथ एक हमलावर DynamoDB बैकअप को हटा सकता है, जो आपदा पुनर्प्राप्ति परिदृश्य में डेटा हानि का कारण बन सकता है।
संभावित प्रभाव: डेटा हानि और आपदा पुनर्प्राप्ति परिदृश्य के दौरान बैकअप से पुनर्प्राप्त करने में असमर्थता।
dynamodb:StreamSpecification
, dynamodb:UpdateTable
, dynamodb:DescribeStream
, dynamodb:GetShardIterator
, dynamodb:GetRecords
TODO: यह परीक्षण करें कि क्या यह वास्तव में काम करता है
इन अनुमतियों के साथ एक हमलावर DynamoDB तालिका पर एक स्ट्रीम सक्षम कर सकता है, तालिका को अपडेट कर सकता है ताकि परिवर्तन स्ट्रीमिंग शुरू हो सके, और फिर तालिका में वास्तविक समय में परिवर्तनों की निगरानी करने के लिए स्ट्रीम तक पहुंच सकता है। इससे हमलावर को डेटा परिवर्तनों की निगरानी और एक्सफिल्ट्रेट करने की अनुमति मिलती है, जो संभावित रूप से डेटा लीक का कारण बन सकती है।
DynamoDB तालिका पर एक स्ट्रीम सक्षम करें:
ARN और अन्य विवरण प्राप्त करने के लिए स्ट्रीम का वर्णन करें:
स्ट्रीम ARN का उपयोग करके शार्ड इटरेटर प्राप्त करें:
शार्ड इटरेटर का उपयोग करके स्ट्रीम से डेटा तक पहुँचें और उसे एक्सफिल्ट्रेट करें:
संभावित प्रभाव: DynamoDB तालिका के परिवर्तनों की वास्तविक समय निगरानी और डेटा लीक।
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)