GCP - KMS 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)
KMS के बारे में जानकारी:
GCP - KMS Enumध्यान दें कि KMS में अनुमति केवल संस्थान, फ़ोल्डर और परियोजनाओं से विरासत में नहीं मिलती, बल्कि कीरिंग से भी मिलती है।
cloudkms.cryptoKeyVersions.useToDecrypt
आप इस अनुमति का उपयोग कुंजी के साथ जानकारी को डिक्रिप्ट करने के लिए कर सकते हैं जिसके ऊपर आपके पास यह अनुमति है।
cloudkms.cryptoKeys.setIamPolicy
इस अनुमति के साथ एक हमलावर अपने लिए अनुमति दे सकता है कि वह कुंजी का उपयोग करके जानकारी को डिक्रिप्ट करे।
cloudkms.cryptoKeyVersions.useToDecryptViaDelegation
यहाँ इस प्रतिनिधित्व के काम करने का एक वैचारिक विश्लेषण है:
Service Account A को KMS में एक विशिष्ट कुंजी का उपयोग करके डिक्रिप्ट करने का सीधा अधिकार है।
Service Account B को useToDecryptViaDelegation
अनुमति दी गई है। यह इसे Service Account A की ओर से डेटा डिक्रिप्ट करने के लिए KMS से अनुरोध करने की अनुमति देता है।
इस अनुमति का उपयोग उस तरीके में निहित है जिसमें KMS सेवा अनुमतियों की जांच करती है जब एक डिक्रिप्शन अनुरोध किया जाता है।
जब आप Google Cloud KMS API का उपयोग करके एक मानक डिक्रिप्शन अनुरोध करते हैं (Python या किसी अन्य भाषा में), तो सेवा जांचती है कि क्या अनुरोध करने वाले सेवा खाते के पास आवश्यक अनुमतियाँ हैं। यदि अनुरोध एक सेवा खाते द्वारा किया जाता है जिसमें useToDecryptViaDelegation
अनुमति है, तो KMS यह सत्यापित करता है कि क्या यह खाता उस इकाई की ओर से डिक्रिप्शन का अनुरोध करने के लिए अधिकृत है जो कुंजी का मालिक है।
कस्टम भूमिका परिभाषित करें: एक YAML फ़ाइल बनाएं (जैसे, custom_role.yaml
) जो कस्टम भूमिका को परिभाषित करती है। इस फ़ाइल में cloudkms.cryptoKeyVersions.useToDecryptViaDelegation
अनुमति शामिल होनी चाहिए। यहाँ इस फ़ाइल का एक उदाहरण है:
gcloud CLI का उपयोग करके कस्टम भूमिका बनाएं: अपने Google Cloud प्रोजेक्ट में कस्टम भूमिका बनाने के लिए निम्नलिखित कमांड का उपयोग करें:
अपने Google Cloud प्रोजेक्ट ID के साथ [YOUR_PROJECT_ID]
को बदलें।
एक सेवा खाते को कस्टम भूमिका दें: इस अनुमति का उपयोग करने वाले सेवा खाते को अपनी कस्टम भूमिका सौंपें। निम्नलिखित कमांड का उपयोग करें:
[YOUR_PROJECT_ID]
और [SERVICE_ACCOUNT_EMAIL]
को अपने प्रोजेक्ट आईडी और सेवा खाते के ईमेल से क्रमशः बदलें।
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)