GCP - Sourcerepos Privesc
Repozytoria źródłowe
Aby uzyskać więcej informacji na temat Repozytoriów Źródłowych, sprawdź:
pageGCP - Source Repositories Enumsource.repos.get
source.repos.get
Z tym uprawnieniem możliwe jest pobranie repozytorium lokalnie:
source.repos.update
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
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 PrivescDodawanie 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ą:
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
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:
Możesz również skonfigurować inny temat pub/sub lub nawet go całkowicie wyłączyć:
Last updated