GCP - Sourcerepos Privesc
Last updated
Last updated
Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Aby uzyskać więcej informacji na temat Repozytoriów Źródłowych, sprawdź:
source.repos.get
Dzięki temu uprawnieniu możliwe jest pobranie repozytorium lokalnie:
source.repos.update
Principal z tym uprawnieniem będzie mógł pisać kod w repozytorium sklonowanym za pomocą gcloud source repos clone <repo>
. Należy jednak zauważyć, że to uprawnienie nie może być przypisane do niestandardowych ról, więc musi być nadane za pomocą zdefiniowanej roli, takiej jak:
Właściciel
Edytor
Administrator Repozytoriów Źródłowych (roles/source.admin
)
Pisarz Repozytoriów Źródłowych (roles/source.writer
)
Aby pisać, wystarczy wykonać standardowe git push
.
source.repos.setIamPolicy
Dzięki temu uprawnieniu atakujący mógłby przyznać sobie poprzednie uprawnienia.
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ź:
Możliwe jest dodanie kluczy ssh do projektu Repozytoriów Źródłowych w konsoli internetowej. Wysyła żądanie POST do /v1/sshKeys:add
i można je skonfigurować w https://source.cloud.google.com/user/ssh_keys
Gdy twój klucz ssh jest ustawiony, możesz uzyskać dostęp do repozytorium za pomocą:
A następnie użyj poleceń git
jak zwykle.
Możliwe jest utworzenie ręcznych poświadczeń do uzyskania 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 wyświetlenie okna autoryzacji Oauth, aby uzyskać dostęp do Google Cloud Development. Będziesz potrzebować albo poświadczeń użytkownika, albo otwartej sesji w przeglądarce.
To przeniesie cię na stronę z skryptem bash do wykonania i skonfigurowania ciasteczka git w $HOME/.gitcookies
Wykonując skrypt, możesz następnie użyć git clone, push... i to zadziała.
source.repos.updateProjectConfig
Dzięki temu uprawnieniu możliwe jest wyłączenie domyślnej ochrony Repozytoriów Źródłowych, aby nie przesyłać kodu zawierającego Klucze Prywatne:
Możesz również skonfigurować inny temat pub/sub lub nawet całkowicie go wyłączyć:
Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)