GCP - Compute Enum

Tip

AWS Hacking’i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
Az Hacking’i öğrenin ve pratik yapın: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks'i Destekleyin

GCP VPC & Networking

Bunun nasıl çalıştığını öğrenin:

GCP - VPC & Networking

Enumeration

# List networks
gcloud compute networks list
gcloud compute networks describe <network>

# List subnetworks
gcloud compute networks subnets list
gcloud compute networks subnets get-iam-policy <name> --region <region>
gcloud compute networks subnets describe <name> --region <region>

# List FW rules in networks
gcloud compute firewall-rules list --format="table(
name,
network,
direction,
priority,
sourceRanges.list():label=SRC_RANGES,
destinationRanges.list():label=DEST_RANGES,
allowed[].map().firewall_rule().list():label=ALLOW,
denied[].map().firewall_rule().list():label=DENY,
sourceTags.list():label=SRC_TAGS,
sourceServiceAccounts.list():label=SRC_SVC_ACCT,
targetTags.list():label=TARGET_TAGS,
targetServiceAccounts.list():label=TARGET_SVC_ACCT,
disabled
)"

# List Hierarchical Firewalls
gcloud compute firewall-policies list  (--folder <value>| --organization <value>)
gcloud compute firewall-policies describe <fw_policy>
gcloud compute firewall-policies list-rules <fw_policy>

# Get Firewalls of each region
gcloud compute network-firewall-policies list
## Get final FWs applied in a region
gcloud compute network-firewall-policies get-effective-firewalls --network=<vpc_name> --region <region>

Açık güvenlik duvarı kurallarıyla compute instance’ları kolayca bulabilirsiniz https://gitlab.com/gitlab-com/gl-security/security-operations/gl-redteam/gcp_firewall_enum

Compute instance’ları

Bu, GCP içinde sanal makineleri çalıştırmanın yoludur. Daha fazla bilgi için bu sayfayı kontrol edin:

GCP - Compute Instances

Enumeration

# Get list of zones
# It's interesting to know which zones are being used
gcloud compute regions list | grep -E "NAME|[^0]/"

# List compute instances & get info
gcloud compute instances list
gcloud compute instances describe <instance name>
gcloud compute instances get-iam-policy <instance> --zone=ZONE
gcloud compute instances get-screenshot <instance name> # Instace must have "Display Device" enabled
gcloud compute instances os-inventory list-instances # Get OS info of instances (OS Config agent is running on instances)


# Enumerate disks
gcloud compute disks list
gcloud compute disks describe <disk>
gcloud compute disks get-iam-policy <disk>

Daha fazla bilgi için SSH veya bir örneğin metadata’sını değiştirme ile yetki yükseltme hakkında, bu sayfayı kontrol edin:

GCP - local privilege escalation ssh pivoting

Yetki Yükseltme

Aşağıdaki sayfada, yetki yükseltmek için hesaplama izinlerini nasıl kötüye kullanacağınızı kontrol edebilirsiniz:

GCP - Compute Privesc

Kimlik Doğrulaması Olmayan Enum

GCP - Compute Unauthenticated Enum

Sonrası İstismar

GCP - Compute Post Exploitation

Süreklilik

GCP - Compute Persistence

Seri Konsol Günlükleri

Compute Engine Seri Konsol Günlükleri, sanal makine örneklerinizin başlatma ve işletim sistemi günlüklerini görüntülemenizi ve teşhis etmenizi sağlayan bir özelliktir.

Seri Konsol Günlükleri, örneğin başlatma sürecinin düşük seviyeli bir görünümünü sağlar; bu, çekirdek mesajları, başlatma betikleri ve başlatma sırasında meydana gelen diğer sistem olaylarını içerir. Bu, başlatma sorunlarını gidermek, yanlış yapılandırmaları veya yazılım hatalarını tanımlamak veya ağ bağlantısı sorunlarını çözmek için yararlı olabilir.

Bu günlükler, düşük ayrıcalıklı bir kullanıcının genellikle göremeyeceği sistem günlüklerinden hassas bilgileri açığa çıkarabilir, ancak uygun IAM izinleri ile bunları okuyabilirsiniz.

Aşağıdaki gcloud komutunu kullanarak seri port günlüklerini sorgulayabilirsiniz (gerekli izin compute.instances.getSerialPortOutput):

gcloud compute instances get-serial-port-output <instance-name>

Startup Scripts çıktısı

Başlangıç betiklerinin çıktısını VM’den görmek mümkündür:

sudo journalctl -u google-startup-scripts.service

OS Configuration Manager

OS yapılandırma yönetim hizmetini kullanarak VM örneğiniz için tutarlı yapılandırmalar (istenen durum ve yazılım) dağıtabilir, sorgulayabilir ve sürdürebilirsiniz. Compute Engine’de, bir VM’de tutarlı yazılım yapılandırmalarını sürdürmek için guest policies kullanmalısınız.

OS Yapılandırma yönetim özelliği, hangi yazılım paketlerinin yüklenmesi gerektiğini, hangi hizmetlerin etkinleştirilmesi gerektiğini ve hangi dosyaların veya yapılandırmaların VM’lerinizde bulunması gerektiğini belirten yapılandırma politikaları tanımlamanıza olanak tanır. VM’lerinizin yazılım yapılandırmasını yönetmek için deklaratif bir yaklaşım kullanabilir, bu da yapılandırma yönetim sürecinizi daha kolay otomatikleştirmenizi ve ölçeklendirmenizi sağlar.

Bu ayrıca IAM izinleri aracılığıyla örneklere giriş yapmayı da sağlar, bu nedenle privesc ve pivoting için çok faydalıdır.

Warning

Tüm bir projede veya bir örnekte os-config’i etkinleştirmek için sadece metadata anahtarını enable-oslogin değerini true olarak ayarlamanız yeterlidir.
Ayrıca, 2fa’yı etkinleştirmek için metadata enable-oslogin-2fa anahtarını true olarak ayarlayabilirsiniz.

Bir örnek oluştururken bunu etkinleştirdiğinizde, metadata anahtarları otomatik olarak ayarlanacaktır.

OS-config’de 2fa hakkında daha fazla bilgi, sadece kullanıcı için geçerlidir, eğer bir SA (compute SA gibi) ise, ekstra bir şey gerektirmeyecektir.

Enumeration

gcloud compute os-config patch-deployments list
gcloud compute os-config patch-deployments describe <patch-deployment>

gcloud compute os-config patch-jobs list
gcloud compute os-config patch-jobs describe <patch-job>

Görseller

Özel Görseller

Özel hesaplama görselleri hassas detaylar veya istismar edebileceğiniz diğer savunmasız yapılandırmalar içerebilir.

Bir görsel oluşturulduğunda 3 tür şifreleme seçebilirsiniz: Google yönetimli anahtarı (varsayılan), KMS’den bir anahtar veya müşterinin verdiği ham anahtar.

Sayım

Aşağıdaki komutla bir projedeki standart dışı görsellerin listesini sorgulayabilirsiniz:

gcloud compute machine-images list
gcloud compute machine-images describe <name>
gcloud compute machine-images get-iam-policy <name>

Ardından, herhangi bir görüntüden sanallaştırma disklerini birden fazla formatta dışa aktarabilirsiniz. Aşağıdaki komut, test-image görüntüsünü qcow2 formatında dışa aktarır ve dosyayı indirip yerel olarak daha fazla inceleme için bir VM oluşturmanıza olanak tanır:

gcloud compute images export --image test-image \
--export-format qcow2 --destination-uri [BUCKET]

# Execute container inside a docker
docker run --rm -ti gcr.io/<project-name>/secret:v1 sh

Yetki Yükseltme

Compute Instances yetki yükseltme bölümünü kontrol edin.

Özel Instance Şablonları

Bir instance şablonu instance özelliklerini tanımlar ve tutarlı yapılandırmaların dağıtımına yardımcı olur. Bunlar, çalışan bir instance’ın özel meta verileriyle aynı türde hassas verileri içerebilir. Araştırmak için aşağıdaki komutları kullanabilirsiniz:

# List the available templates
gcloud compute instance-templates list

# Get the details of a specific template
gcloud compute instance-templates describe [TEMPLATE NAME]

Yeni görüntülerin hangi diski kullandığını bilmek ilginç olabilir, ancak bu şablonlar genellikle hassas bilgi içermez.

Anlık Görüntüler

Anlık görüntüler disklerin yedekleridir. Bunun, bir diski kopyalamakla (başka bir mevcut özellik) aynı şey olmadığını unutmayın.
Anlık görüntü, alındığı disk ile aynı şifrelemeyi kullanacaktır.

Sayım

gcloud compute snapshots list
gcloud compute snapshots describe <snapshot>
gcloud compute snapshots get-iam-policy <snapshot>

Yetki Yükseltme

Compute Instances yetki yükseltme bölümünü kontrol edin.

Referanslar

Tip

AWS Hacking’i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
Az Hacking’i öğrenin ve pratik yapın: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks'i Destekleyin