GCP - Sourcerepos Privesc

Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

Repozytoria źródłowe

Aby uzyskać więcej informacji na temat Repozytoriów Źródłowych, sprawdź:

pageGCP - Source Repositories Enum

source.repos.get

Z tym uprawnieniem możliwe jest pobranie repozytorium lokalnie:

gcloud source repos clone <repo-name> --project=<project-uniq-name>

source.repos.update

Użytkownik z tym uprawnieniem będzie mógł pisać kod wewnątrz repozytorium sklonowanego za pomocą gcloud source repos clone <repo>. Należy zauważyć, że to uprawnienie nie może być przypisane do niestandardowych ról, dlatego musi być nadane za pomocą predefiniowanej roli, takiej jak:

  • Właściciel

  • Edytor

  • Administrator repozytorium źródłowego (roles/source.admin)

  • Pisarz repozytorium źródłowego (roles/source.writer)

Aby pisać, wystarczy wykonać zwykłe git push.

source.repos.setIamPolicy

Z tym uprawnieniem atakujący mógłby przyznać sobie wcześniejsze uprawnienia.

Dostęp do sekretów

Jeśli atakujący ma dostęp do sekretów, w których przechowywane są tokeny, będzie mógł je ukraść. Aby uzyskać więcej informacji na temat dostępu do sekretu, sprawdź:

pageGCP - Secretmanager Privesc

Dodawanie kluczy SSH

Możliwe jest dodanie kluczy SSH do projektu repozytorium źródłowego w konsoli internetowej. Wysyła to żądanie POST do /v1/sshKeys:add i można to skonfigurować w https://source.cloud.google.com/user/ssh_keys

Po ustawieniu klucza SSH można uzyskać dostęp do repozytorium za pomocą:

git clone ssh://username@domain.com@source.developers.google.com:2022/p/<proj-name>/r/<repo-name>

Następnie użyj poleceń git jak zwykle.

Ręczne poświadczenia

Możliwe jest utworzenie ręcznych poświadczeń do dostępu do Repozytoriów źródłowych:

Klikając na pierwszy link zostaniesz przekierowany do https://source.developers.google.com/auth/start?scopes=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcloud-platform&state&authuser=3

Co spowoduje okno autoryzacji Oauth, aby uzyskać dostęp do Google Cloud Development. Będziesz potrzebował poświadczeń użytkownika lub otwartej sesji w przeglądarce.

Zostaniesz przekierowany na stronę z skryptem bash do wykonania i skonfigurowania ciasteczka git w $HOME/.gitcookies

Wykonując skrypt, będziesz mógł używać git clone, push... i będzie działać.

source.repos.updateProjectConfig

Z tym uprawnieniem można wyłączyć domyślną ochronę Repozytoriów źródłowych przed przesyłaniem kodu zawierającego Klucze Prywatne:

gcloud source project-configs update --disable-pushblock

Możesz również skonfigurować inny temat pub/sub lub nawet go całkowicie wyłączyć:

gcloud source project-configs update --remove-topic=REMOVE_TOPIC
gcloud source project-configs update --remove-topic=UPDATE_TOPIC
Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

Last updated