GCP - Privilege Escalation
Last updated
Last updated
Learn & practice AWS Hacking: Learn & practice GCP Hacking:
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 zasobem 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ę eskalacją uprawnień (także, wykorzystanie luk w zabezpieczeniach, aby uzyskać więcej uprawnień).
Dlatego chciałbym podzielić techniki eskalacji uprawnień w GCP na 2 grupy:
Eskalacja 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.
Eskalacja 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 eskalację 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 eskalacji 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 eskalacja uprawnień w SA pozwoli ci również na jego udawanie.
Uprawnienia w nawiasach wskazują na uprawnienia potrzebne do wykorzystania luki za pomocą gcloud
. Mogą nie być potrzebne, jeśli wykorzystujesz to przez API.
To jest sposób, w jaki testuję konkretne uprawnienia do wykonywania konkretnych działań w GCP.
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.
Najlepszym sposobem na obejście tego ograniczenia jest albo znalezienie nowych poświadczeń w skompromitowanym hoście, znalezienie klucza usługi do wygenerowania tokena OAuth bez ograniczeń lub 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 usługowych/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 wymieniona, 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:
Pobierz repozytorium github
Gdy używane są , token OAuth, który jest generowany dla instancji obliczeniowej (VM), będzie miał włączone. Jednak możesz być w stanie obejść to ograniczenie i wykorzystać uprawnienia, które ma skompromitowane konto.
Ucz się i ćwicz Hacking AWS: Ucz się i ćwicz Hacking GCP:
Sprawdź !
Dołącz do 💬 lub lub śledź nas na Twitterze 🐦 .
Dziel się trikami hackingowymi, przesyłając PR-y do i repozytoriów github.