GCP - local privilege escalation ssh pivoting

Tip

Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Lernen & üben Sie Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Unterstützen Sie HackTricks

in this scenario we are going to suppose that you have compromised a non privilege account inside a VM in a Compute Engine project.

Erstaunlicherweise können die GPC-Berechtigungen der kompromittierten Compute Engine dir dabei helfen, lokal auf einer Maschine Privilegien zu eskalieren. Auch wenn das in einer Cloud-Umgebung nicht immer sehr hilfreich ist, ist es gut zu wissen, dass es möglich ist.

Read the scripts

Compute Instances dienen wahrscheinlich dazu, einige Skripte auszuführen, um Aktionen mit ihren service accounts durchzuführen.

Da IAM sehr granular ist, kann ein Konto Lese-/Schreibrechte für eine Ressource besitzen, aber keine List-Rechte.

Ein gutes hypothetisches Beispiel ist eine Compute Instance, die die Berechtigung hat, Backups in einen storage bucket namens instance82736-long-term-xyz-archive-0332893 zu lesen/schreiben.

Wenn du gsutil ls in der Kommandozeile ausführst, liefert das nichts zurück, da dem service account die storage.buckets.list IAM-Berechtigung fehlt. Wenn du jedoch gsutil ls gs://instance82736-long-term-xyz-archive-0332893 ausführst, findest du möglicherweise ein komplettes Dateisystem-Backup, das dir Klartextzugriff auf Daten gewährt, die deinem lokalen Linux-Konto fehlen.

Du kannst diesen Bucket-Namen möglicherweise in einem Skript (in bash, Python, Ruby…) finden.

Custom Metadata

Administratoren können custom metadata auf instance- und project level hinzufügen. Dies ist einfach eine Möglichkeit, beliebige Schlüssel-/Wert-Paare an eine Instanz zu übergeben und wird häufig für Umgebungsvariablen sowie Start-/Herunterfahr-Skripte verwendet.

Außerdem ist es möglich, userdata hinzuzufügen — ein Skript, das bei jedem Start oder Neustart der Maschine ausgeführt wird und das auch über den metadata endpoint zugänglich ist.

For more info check:

Cloud SSRF - HackTricks

Abusing IAM permissions

Die meisten der folgenden vorgeschlagenen Berechtigungen werden dem default Compute SA gewährt; das einzige Problem ist, dass der default access scope den SA an der Nutzung hindert. Wenn jedoch der cloud-platform scope oder zumindest der compute scope aktiviert ist, wirst du in der Lage sein, sie zu missbrauchen.

Check the following permissions:

Search for Keys in the filesystem

Prüfe, ob sich andere Benutzer mit gcloud auf dem System angemeldet und ihre Zugangsdaten im Dateisystem hinterlassen haben:

Nach gcloud-Zugangsdaten im Dateisystem suchen ``` sudo find / -name "gcloud" ```

Dies sind die interessantesten Dateien:

  • ~/.config/gcloud/credentials.db
  • ~/.config/gcloud/legacy_credentials/[ACCOUNT]/adc.json
  • ~/.config/gcloud/legacy_credentials/[ACCOUNT]/.boto
  • ~/.credentials.json

Weitere API-Schlüssel-Regexes

Grep-Muster für GCP-Anmeldeinformationen und Schlüssel ```bash TARGET_DIR="/path/to/whatever"

Service account keys

grep -Pzr “(?s){[^{}]?service_account[^{}]?private_key.*?}”
“$TARGET_DIR”

Legacy GCP creds

grep -Pzr “(?s){[^{}]?client_id[^{}]?client_secret.*?}”
“$TARGET_DIR”

Google API keys

grep -Pr “AIza[a-zA-Z0-9\-_]{35}”
“$TARGET_DIR”

Google OAuth tokens

grep -Pr “ya29.[a-zA-Z0-9_-]{100,200}”
“$TARGET_DIR”

Generic SSH keys

grep -Pzr “(?s)—–BEGIN[ A-Z]?PRIVATE KEY[a-zA-Z0-9/+=\n-]?END[ A-Z]*?PRIVATE KEY—–”
“$TARGET_DIR”

Signed storage URLs

grep -Pir “storage.googleapis.com.*?Goog-Signature=[a-f0-9]+”
“$TARGET_DIR”

Signed policy documents in HTML

grep -Pzr ‘(?s)<form action.?googleapis.com.?name=“signature” value=“.*?”>’
“$TARGET_DIR”

</details>

## Referenzen

- [https://about.gitlab.com/blog/2020/02/12/plundering-gcp-escalating-privileges-in-google-cloud-platform/](https://about.gitlab.com/blog/2020/02/12/plundering-gcp-escalating-privileges-in-google-cloud-platform/)

> [!TIP]
> Lernen & üben Sie AWS Hacking:<img src="../../../../../images/arte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../../../../images/arte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">\
> Lernen & üben Sie GCP Hacking: <img src="../../../../../images/grte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">[**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)<img src="../../../../../images/grte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">
> Lernen & üben Sie Azure Hacking: <img src="../../../../../images/azrte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">[**HackTricks Training Azure Red Team Expert (AzRTE)**](https://training.hacktricks.xyz/courses/azrte)<img src="../../../../../images/azrte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">
>
> <details>
>
> <summary>Unterstützen Sie HackTricks</summary>
>
> - Überprüfen Sie die [**Abonnementpläne**](https://github.com/sponsors/carlospolop)!
> - **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
> - **Teilen Sie Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repos senden.
>
> </details>