AWS - Redshift Privesc
Redshift
RDS के बारे में अधिक जानकारी के लिए देखें:
redshift:DescribeClusters
, redshift:GetClusterCredentials
redshift:DescribeClusters
, redshift:GetClusterCredentials
इन अनुमतियों के साथ आप सभी क्लस्टरों की जानकारी (नाम और क्लस्टर उपयोगकर्ता नाम सहित) प्राप्त कर सकते हैं और इस तक पहुँचने के लिए क्रेडेंशियल्स प्राप्त कर सकते हैं:
संभावित प्रभाव: डेटाबेस के अंदर संवेदनशील जानकारी खोजें।
redshift:DescribeClusters
, redshift:GetClusterCredentialsWithIAM
redshift:DescribeClusters
, redshift:GetClusterCredentialsWithIAM
इन अनुमतियों के साथ आप सभी क्लस्टरों की जानकारी प्राप्त कर सकते हैं और इसका उपयोग करने के लिए क्रेडेंशियल्स प्राप्त कर सकते हैं। ध्यान दें कि postgres उपयोगकर्ता के पास अनुमतियाँ होंगी जो IAM पहचान के पास हैं जिसका उपयोग क्रेडेंशियल्स प्राप्त करने के लिए किया गया है।
संभावित प्रभाव: डेटाबेस के अंदर संवेदनशील जानकारी खोजें।
redshift:DescribeClusters
, redshift:ModifyCluster?
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 से एक लैम्ब्डा फ़ंक्शन को कॉल करें कुछ इस तरह:
S3
जैसा कि https://docs.aws.amazon.com/redshift/latest/dg/tutorial-loading-run-copy.html में समझाया गया है, S3 बकेट में पढ़ना और लिखना संभव है:
Dynamo
जैसा कि https://docs.aws.amazon.com/redshift/latest/dg/t_Loading-data-from-dynamodb.html में बताया गया है, dynamodb से डेटा प्राप्त करना संभव है:
जिस Amazon DynamoDB तालिका में डेटा है, उसे आपके क्लस्टर के समान AWS क्षेत्र में बनाया जाना चाहिए, जब तक कि आप REGION विकल्प का उपयोग करके उस AWS क्षेत्र को निर्दिष्ट न करें जिसमें Amazon DynamoDB तालिका स्थित है।
EMR
चेक करें https://docs.aws.amazon.com/redshift/latest/dg/loading-data-from-emr.html
References
Last updated