GCP - Compute Privesc

Erlernen Sie AWS-Hacking von Grund auf mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

Compute

Für weitere Informationen zu Compute und VPC (Netzwerk) in GCP überprüfen Sie:

pageGCP - Compute Enum

compute.projects.setCommonInstanceMetadata

Mit dieser Berechtigung können Sie die Metadateninformationen einer Instanz ändern und die autorisierten Schlüssel eines Benutzers ändern oder einen neuen Benutzer mit sudo-Berechtigungen erstellen. Dadurch können Sie über SSH auf eine beliebige VM-Instanz zugreifen und das GCP-Servicekonto stehlen, mit dem die Instanz ausgeführt wird. Einschränkungen:

  • Beachten Sie, dass GCP-Servicekonten, die standardmäßig in VM-Instanzen ausgeführt werden, einen sehr begrenzten Umfang haben.

  • Sie müssen in der Lage sein, den SSH-Server zu kontaktieren, um sich anzumelden.

Für weitere Informationen zur Ausnutzung dieser Berechtigung überprüfen Sie:

pageGCP - Add Custom SSH Metadata

compute.instances.setMetadata

Diese Berechtigung gibt die gleichen Privilegien wie die vorherige Berechtigung, gilt jedoch für bestimmte Instanzen anstelle eines gesamten Projekts. Die gleichen Exploits und Einschränkungen wie für den vorherigen Abschnitt gelten.

compute.instances.setIamPolicy

Diese Art von Berechtigung ermöglicht es Ihnen, sich selbst eine Rolle mit den vorherigen Berechtigungen zu erteilen und Berechtigungen zu missbrauchen, um Privilegien zu eskalieren.

compute.instances.osLogin

Wenn OSLogin in der Instanz aktiviert ist, können Sie mit dieser Berechtigung einfach gcloud compute ssh [INSTANZ] ausführen und sich mit der Instanz verbinden. Sie haben keine Root-Berechtigungen innerhalb der Instanz.

compute.instances.osAdminLogin

Wenn OSLogin in der Instanz aktiviert ist, können Sie mit dieser Berechtigung einfach gcloud compute ssh [INSTANZ] ausführen und sich mit der Instanz verbinden. Sie haben Root-Berechtigungen innerhalb der Instanz.

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 Servicekonto zu erstellen und das Token des Servicekontos zu stehlen, um Privilegien darauf 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 ein Deployment erstellen. Dadurch können Sie sich seitlich in der Umgebung bewegen und Codeausführung auf allen Compute-Instanzen innerhalb eines Projekts erlangen.

Wenn Sie dies manuell ausnutzen möchten, müssen Sie entweder einen Patch-Job oder ein Deployment für einen Patch-Job erstellen:

gcloud compute os-config patch-jobs execute --file=patch.json

Um ein Patch-Deployment bereitzustellen:

gcloud compute os-config patch-deployments create my-update --file=patch.json

Automatisierte Tools wie patchy existieren, um laxen Berechtigungen zu erkennen und automatisch seitlich zu bewegen.

Sie können dies auch für Persistenz missbrauchen.

compute.machineImages.setIamPolicy

Erteilen Sie sich zusätzliche Berechtigungen für Compute-Images.

compute.snapshots.setIamPolicy

Erteilen Sie sich zusätzliche Berechtigungen für ein Disk-Snapshot.

compute.disks.setIamPolicy

Erteilen Sie sich zusätzliche Berechtigungen für eine Festplatte.

Umgehung von Zugriffsberechtigungen

Unter folgendem Link finden Sie einige Ideen, um Zugriffsberechtigungen zu umgehen.

Lokale Privilegieneskalation in GCP Compute-Instanz

pageGCP - local privilege escalation ssh pivoting

Referenzen

Erlernen Sie AWS-Hacking von Grund auf mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

Last updated