GCP - Compute Privesc
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 weitere Informationen zu Compute und VPC (Netzwerk) in GCP siehe:
Beachte, dass du für die Durchführung aller Privilegieneskalationsangriffe, die eine Änderung der Metadaten der Instanz erfordern (wie das Hinzufügen neuer Benutzer und SSH-Schlüssel), actAs
-Berechtigungen über das an die Instanz angehängte SA benötigst, selbst wenn das SA bereits angehängt ist!
compute.projects.setCommonInstanceMetadata
Mit dieser Berechtigung kannst du die Metadaten-Informationen einer Instanz ändern und die autorisierte Schlüssel eines Benutzers ändern oder einen neuen Benutzer mit sudo-Berechtigungen erstellen. Daher wirst du in der Lage sein, über SSH in jede VM-Instanz zu exec und das GCP-Servicekonto zu stehlen, mit dem die Instanz läuft. Einschränkungen:
Beachte, dass GCP-Servicekonten, die standardmäßig in VM-Instanzen ausgeführt werden, einen sehr eingeschränkten Geltungsbereich haben.
Du musst in der Lage sein, den SSH-Server zu kontaktieren, um dich anzumelden.
Für weitere Informationen darüber, wie du diese Berechtigung ausnutzen kannst, siehe:
Du könntest diesen Angriff auch durchführen, indem du ein neues Startskript hinzufügst und die Instanz neu startest:
compute.instances.setMetadata
Diese Berechtigung gibt die gleichen Privilegien wie die vorherige Berechtigung, jedoch über spezifische Instanzen anstelle eines gesamten Projekts. Die gleichen Exploits und Einschränkungen wie im vorherigen Abschnitt gelten.
compute.instances.setIamPolicy
Diese Art von Berechtigung ermöglicht es Ihnen, sich selbst eine Rolle mit den vorherigen Berechtigungen zu gewähren und Privilegien durch deren Missbrauch zu eskalieren.
compute.instances.osLogin
Wenn OSLogin in der Instanz aktiviert ist, können Sie mit dieser Berechtigung einfach gcloud compute ssh [INSTANCE]
ausführen und sich mit der Instanz verbinden. Sie werden keine Root-Rechte innerhalb der Instanz haben.
Um sich erfolgreich mit dieser Berechtigung innerhalb der VM-Instanz anzumelden, müssen Sie die Berechtigung iam.serviceAccounts.actAs
über das an die VM angehängte SA haben.
compute.instances.osAdminLogin
Wenn OSLogin in der Instanz aktiviert ist, können Sie mit dieser Berechtigung einfach gcloud compute ssh [INSTANCE]
ausführen und sich mit der Instanz verbinden. Sie werden Root-Rechte innerhalb der Instanz haben.
Um sich erfolgreich mit dieser Berechtigung innerhalb der VM-Instanz anzumelden, müssen Sie die Berechtigung iam.serviceAccounts.actAs
über das an die VM angehängte SA haben.
compute.instances.create
,iam.serviceAccounts.actAs, compute.disks.create
, compute.instances.create
, compute.instances.setMetadata
, compute.instances.setServiceAccount
, compute.subnetworks.use
, compute.subnetworks.useExternalIp
Es ist möglich, eine virtuelle Maschine mit einem zugewiesenen Service-Konto zu erstellen und das Token des Service-Kontos zu stehlen, indem man auf die Metadaten zugreift, um die Privilegien zu eskalieren.
Das Exploit-Skript für diese Methode finden Sie hier.
osconfig.patchDeployments.create
| osconfig.patchJobs.exec
Wenn Sie die Berechtigungen osconfig.patchDeployments.create
oder osconfig.patchJobs.exec
haben, können Sie einen Patch-Job oder eine Bereitstellung erstellen. Dies ermöglicht es Ihnen, lateral in der Umgebung zu bewegen und Codeausführung auf allen Compute-Instanzen innerhalb eines Projekts zu erlangen.
Beachten Sie, dass Sie im Moment keine actAs
-Berechtigung über das an die Instanz angehängte SA benötigen.
Wenn Sie dies manuell ausnutzen möchten, müssen Sie entweder einen Patch-Job oder eine Bereitstellung** erstellen.** Führen Sie für einen Patch-Job aus:
Um ein Patch-Deployment bereitzustellen:
Das Tool patchy konnte in der Vergangenheit für das Ausnutzen dieser Fehlkonfiguration verwendet werden (aber jetzt funktioniert es nicht mehr).
Ein Angreifer könnte dies auch für Persistenz ausnutzen.
compute.machineImages.setIamPolicy
Gewähren Sie sich zusätzliche Berechtigungen für das Compute-Image.
compute.snapshots.setIamPolicy
Gewähren Sie sich zusätzliche Berechtigungen für einen Festplattensnapshot.
compute.disks.setIamPolicy
Gewähren Sie sich zusätzliche Berechtigungen für eine Festplatte.
Folgen Sie diesem Link, um einige Ideen zur Umgehung von Zugriffsberechtigungen zu finden.
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)