GCP - IAM, Principals & Org Policies Enum
Last updated
Last updated
Lerne & übe AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lerne & übe GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Für eine Einführung, was ein Dienstkonto ist, siehe:
GCP - Basic InformationEin Dienstkonto gehört immer zu einem Projekt:
Für eine Einführung, wie Benutzer & Gruppen in GCP funktionieren, siehe:
GCP - Basic InformationMit den Berechtigungen serviceusage.services.enable
und serviceusage.services.use
ist es möglich, Dienste in einem Projekt zu aktivieren und zu nutzen.
Beachten Sie, dass standardmäßig Workspace-Benutzern die Rolle Projekt-Ersteller zugewiesen wird, was ihnen den Zugang ermöglicht, neue Projekte zu erstellen. Wenn ein Benutzer ein Projekt erstellt, erhält er die Rolle owner
dafür. Er könnte also diese Dienste über das Projekt aktivieren, um Workspace aufzulisten.
Beachten Sie jedoch, dass es auch erforderlich ist, ausreichende Berechtigungen in Workspace zu haben, um diese APIs aufrufen zu können.
Wenn Sie den admin
-Dienst aktivieren können und Ihr Benutzer ausreichende Berechtigungen in Workspace hat, könnten Sie alle Gruppen & Benutzer auflisten mit den folgenden Zeilen.
Selbst wenn es identity groups
sagt, gibt es auch Benutzer ohne Gruppen zurück:
In den vorherigen Beispielen ist der Parameter --labels
erforderlich, daher wird ein generischer Wert verwendet (es ist nicht erforderlich, wenn Sie die API direkt verwenden, wie PurplePanda hier.
Selbst wenn der Admin-Dienst aktiviert ist, kann es sein, dass Sie beim Auflisten einen Fehler erhalten, da Ihr kompromittierter Workspace-Benutzer nicht über ausreichende Berechtigungen verfügt:
Überprüfen Sie dies für grundlegende Informationen zu IAM.
Laut den Dokumenten: Wenn eine Organisationsressource erstellt wird, erhalten alle Benutzer in Ihrer Domain standardmäßig die Rollen Billing Account Creator und Project Creator. Diese Standardrollen ermöglichen es Ihren Benutzern, Google Cloud sofort zu nutzen, sind jedoch nicht für den regulären Betrieb Ihrer Organisationsressource gedacht.
Diese Rollen gewähren die Berechtigungen:
billing.accounts.create
und resourcemanager.organizations.get
resourcemanager.organizations.get
und resourcemanager.projects.create
Darüber hinaus wird einem Benutzer, der ein Projekt erstellt, automatisch der Eigentümer dieses Projekts gemäß den Dokumenten. Daher kann ein Benutzer standardmäßig ein Projekt erstellen und jeden Dienst darauf ausführen (Miner? Workspace-Auflistung? ...)
Das höchste Privileg in einer GCP-Organisation ist die Rolle Organization Administrator.
In den meisten der Dienste können Sie die Berechtigungen über eine Ressource mithilfe der Methode add-iam-policy-binding
oder set-iam-policy
ändern. Der Hauptunterschied besteht darin, dass add-iam-policy-binding
eine neue Rollenbindung hinzufügt zur bestehenden IAM-Politik, während set-iam-policy
die zuvor gewährten Berechtigungen löscht und nur die im Befehl angegebenen festlegt.
Es gibt verschiedene Möglichkeiten, alle Berechtigungen eines Benutzers in verschiedenen Ressourcen (wie Organisationen, Ordnern, Projekten...) mit diesem Dienst zu überprüfen.
Die Berechtigung cloudasset.assets.searchAllIamPolicies
kann alle IAM-Richtlinien innerhalb einer Ressource anfordern.
Die Berechtigung cloudasset.assets.analyzeIamPolicy
kann alle IAM-Richtlinien eines Subjekts innerhalb einer Ressource anfordern.
Die Berechtigung cloudasset.assets.searchAllResources
ermöglicht das Auflisten aller Ressourcen einer Organisation, eines Ordners oder eines Projekts. IAM-bezogene Ressourcen (wie Rollen) sind enthalten.
Die Berechtigung cloudasset.assets.analyzeMove
kann auch nützlich sein, um Richtlinien abzurufen, die eine Ressource wie ein Projekt betreffen.
Ich nehme an, dass die Berechtigung cloudasset.assets.queryIamPolicy
auch Zugriff darauf geben könnte, die Berechtigungen von Prinzipalen zu finden.
Wenn Sie keinen Zugriff auf IAM-Informationen mit den vorherigen Methoden haben und Sie sich im Red Team befinden, könnten Sie das Tool https://github.com/carlospolop/bf_my_gcp_perms verwenden, um Ihre aktuellen Berechtigungen zu brute-forcen.
Beachten Sie jedoch, dass der Dienst cloudresourcemanager.googleapis.com
aktiviert sein muss.
Auf der folgenden Seite können Sie überprüfen, wie Sie IAM-Berechtigungen missbrauchen können, um Privilegien zu eskalieren:
GCP - IAM PrivescWenn Sie hohe Privilegien haben, könnten Sie:
Neue SAs (oder Benutzer, wenn in Workspace) erstellen
Principals, die von Ihnen kontrolliert werden, mehr Berechtigungen geben
Verwundbaren SAs (SSRF in vm, vuln Cloud Function…) mehr Privilegien geben
…
Für eine Einführung, was Org-Richtlinien sind, überprüfen Sie:
GCP - Basic InformationDie IAM-Richtlinien geben die Berechtigungen an, die Principals über Ressourcen durch Rollen haben, die granularen Berechtigungen zugewiesen sind. Organisationsrichtlinien beschränken, wie diese Dienste genutzt werden können oder welche Funktionen deaktiviert sind. Dies hilft, um das geringste Privileg jeder Ressource in der GCP-Umgebung zu verbessern.
In der folgenden Seite kannst du überprüfen, wie man Org-Policy-Berechtigungen missbrauchen kann, um Privilegien zu eskalieren:
GCP - Orgpolicy PrivescLerne & übe AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lerne & übe GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)