GCP - Cloud Run 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

Cloud Run

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

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

Google, Cloud Run’ı Google Cloud’daki diğer hizmetlerle iyi çalışacak şekilde inşa etmiştir, böylece tam özellikli uygulamalar geliştirebilirsiniz.

Services and jobs

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 yerine getiren kodu çalıştırmak için kullanılır ve iş tamamlandığında çıkar.

Cloud Run Service

Google Cloud Run, çevresel değişkenleri arayabileceğiniz başka bir sunucusuz tekliftir. Cloud Run, varsayılan olarak konteynerin içinde 8080 numaralı portta çalışan küçük bir web sunucusu oluşturur ve bir 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ı olarak verilir.

Relevant details

  • Varsayılan olarak, web sunucusuna erişim genel olup, ancak iç trafikle sınırlı da olabilir (VPC…)
    Ayrıca, web sunucusuna ulaşmak için kimlik doğrulama ya herkese izin verme ya da IAM aracılığıyla kimlik doğrulama gerektirme şeklinde olabilir.
  • Varsayılan olarak, şifreleme bir Google yönetilen anahtarı kullanır, ancak bir CMEK (Müşteri Yönetimli Şifreleme Anahtarı) KMS’den de seçilebilir.
  • Varsayılan olarak, kullanılan hizmet hesabı Compute Engine varsayılanıdır ve projeye Editör erişimi vardır ve cloud-platform kapsamına sahiptir.
  • Çalıştırma için düz metin çevresel değişkenleri tanımlamak mümkündür ve hatta bulut gizli anahtarlarını monte etmek veya çevresel değişkenlere bulut gizli anahtarları eklemek mümkündür.
  • Cloud SQL ile bağlantılar eklemek ve bir dosya sistemini monte etmek de mümkündür.
  • Dağıtılan hizmetlerin URL’leri https://<svc-name>-<random>.a.run.app formatına benzer.
  • Bir Run Service, 1’den fazla versiyon veya revizyon alabilir ve birden fazla revizyon arasında trafiği bölebilir.

Enumeration

# 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, tamamlanmak için çalışan ve istekleri sunmayan konteynerler için daha uygun bir seçenek olabilir. İşler, istekleri sunma veya bir portta dinleme yeteneğine sahip değildir. Bu, Cloud Run hizmetlerinin aksine, işlerin bir web sunucusu içermemesi gerektiği anlamına gelir. Bunun yerine, iş konteynerleri işlerini tamamladıklarında çıkmalıdır.

Sayım

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>

Yetki Yükseltme

Aşağıdaki sayfada, bulut çalıştırma izinlerini kötüye kullanarak yetki yükseltmeyi kontrol edebilirsiniz:

GCP - Run Privesc

Kimlik Doğrulaması Olmayan Erişim

GCP - Cloud Run Unauthenticated Enum

Sonrası İstismar

GCP - Cloud Run Post Exploitation

Süreklilik

GCP - Cloud Run Persistence

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