GCP - Compute Privesc
Last updated
Last updated
Daha fazla bilgi için GCP'de Hesaplama ve VPC (ağ) hakkında kontrol edin:
Tüm ayrıcalık yükseltme saldırılarını gerçekleştirmek için, örneğin, örneğin metadatanın değiştirilmesini gerektiren saldırılar için, önce örneğe bağlı SA üzerinde actAs
izinlerine sahip olmanız gerektiğini unutmayın, hatta SA zaten bağlı olsa bile!
compute.projects.setCommonInstanceMetadata
Bu izinle bir örneğin metadata bilgilerini değiştirebilir ve bir kullanıcının yetkili anahtarlarını değiştirebilir veya sudo yetkilerine sahip yeni bir kullanıcı oluşturabilirsiniz. Bu nedenle, herhangi bir VM örneğine SSH üzerinden giriş yapabilir ve örneğin çalıştığı GCP Hizmet Hesabını çalabilirsiniz. Sınırlamalar:
VM örneklerinde çalışan GCP Hizmet Hesapları varsayılan olarak çok sınırlı bir kapsama sahiptir
SSH sunucusuna bağlanabilmelisiniz giriş yapmak için
Bu izni nasıl sömürüleceği hakkında daha fazla bilgi için kontrol edin:
Bu saldırıyı yeni başlangıç betiği ekleyerek ve örneği yeniden başlatarak da gerçekleştirebilirsiniz:
compute.instances.setMetadata
Bu izin, bir bütün proje yerine belirli örnekler üzerinde aynı ayrıcalıkları verir. Önceki bölümde olduğu gibi aynı zafiyetler ve kısıtlamalar geçerlidir.
compute.instances.setIamPolicy
Bu tür bir izin size önceki izinlerle kendinize rol verme ve bu izinleri kötüye kullanarak ayrıcalıkları yükseltme olanağı sağlar.
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 ayrıcalıklarınız olmayacak.
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 ayrıcalıklarınız olacak.
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 hizmet hesabına atanan bir sanal makine oluşturarak ve hizmet hesabının belirteci çalınarak ayrıcalıkları yükseltmek mümkündür.
Bu yöntemin zafiyet betiği burada bulunabilir.
osconfig.patchDeployments.create
| osconfig.patchJobs.exec
Eğer osconfig.patchDeployments.create
veya osconfig.patchJobs.exec
izinleriniz varsa bir yama işlemi veya dağıtımı oluşturabilirsiniz. Bu, ortamda yatay hareket etmenizi ve bir projedeki tüm hesaplama örneklerinde kod yürütme yetkisi kazanmanızı sağlar.
Bu işlemi manuel olarak kullanmak isterseniz ya bir yama işlemi ya da 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 yatay hareket etmek için mevcuttur.
Bu ayrıca kalıcılık için de kötüye kullanılabilir.
compute.machineImages.setIamPolicy
Kendinize ekstra izinler vermek için makine Görüntüsüne izin verin.
compute.snapshots.setIamPolicy
Disk anlık görüntüsüne ekstra izinler verin.
compute.disks.setIamPolicy
Diske ekstra izinler verin.
Bu bağlantıyı takip ederek erişim kapsamlarını atlamak için denenebilecek bazı fikirler bulabilirsiniz.