GCP - IAM, Principals & Org Policies Enum
Lerne & übe AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lerne & übe GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Dienstkonten
Für eine Einführung, was ein Dienstkonto ist, siehe:
GCP - Basic InformationAufzählung
Ein Dienstkonto gehört immer zu einem Projekt:
Benutzer & Gruppen
Für eine Einführung, wie Benutzer & Gruppen in GCP funktionieren, siehe:
GCP - Basic InformationAufzählung
Mit 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:
IAM
Überprüfen Sie dies für grundlegende Informationen zu IAM.
Standardberechtigungen
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
undresourcemanager.organizations.get
resourcemanager.organizations.get
undresourcemanager.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.
set-iam-policy vs add-iam-policy-binding
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.
Auflistung
cloudasset IAM Enumeration
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.
testIamPermissions Enumeration
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.
Privesc
Auf der folgenden Seite können Sie überprüfen, wie Sie IAM-Berechtigungen missbrauchen können, um Privilegien zu eskalieren:
GCP - IAM PrivescUnauthenticated Enum
GCP - IAM, Principals & Org Unauthenticated EnumPost Exploitation
GCP - IAM Post ExploitationPersistence
Wenn 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
…
Org-Richtlinien
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.
Privesc
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)
Last updated