GCP - Compute Privesc
Compute
Für weitere Informationen zu Compute und VPC (Netzwerk) in GCP überprüfen Sie:
pageGCP - Compute Enumcompute.projects.setCommonInstanceMetadata
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 Metadatacompute.instances.setMetadata
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
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
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
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
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
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
compute.machineImages.setIamPolicy
Erteilen Sie sich zusätzliche Berechtigungen für Compute-Images.
compute.snapshots.setIamPolicy
compute.snapshots.setIamPolicy
Erteilen Sie sich zusätzliche Berechtigungen für ein Disk-Snapshot.
compute.disks.setIamPolicy
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 pivotingReferenzen
Last updated