GCP - Compute Privesc
Compute
Daha fazla bilgi için GCP'deki Compute ve VPC (ağ) hakkında kontrol edin:
pageGCP - Compute Enumcompute.projects.setCommonInstanceMetadata
compute.projects.setCommonInstanceMetadata
Bu izinle bir örneğin metadata bilgisini değiştirebilir ve bir kullanıcının yetkilendirilmiş anahtarlarını değiştirebilir veya sudo yetkilerine sahip yeni bir kullanıcı oluşturabilirsiniz. Bu nedenle, herhangi bir VM örneğine SSH üzerinden erişebilir ve örneğin çalıştığı GCP Hizmet Hesabını çalabilirsiniz. Sınırlamalar:
VM örneklerinde varsayılan olarak çalışan GCP Hizmet Hesapları çok sınırlı bir kapsama sahiptir
Giriş yapmak için SSH sunucusuna ulaşabilme yeteneğine sahip olmanız gerekecektir
Bu izni nasıl sömüreceğiniz hakkında daha fazla bilgi için kontrol edin:
pageGCP - Add Custom SSH Metadatacompute.instances.setMetadata
compute.instances.setMetadata
Bu izin, bir bütün projeye değil, belirli bir örneğe yönelik olarak önceki izinlerle aynı yetkileri verir. Önceki bölümdeki sömürüler ve sınırlamalar geçerlidir.
compute.instances.setIamPolicy
compute.instances.setIamPolicy
Bu tür bir izin, önceki izinlere sahip bir rolü kendinize atama ve bu izinleri kötüye kullanarak ayrıcalıkları yükseltme olanağı sağlar.
compute.instances.osLogin
compute.instances.osLogin
Eğer örnekte OSLogin etkinse, bu izinle sadece gcloud compute ssh [INSTANCE]
komutunu çalıştırarak örneğe bağlanabilirsiniz. Örneğin içinde root yetkilerine sahip olmayacaksınız.
compute.instances.osAdminLogin
compute.instances.osAdminLogin
Eğer örnekte OSLogin etkinse, bu izinle sadece gcloud compute ssh [INSTANCE]
komutunu çalıştırarak örneğe bağlanabilirsiniz. Örneğin içinde root yetkilerine sahip olacaksınız.
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
Bir atanmış Hizmet Hesabı olan bir sanal makine oluşturabilir ve ayrıcalıkları yükseltmek için hizmet hesabının belirteçlerini çalmak için metadata'ya erişebilirsiniz.
Bu yöntemin sömürü betiği burada bulunabilir.
osconfig.patchDeployments.create
| osconfig.patchJobs.exec
osconfig.patchDeployments.create
| osconfig.patchJobs.exec
osconfig.patchDeployments.create
veya osconfig.patchJobs.exec
izinlerine sahipseniz, yama işi veya dağıtımı oluşturabilirsiniz. Bu, ortamda yanal hareket etmenizi ve bir projedeki tüm hesaplama örneklerinde kod yürütme yetkisi elde etmenizi sağlar.
Bunu manuel olarak sömürmek isterseniz, ya bir yama işi veya dağıtım oluşturmanız gerekecektir:
gcloud compute os-config patch-jobs execute --file=patch.json
Bir yama dağıtımı dağıtmak için:
gcloud compute os-config patch-deployments create my-update --file=patch.json
patchy gibi otomatik araçlar, gevşek izinleri tespit etmek ve otomatik olarak yanal hareket etmek için mevcuttur.
Bu ayrıca kalıcılık için kötüye kullanılabilir.
compute.machineImages.setIamPolicy
compute.machineImages.setIamPolicy
Bilgisayara Ekstra İzinler verin.
compute.snapshots.setIamPolicy
compute.snapshots.setIamPolicy
Disk snapshot'a Ekstra İzinler verin.
compute.disks.setIamPolicy
compute.disks.setIamPolicy
Diske Ekstra İzinler verin.
Erişim Kapsamlarını Geçme
Bu bağlantıyı takip ederek erişim kapsamlarını geçmek için deneyebileceğiniz bazı fikirler bulabilirsiniz.
Yerel Ayrıcalık Yükseltme GCP Compute örneğinde
pageGCP - local privilege escalation ssh pivotingReferanslar
Last updated