GCP - Run Privesc
Cloud Run
Cloud Run hakkında daha fazla bilgi için şuraya bakın:
GCP - Cloud Run Enumrun.services.create
, iam.serviceAccounts.actAs
, run.routes.invoke
run.services.create
, iam.serviceAccounts.actAs
, run.routes.invoke
Bu izinlere sahip bir saldırgan, rastgele kod çalıştıran bir çalıştırma hizmeti oluşturabilir (rastgele Docker konteyneri), bir Hizmet Hesabını buna ekleyebilir ve kodun Hizmet Hesabı belirteçini metadatanın dışına çıkarmasını sağlayabilir.
Bu yöntem için bir saldırı betiği burada bulunabilir ve Docker imajı burada bulunabilir.
gcloud run deploy
kullanırken sadece hizmet oluşturmak yerine update
iznine ihtiyaç duyar. Bir örneğe buradan bakın.
run.services.update
, iam.serviceAccounts.actAs
run.services.update
, iam.serviceAccounts.actAs
Öncekine benzer ancak bir hizmeti günceller:
run.services.setIamPolicy
run.services.setIamPolicy
Kendinize bulut Run üzerinde önceki izinleri verin.
run.jobs.create
, run.jobs.run
, (run.jobs.get
)
run.jobs.create
, run.jobs.run
, (run.jobs.get
)Komutta belirtilen hizmet hesabını çalmak için ters kabukla bir işlem başlatın. Bir sızma burada bulabilirsiniz.
run.jobs.update
,run.jobs.run
,iam.serviceaccounts.actAs
,(run.jobs.get
)
run.jobs.update
,run.jobs.run
,iam.serviceaccounts.actAs
,(run.jobs.get
)Öncekiyle benzer şekilde bir işi güncellemek ve SA'yı güncellemek, komutu ve çalıştırmayı mümkün kılar:
run.jobs.run, run.jobs.runWithOverrides, (run.jobs.get)
İş yürütme ortam değişkenlerini kötüye kullanarak keyfi kod yürüterek ters kabuk almak için iş yürütme ortam değişkenlerini kötüye kullanın ve konteynerın içeriğini (kaynak kodu) boşaltmak ve metaverideki SA'ya erişmek:
çrun.jobs.setIamPolicy
çrun.jobs.setIamPolicy
Kendinize önceki izinleri Cloud Jobs üzerinde verin.
Referanslar
Last updated