GCP - Privilege Escalation
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)
GCP, jak każda inna chmura, ma pewne zasady: użytkownicy, grupy i konta serwisowe, oraz pewne zasoby takie jak silnik obliczeniowy, funkcje chmurowe… Następnie, poprzez role, uprawnienia są przyznawane tym zasadom nad zasobami. To jest sposób na określenie uprawnień, jakie zasada ma nad zasobą w GCP. Istnieją pewne uprawnienia, które pozwolą użytkownikowi uzyskać jeszcze więcej uprawnień nad zasobem lub zasobami osób trzecich, i to nazywa się podwyższaniem uprawnień (także, wykorzystaniem luk w zabezpieczeniach, aby uzyskać więcej uprawnień).
Dlatego chciałbym podzielić techniki podwyższania uprawnień w GCP na 2 grupy:
Privesc do zasady: To pozwoli ci udawać inną zasadę, a tym samym działać jak ona ze wszystkimi jej uprawnieniami. np.: Wykorzystanie getAccessToken do udawania konta serwisowego.
Privesc nad zasobem: To pozwoli ci uzyskać więcej uprawnień nad konkretnym zasobem. np.: możesz wykorzystać uprawnienie setIamPolicy nad cloudfunctions, aby umożliwić sobie wywołanie funkcji.
Zauważ, że niektóre uprawnienia zasobów również pozwolą ci dołączyć dowolne konto serwisowe do zasobu. Oznacza to, że będziesz mógł uruchomić zasób z SA, dostać się do zasobu i ukraść token SA. Dlatego to pozwoli na podwyższenie do zasady poprzez eskalację zasobu. To zdarzyło się w kilku zasobach wcześniej, ale teraz jest mniej powszechne (ale nadal może się zdarzyć).
Oczywiście, najbardziej interesujące techniki podwyższania uprawnień to te z drugiej grupy, ponieważ pozwolą ci uzyskać więcej uprawnień poza zasobami, nad którymi już masz pewne uprawnienia. Jednak zauważ, że eskalacja w zasobach może również dać ci dostęp do wrażliwych informacji lub nawet do innych zasad (może poprzez odczytanie sekretu, który zawiera token SA).
Ważne jest również, aby zauważyć, że w GCP Konta Serwisowe są zarówno zasadami, jak i uprawnieniami, więc podwyższanie uprawnień w SA pozwoli ci również na jego udawanie.
Uprawnienia w nawiasach wskazują uprawnienia potrzebne do wykorzystania luki za pomocą gcloud
. Mogą nie być potrzebne, jeśli wykorzystujesz to przez API.
Tak testuję konkretne uprawnienia do wykonywania konkretnych działań w GCP.
Pobierz repozytorium github https://github.com/carlospolop/gcp_privesc_scripts
Dodaj w tests/ nowy skrypt
Tokeny SA wyciekające z usługi metadanych GCP mają zakresy dostępu. Są to ograniczenia dotyczące uprawnień, które ma token. Na przykład, jeśli token ma zakres https://www.googleapis.com/auth/cloud-platform
, będzie miał pełny dostęp do wszystkich usług GCP. Jednak jeśli token ma zakres https://www.googleapis.com/auth/cloud-platform.read-only
, będzie miał tylko dostęp tylko do odczytu do wszystkich usług GCP, nawet jeśli SA ma więcej uprawnień w IAM.
Nie ma bezpośredniego sposobu na obejście tych uprawnień, ale zawsze możesz spróbować poszukać nowych poświadczeń w skompromitowanym hoście, znaleźć klucz usługi do wygenerowania tokena OAuth bez ograniczeń lub przejść do innej VM mniej ograniczonej.
Gdy używane są zakresy dostępu, token OAuth, który jest generowany dla instancji obliczeniowej (VM), będzie miał ograniczenie zakresu włączone. Jednak możesz być w stanie obejść to ograniczenie i wykorzystać uprawnienia, które ma skompromitowane konto.
Najlepszym sposobem na obejście tego ograniczenia jest albo znalezienie nowych poświadczeń w skompromitowanym hoście, albo znalezienie klucza usługi do wygenerowania tokena OAuth bez ograniczeń, albo skompromitowanie innej VM z SA mniej ograniczonym.
Sprawdź SA z kluczami wygenerowanymi za pomocą:
Sposobem na eskalację swoich uprawnień w AWS jest posiadanie wystarczających uprawnień, aby w jakiś sposób uzyskać dostęp do uprawnień innych kont serwisowych/użytkowników/grup. Łączenie eskalacji, aż uzyskasz dostęp administratora do organizacji.
GCP ma setki (jeśli nie tysiące) uprawnień, które mogą być przyznane podmiotowi. W tej książce znajdziesz wszystkie uprawnienia, które znam, które możesz wykorzystać do eskalacji uprawnień, ale jeśli znasz jakąś ścieżkę, która nie została tutaj wspomniana, proszę podziel się nią.
Podstrony tej sekcji są uporządkowane według usług. Na każdej usłudze znajdziesz różne sposoby na eskalację uprawnień w tych usługach.
Jeśli jesteś wewnątrz maszyny w GCP, możesz być w stanie wykorzystać uprawnienia do eskalacji uprawnień nawet lokalnie:
GCP - local privilege escalation ssh pivotingUcz 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)