GCP - Cloud Run Enum

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

HackTricks'ı desteklemenin diğer yolları:

Cloud Run

Cloud Run, Google'ın ölçeklenebilir altyapısı üzerinde doğrudan konteynerleri çalıştırmanıza olanak tanıyan bir sunucusuz yönetilen hesaplama platformudur.

Konteynerinizi çalıştırabilir veya Go, Node.js, Python, Java, .NET Core veya Ruby kullanıyorsanız, sizin için konteyneri oluşturan kaynak tabanlı dağıtım seçeneğini kullanabilirsiniz.

Google, Cloud Run'ı Google Cloud'daki diğer hizmetlerle iyi çalışacak şekilde tasarlamıştır, böylece tam özellikli uygulamalar oluşturabilirsiniz.

Hizmetler ve işler

Cloud Run'da kodunuz ya bir hizmet olarak sürekli çalışabilir ya da bir olarak çalışabilir. Hem hizmetler hem de işler aynı ortamda çalışır ve Google Cloud'daki diğer hizmetlerle aynı entegrasyonları kullanabilir.

  • Cloud Run hizmetleri. Web isteklerine veya olaylara yanıt veren kodu çalıştırmak için kullanılır.

  • Cloud Run işleri. Bir işi gerçekleştiren (bir iş) ve iş tamamlandığında sona eren kodu çalıştırmak için kullanılır.

Cloud Run Hizmeti

Google Cloud Run, env değişkenlerini arayabileceğiniz başka bir sunucusuz tekliftir. Cloud Run, varsayılan olarak konteyner içinde 8080 numaralı bağlantı noktasında çalışan küçük bir web sunucusu oluşturur ve HTTP GET isteği bekler. İstek alındığında, bir iş yürütülür ve iş günlüğü bir HTTP yanıtı aracılığıyla çıktılanır.

İlgili ayrıntılar

  • Varsayılan olarak, web sunucusuna erişim geneldir, ancak sınırlı iç trafiğe (VPC...) de sınırlanabilir. Ayrıca, web sunucusuna ulaşmak için kimlik doğrulaması, tümüne izin verme veya IAM aracılığıyla kimlik doğrulama gerektirme şeklinde olabilir.

  • Varsayılan olarak, şifreleme bir Google tarafından yönetilen anahtar kullanır, ancak KMS tarafından bir CMEK (Müşteri Yönetimli Şifreleme Anahtarı) de seçilebilir.

  • Varsayılan olarak, kullanılan hizmet hesabı proje üzerinde Editör erişimine sahip olan Compute Engine varsayılan hesabıdır ve cloud-platform kapsamına sahiptir.

  • Yürütme için açık metin ortam değişkenleri tanımlanabilir ve hatta bulut sırlarını bağlamak veya bulut sırlarını ortam değişkenlerine eklemek mümkündür.

  • Ayrıca, Cloud SQL ile bağlantılar eklemek ve bir dosya sistemi bağlamak mümkündür.

  • Dağıtılan hizmetlerin URL'leri, https://<svc-name>-<random>.a.run.app şeklinde benzerdir.

  • Bir Run Hizmeti, 1'den fazla sürüm veya revizyon içerebilir ve çeşitli revizyonlar arasında trafiği bölebilir.

Enumerasyon

# List services
gcloud run services list
gcloud run services list --platform=managed
gcloud run services list --platform=gke

# Get info of a service
gcloud run services describe --region <region> <svc-name>

# Get info of all the services together
gcloud run services list --format=yaml
gcloud run services list --platform=managed --format=json
gcloud run services list --platform=gke --format=json

# Get policy
gcloud run services get-iam-policy --region <region> <svc-name>

# Get revisions
gcloud run revisions list --region <region>
gcloud run revisions describe --region <region> <revision>

# Get domains
gcloud run domain-mappings list
gcloud run domain-mappings describe <name>

# Attempt to trigger a job unauthenticated
curl <url>

# Attempt to trigger a job with your current gcloud authorization
curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" <url>

Cloud Run İşleri

Cloud Run işleri, tamamlanma süresi olan ve istekleri karşılamayan konteynerler için daha uygun olabilir. İşler, istekleri karşılamak veya bir bağlantı noktasında dinlemek gibi bir yeteneğe sahip değildir. Bu, Cloud Run hizmetlerinin aksine, işlerin bir web sunucusu içermemesi gerektiği anlamına gelir. Bunun yerine, iş konteynerleri tamamlandığında sonlanmalıdır.

Sıralama

gcloud beta run jobs list
gcloud beta run jobs describe --region <region> <job-name>
gcloud beta run jobs get-iam-policy --region <region> <job-name>

Ayrıcalık Yükseltme

Aşağıdaki sayfada, ayrıcalıkları yükseltmek için bulut çalıştırma izinlerinin nasıl kötüye kullanılabileceğini kontrol edebilirsiniz:

pageGCP - Run Privesc

Kimlik Doğrulamasız Erişim

pageGCP - Cloud Run Unauthenticated Enum

Saldırı Sonrası

pageGCP - Cloud Run Post Exploitation

Kalıcılık

pageGCP - Cloud Run Persistence

Referanslar

htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahraman olmak için AWS hackleme öğrenin!

HackTricks'i desteklemenin diğer yolları:

Last updated