AWS - Redshift Privesc
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)
RDS के बारे में अधिक जानकारी के लिए देखें:
AWS - Redshift Enumredshift:DescribeClusters
, redshift:GetClusterCredentials
इन अनुमतियों के साथ आप सभी क्लस्टरों की जानकारी (नाम और क्लस्टर उपयोगकर्ता नाम सहित) प्राप्त कर सकते हैं और इस तक पहुँचने के लिए क्रेडेंशियल्स प्राप्त कर सकते हैं:
संभावित प्रभाव: डेटाबेस के अंदर संवेदनशील जानकारी खोजें।
redshift:DescribeClusters
, redshift:GetClusterCredentialsWithIAM
इन अनुमतियों के साथ आप सभी क्लस्टरों की जानकारी प्राप्त कर सकते हैं और इसका उपयोग करने के लिए क्रेडेंशियल्स प्राप्त कर सकते हैं। ध्यान दें कि postgres उपयोगकर्ता के पास अनुमतियाँ होंगी जो IAM पहचान के पास हैं जिसका उपयोग क्रेडेंशियल्स प्राप्त करने के लिए किया गया है।
संभावित प्रभाव: डेटाबेस के अंदर संवेदनशील जानकारी खोजें।
redshift:DescribeClusters
, redshift:ModifyCluster?
यह संभव है कि आप aws cli से आंतरिक postgres (redshit) उपयोगकर्ता का मास्टर पासवर्ड बदल सकें (मुझे लगता है कि ये वे अनुमतियाँ हैं जिनकी आपको आवश्यकता है लेकिन मैंने अभी तक उनका परीक्षण नहीं किया है):
संभावित प्रभाव: डेटाबेस के अंदर संवेदनशील जानकारी खोजें।
सभी निम्नलिखित संसाधनों तक पहुँचने के लिए, आपको उपयोग करने के लिए भूमिका निर्दिष्ट करनी होगी। एक Redshift क्लस्टर AWS भूमिकाओं की एक सूची असाइन कर सकता है जिसका आप उपयोग कर सकते हैं यदि आप ARN जानते हैं या आप बस "डिफ़ॉल्ट" सेट कर सकते हैं ताकि असाइन की गई डिफ़ॉल्ट भूमिका का उपयोग किया जा सके।
इसके अलावा, जैसा कि यहाँ समझाया गया है, Redshift भूमिकाओं को जोड़ने की अनुमति भी देता है (जब तक कि पहली भूमिका दूसरी भूमिका को मान नहीं लेती) ताकि आगे की पहुँच प्राप्त की जा सके, लेकिन बस **उन्हें एक कोमा से अलग करके: iam_role 'arn:aws:iam::123456789012:role/RoleA,arn:aws:iam::210987654321:role/RoleB';
जैसा कि https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_EXTERNAL_FUNCTION.html में समझाया गया है, यह संभव है कि Redshift से एक लैम्ब्डा फ़ंक्शन कॉल करें कुछ इस तरह:
जैसा कि https://docs.aws.amazon.com/redshift/latest/dg/tutorial-loading-run-copy.html में समझाया गया है, S3 बकेट में पढ़ना और लिखना संभव है:
जैसा कि https://docs.aws.amazon.com/redshift/latest/dg/t_Loading-data-from-dynamodb.html में बताया गया है, dynamodb से डेटा प्राप्त करना संभव है:
जिस Amazon DynamoDB तालिका में डेटा है, उसे आपके क्लस्टर के समान AWS क्षेत्र में बनाया जाना चाहिए, जब तक कि आप REGION विकल्प का उपयोग करके उस AWS क्षेत्र को निर्दिष्ट न करें जिसमें Amazon DynamoDB तालिका स्थित है।
चेक करें https://docs.aws.amazon.com/redshift/latest/dg/loading-data-from-emr.html
AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE) GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)