GCP - Sourcerepos Privesc

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

Source Repositories

Source Repositories hakkında daha fazla bilgi için bakınız:

GCP - Source Repositories Enum

source.repos.get

Bu izin sayesinde repository’yi yerel olarak indirebilirsiniz:

Source repository'ı klonla ```bash gcloud source repos clone --project= ```

source.repos.update

Bu izne sahip bir principal, gcloud source repos clone <repo> ile klonlanan bir repository içinde kod yazabilir. Ancak bu iznin custom rollere atanamayacağını unutmayın, bu yüzden şu ön tanımlı roller aracılığıyla verilmelidir:

  • Owner
  • Editor
  • Source Repository Administrator (roles/source.admin)
  • Source Repository Writer (roles/source.writer)

Yazmak için normal bir git push yapmanız yeterlidir.

source.repos.setIamPolicy

Bu izin ile bir saldırgan kendine önceki izinleri verebilir.

Secret erişimi

Saldırgan token’ların saklandığı secrets’lara erişimi varsa bunları çalabilir. Bir secret’a nasıl erişileceği hakkında daha fazla bilgi için bakınız:

GCP - Secretmanager Privesc

SSH anahtarları ekleme

Web console’da Source Repository projesine ssh keys eklemek mümkündür. Bu, /v1/sshKeys:add üzerine bir POST isteği yapar ve https://source.cloud.google.com/user/ssh_keys adresinde yapılandırılabilir.

SSH key’iniz ayarlandıktan sonra bir repo’ya şu şekilde erişebilirsiniz:

SSH kullanarak repository klonlama ```bash git clone ssh://username@domain.com@source.developers.google.com:2022/p//r/ ```

Ve ardından git komutlarını her zamanki gibi kullanın.

Manuel Kimlik Bilgileri

Source Repositories’e erişmek için manuel kimlik bilgileri oluşturmak mümkündür:

İlk linke tıkladığınızda sizi https://source.developers.google.com/auth/start?scopes=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcloud-platform&state&authuser=3 adresine yönlendirir.

Bu, Oauth authorization prompt göstererek Google Cloud Development’e erişim isteyecektir. Bu nedenle bunun için ya kullanıcının kimlik bilgilerine ya da tarayıcıda açık bir oturuma ihtiyacınız olacak.

Bu sizi çalıştırılacak bir bash scripti içeren ve $HOME/.gitcookies içinde bir git cookie’si yapılandıran bir sayfaya gönderir.

Scripti çalıştırdıktan sonra git clone, push… komutlarını kullanabilirsiniz ve çalışacaktır.

source.repos.updateProjectConfig

Bu izinle, Source Repositories’in private key içeren kodların yüklenmesini engelleyen varsayılan korumasını devre dışı bırakmak mümkündür:

pushblock'u devre dışı bırakma ve pub/sub yapılandırmasını değiştirme ```bash gcloud source project-configs update --disable-pushblock ``` Farklı bir pub/sub topic'i de yapılandırabilir veya tamamen devre dışı bırakabilirsiniz: ```bash gcloud source project-configs update --remove-topic=REMOVE_TOPIC gcloud source project-configs update --remove-topic=UPDATE_TOPIC ```

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