GCP Pentesting
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Zanim rozpoczniesz pentesting środowiska GCP, istnieje kilka podstawowych rzeczy, które musisz wiedzieć o tym, jak to działa, aby pomóc Ci zrozumieć, co musisz zrobić, jak znaleźć błędne konfiguracje i jak je wykorzystać.
Koncepcje takie jak hierarchia organizacji, uprawnienia i inne podstawowe koncepcje są wyjaśnione w:
Aby audytować środowisko GCP, bardzo ważne jest, aby wiedzieć: które usługi są używane, co jest eksponowane, kto ma dostęp do czego i jak są połączone wewnętrzne usługi GCP z zewnętrznymi usługami.
Z punktu widzenia Red Team, pierwszym krokiem do kompromitacji środowiska GCP jest uzyskanie jakichś poświadczeń. Oto kilka pomysłów, jak to zrobić:
Wycieki w githubie (lub podobnych) - OSINT
Inżynieria społeczna (sprawdź stronę Workspace Security)
Ponowne użycie haseł (wycieki haseł)
Luki w aplikacjach hostowanych w GCP
Server Side Request Forgery z dostępem do punktu końcowego metadanych
Odczyt lokalnych plików
/home/USERNAME/.config/gcloud/*
C:\Users\USERNAME\.config\gcloud\*
Naruszone przez osoby trzecie
Wewnętrzny pracownik
Lub przez kompromitację nieautoryzowanej usługi eksponowanej:
Lub jeśli robisz przegląd, możesz po prostu poprosić o poświadczenia z tymi rolami:
Po uzyskaniu poświadczeń musisz wiedzieć do kogo należą te poświadczenia i do czego mają dostęp, więc musisz przeprowadzić podstawową enumerację:
Aby uzyskać więcej informacji na temat enumeracji metadanych GCP, sprawdź następującą stronę hacktricks:
W GCP możesz spróbować kilku opcji, aby zgadnąć, kim jesteś:
Możesz również użyć punktu końcowego API /userinfo
, aby uzyskać więcej informacji o użytkowniku:
Jeśli masz wystarczające uprawnienia, sprawdzenie uprawnień każdej jednostki w koncie GCP pomoże Ci zrozumieć, co Ty i inne tożsamości możecie zrobić oraz jak eskalować uprawnienia.
Jeśli nie masz wystarczających uprawnień do enumeracji IAM, możesz ukraść je za pomocą brute-force, aby je ustalić. Sprawdź jak przeprowadzić enumerację i brute-forcing w:
Teraz, gdy masz pewne informacje o swoich poświadczeniach (a jeśli jesteś w red team, miejmy nadzieję, że nie zostałeś wykryty). Czas ustalić, które usługi są używane w środowisku. W następnej sekcji możesz sprawdzić kilka sposobów na enumerację niektórych powszechnych usług.
GCP ma zdumiewającą ilość usług, na następnej stronie znajdziesz podstawowe informacje, cheat sheety do enumeracji, jak unikać wykrycia, uzyskać persistence oraz inne sztuczki po eksploatacji dotyczące niektórych z nich:
Zauważ, że nie musisz wykonywać całej pracy ręcznie, poniżej w tym poście znajdziesz sekcję o automatycznych narzędziach.
Co więcej, na tym etapie możesz odkryć więcej usług wystawionych dla użytkowników nieautoryzowanych, które możesz wykorzystać:
Najczęstszym sposobem, gdy uzyskasz jakieś poświadczenia chmurowe lub skompromitujesz jakąś usługę działającą w chmurze, jest wykorzystanie źle skonfigurowanych uprawnień, które może mieć skompromitowane konto. Dlatego pierwszą rzeczą, którą powinieneś zrobić, jest enumeracja swoich uprawnień.
Co więcej, podczas tej enumeracji pamiętaj, że uprawnienia mogą być ustawione na najwyższym poziomie "Organizacji" również.
Podczas enumeracji usług GCP mogłeś znaleźć niektóre z nich wystawiające elementy do Internetu (porty VM/Kontenerów, bazy danych lub usługi kolejkowe, migawki lub kosze...). Jako pentester/red teamer zawsze powinieneś sprawdzić, czy możesz znaleźć wrażliwe informacje / luki w nich, ponieważ mogą one zapewnić Ci dalszy dostęp do konta AWS.
W tej książce powinieneś znaleźć informacje o tym, jak znaleźć wystawione usługi GCP i jak je sprawdzić. Jeśli chodzi o to, jak znaleźć luki w wystawionych usługach sieciowych, polecam poszukać konkretnej usługi w:
Kompromitacja jednostek w jednej platformie może pozwolić atakującemu na kompromitację drugiej, sprawdź to w:
W konsoli GCloud, w https://console.cloud.google.com/iam-admin/asset-inventory/dashboard możesz zobaczyć zasoby i IAM-y używane przez projekt.
Tutaj możesz zobaczyć zasoby obsługiwane przez to API: https://cloud.google.com/asset-inventory/docs/supported-asset-types
Sprawdź narzędzia, które mogą być używane w kilku chmurach tutaj.
gcp_scanner: To jest skaner zasobów GCP, który może pomóc określić, jakiego poziomu dostępu pewne poświadczenia posiadają w GCP.
gcp_enum: Skrypt Bash do enumeracji środowiska GCP za pomocą gcloud cli i zapisywania wyników w pliku.
GCP-IAM-Privilege-Escalation: Skrypty do enumeracji wysokich uprawnień IAM i eskalacji uprawnień w GCP poprzez ich nadużycie (nie mogłem uruchomić skryptu enumeracji).
BF My GCP Permissions: Skrypt do brutalnego łamania twoich uprawnień.
Pamiętaj, że możesz użyć parametru --log-http
z gcloud
cli, aby wydrukować żądania, które narzędzie wykonuje. Jeśli nie chcesz, aby logi redagowały wartość tokena, użyj gcloud config set log_http_redact_token false
Ponadto, aby przechwycić komunikację:
Aby użyć wyekstrahowanego tokena OAuth konta usługi z punktu końcowego metadanych, wystarczy:
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)