GCP - Apikeys Privesc

Reading time: 4 minutes

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

Apikeys

Die folgenden Berechtigungen sind nützlich, um API-Schlüssel zu erstellen und zu stehlen, beachten Sie dies aus den Dokumenten: Ein API-Schlüssel ist eine einfache verschlüsselte Zeichenfolge, die eine Anwendung ohne ein Prinzipal identifiziert. Sie sind nützlich, um öffentliche Daten anonym abzurufen, und werden verwendet, um API-Anfragen mit Ihrem Projekt für Quoten und Abrechnung zu verknüpfen.

Daher können Sie mit einem API-Schlüssel das Unternehmen für Ihre Nutzung der API bezahlen lassen, aber Sie werden keine Berechtigungen eskalieren können.

Für weitere Informationen zu API-Schlüsseln siehe:

GCP - API Keys Enum

Für andere Möglichkeiten zur Erstellung von API-Schlüsseln siehe:

GCP - Serviceusage Privesc

Brute Force API Key access

Da Sie möglicherweise nicht wissen, welche APIs im Projekt aktiviert sind oder welche Einschränkungen auf den gefundenen API-Schlüssel angewendet werden, wäre es interessant, das Tool https://github.com/ozguralp/gmapsapiscanner auszuführen und zu überprüfen, auf was Sie mit dem API-Schlüssel zugreifen können.

apikeys.keys.create

Diese Berechtigung ermöglicht es, einen API-Schlüssel zu erstellen:

bash
gcloud services api-keys create
Operation [operations/akmf.p7-[...]9] complete. Result: {
"@type":"type.googleapis.com/google.api.apikeys.v2.Key",
"createTime":"2022-01-26T12:23:06.281029Z",
"etag":"W/\"HOhA[...]==\"",
"keyString":"AIzaSy[...]oU",
"name":"projects/5[...]6/locations/global/keys/f707[...]e8",
"uid":"f707[...]e8",
"updateTime":"2022-01-26T12:23:06.378442Z"
}

Sie können ein Skript zur Automatisierung der Erstellung, Ausnutzung und Bereinigung einer verwundbaren Umgebung hier finden.

caution

Beachten Sie, dass Benutzer standardmäßig die Berechtigung haben, neue Projekte zu erstellen, und ihnen die Rolle Owner über das neue Projekt zugewiesen wird. Ein Benutzer könnte also ein Projekt und einen API-Schlüssel innerhalb dieses Projekts erstellen.

apikeys.keys.getKeyString , apikeys.keys.list

Diese Berechtigungen erlauben das Auflisten und Abrufen aller apiKeys und das Abrufen des Schlüssels:

bash
for  key  in  $(gcloud services api-keys list --uri); do
gcloud services api-keys get-key-string "$key"
done

Sie finden ein Skript zur Automatisierung der Erstellung, Ausnutzung und Bereinigung einer verwundbaren Umgebung hier.

apikeys.keys.undelete , apikeys.keys.list

Diese Berechtigungen ermöglichen es Ihnen, gelöschte API-Schlüssel aufzulisten und wiederherzustellen. Der API-Schlüssel wird in der Ausgabe nach der Wiederherstellung angezeigt:

bash
gcloud services api-keys list --show-deleted
gcloud services api-keys undelete <key-uid>

Erstellen Sie eine interne OAuth-Anwendung, um andere Mitarbeiter zu phishen

Überprüfen Sie die folgende Seite, um zu erfahren, wie Sie dies tun können, obwohl diese Aktion zum Dienst clientauthconfig gehört laut den Dokumenten:

GWS - Google Platforms Phishing

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