GCP - IAM Post Exploitation

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

IAM

You can find further information about IAM in:

GCP - IAM, Principals & Org Policies Enum

Granting access to management console

Der Zugriff auf die GCP management console wird Benutzerkonten, nicht Servicekonten, bereitgestellt. Um sich an der Weboberfläche anzumelden, können Sie einem Google-Konto, das Sie kontrollieren, Zugriff gewähren. Dies kann ein generisches “@gmail.com”-Konto sein; es muss kein Mitglied der Zielorganisation sein.

Um dem generischen “@gmail.com”-Konto jedoch die primitive Rolle Owner zu gewähren, müssen Sie die Webkonsole benutzen. gcloud gibt einen Fehler zurück, wenn Sie versuchen, ihm eine Berechtigung über Editor zu gewähren.

Sie können den folgenden Befehl verwenden, um einem Benutzer die primitive Rolle Editor für Ihr bestehendes Projekt zu gewähren:

gcloud projects add-iam-policy-binding [PROJECT] --member user:[EMAIL] --role roles/editor

Wenn Ihnen das hier gelungen ist, versuchen Sie, die Weboberfläche aufzurufen und dort weiter zu erkunden.

Dies ist das höchste Level, das Sie mit dem gcloud-Tool zuweisen können.

Löschen von IAM-Komponenten iam.*.delete

Die iam.*.delete-Berechtigungen (z. B. iam.roles.delete, iam.serviceAccountApiKeyBindings.delete, iam.serviceAccountKeys.delete usw.) erlauben einer Identität, kritische IAM-Komponenten zu löschen, wie benutzerdefinierte Rollen, API-Key-Bindings, Service-Account-Keys und die Service-Accounts selbst. In den Händen eines Angreifers ermöglicht dies das Entfernen legitimer Zugriffsmechanismen und kann zu einem Denial-of-Service führen.

Um einen solchen Angriff durchzuführen, kann man zum Beispiel Rollen mit folgendem Befehl löschen:

gcloud iam roles delete <ROLE_ID> --project=<PROJECT_ID>

iam.serviceAccountKeys.disable || iam.serviceAccounts.disable

Die iam.serviceAccountKeys.disable und iam.serviceAccounts.disable Berechtigungen erlauben das Deaktivieren aktiver service account keys oder service accounts, was in den Händen eines Angreifers dazu verwendet werden könnte, den Betrieb zu stören, denial of service zu verursachen oder die incident response zu behindern, indem die Nutzung legitimer Anmeldeinformationen verhindert wird.

Um einen Service Account zu deaktivieren, können Sie den folgenden Befehl verwenden:

gcloud iam service-accounts disable <SA_EMAIL> --project=<PROJECT_ID>

Um die Keys eines Service Accounts zu deaktivieren, können Sie den folgenden Befehl verwenden:

gcloud iam service-accounts keys disable <KEY_ID> --iam-account=<SA_EMAIL>

iam.*.undelete

Die iam.*.undelete-Berechtigungen ermöglichen das Wiederherstellen zuvor gelöschter Elemente wie API key bindings, benutzerdefinierter Rollen oder Servicekonten. In den Händen eines Angreifers kann dies genutzt werden, um defensive Maßnahmen rückgängig zu machen (entfernten Zugriff wiederherzustellen), gelöschte Kompromittierungsvektoren wiederherzustellen, um Persistenz aufrechtzuerhalten, oder Abhilfemaßnahmen zu umgehen, wodurch die Eindämmung von Vorfällen erschwert wird.

gcloud iam service-accounts undelete "${SA_ID}" --project="${PROJECT}"

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