GCP Pentesting
Podstawowe informacje
Przed rozpoczęciem testowania penetracyjnego środowiska GCP, istnieje kilka podstawowych rzeczy, których musisz się nauczyć o jego działaniu, aby pomóc Ci zrozumieć, co musisz zrobić, jak znaleźć błędy konfiguracji i jak je wykorzystać.
Pojęcia takie jak hierarchia organizacji, uprawnienia i inne podstawowe koncepcje są wyjaśnione w:
pageGCP - Basic InformationLaboratoria do nauki
Metodologia testera penetracyjnego/Red Teamu GCP
Aby przetestować środowisko GCP, bardzo ważne jest poznanie: jakie usługi są używane, co jest eksponowane, kto ma dostęp do czego, oraz jak są połączone wewnętrzne usługi GCP i usługi zewnętrzne.
Z punktu widzenia Red Teamu, pierwszym krokiem do skompromitowania środowiska GCP jest zdobycie jakichś poświadczeń. Oto kilka pomysłów, jak to zrobić:
Wycieki w githubie (lub podobne) - OSINT
Inżynieria społeczna (Sprawdź stronę Bezpieczeństwo Workspace)
Ponowne użycie hasła (wycieki haseł)
Luki w aplikacjach hostowanych w GCP
Server Side Request Forgery z dostępem do punktu końcowego metadanych
Odczyt lokalnego pliku
/home/USERNAME/.config/gcloud/*
C:\Users\USERNAME\.config\gcloud\*
Firmy naruszone
Wewnętrzny pracownik
Lub poprzez skompromitowanie nieszyfrowanej usługi wystawionej:
pageGCP - Unauthenticated Enum & AccessLub jeśli wykonujesz przegląd, po prostu możesz poprosić o poświadczenia z tymi rolami:
pageGCP - Permissions for a PentestPo uzyskaniu poświadczeń, musisz wiedzieć, komu one należą, i do czego mają dostęp, dlatego musisz wykonać podstawową enumerację:
Podstawowa enumeracja
SSRF
Aby uzyskać więcej informacji na temat enumeracji metadanych GCP, sprawdź następującą stronę hacktricks:
Whoami
W GCP możesz wypróbować kilka opcji, aby spróbować zgadnąć, kim jesteś:
Wyszukiwanie organizacji
Zasady i Wyliczanie IAM
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 zwiększyć uprawnienia.
Jeśli nie masz wystarczających uprawnień do wyliczenia IAM, możesz je przechwycić metodą brute-force, aby je ustalić. Sprawdź, jak wykonać wyliczenie i atak brute-force w:
pageGCP - IAM, Principals & Org Policies EnumTeraz, gdy masz pewne informacje o swoich poświadczeniach (i jeśli jesteś zespołem czerwonym, miejmy nadzieję, że nie zostałeś wykryty). Czas dowiedzieć się, które usługi są używane w środowisku. W następnym rozdziale możesz sprawdzić kilka sposobów wyliczenia niektórych powszechnych usług.
Wyliczanie Usług
GCP oferuje ogromną liczbę usług, na następnej stronie znajdziesz podstawowe informacje, oszustwa wyliczania, jak unikać wykrycia, uzyskać trwałość i inne sztuczki post-eksploatacyjne dotyczące niektórych z nich:
pageGCP - ServicesZauważ, że nie musisz wykonywać całej pracy ręcznie, poniżej w tym poście znajdziesz sekcję dotyczącą narzędzi automatycznych.
Ponadto, na tym etapie możesz odkryć więcej usług wystawionych na użytkowników bez uwierzytelnienia, możesz je wykorzystać:
pageGCP - Unauthenticated Enum & AccessEskalacja Uprawnień, Post-Eksploatacja i Trwałość
Najczęstszym sposobem, gdy zdobędziesz pewne poświadczenia chmurowe lub skompromitujesz jakąś usługę działającą w chmurze, jest nadużywanie źle skonfigurowanych uprawnień, jakie skompromitowane konto może mieć. Dlatego pierwszą rzeczą, jaką powinieneś zrobić, jest wyliczenie swoich uprawnień.
Ponadto, podczas tego wyliczania, pamiętaj, że uprawnienia mogą być ustawione na najwyższym poziomie "Organizacji".
pageGCP - Privilege EscalationpageGCP - Post ExploitationpageGCP - PersistenceUsługi Publicznie Wystawione
Podczas wyliczania usług GCP możesz natrafić na niektóre z nich, które wystawiają elementy do Internetu (porty VM/Kontenerów, bazy danych lub usługi kolejek, migawki lub kubełki...). Jako pentester/zespół czerwony zawsze powinieneś sprawdzić, czy możesz znaleźć wrażliwe informacje / podatności na nich, ponieważ mogą zapewnić Ci dalszy dostęp do konta AWS.
W tej książce powinieneś znaleźć informacje na temat tego, jak znaleźć usługi GCP wystawione i jak je sprawdzić. Jeśli chodzi o znalezienie podatności w wystawionych usługach sieciowych, polecam szukać konkretnej usługi w:
Pivoting GCP <--> Workspace
Skompromitowanie podmiotów w jednej platformie może pozwolić atakującemu na skompromitowanie drugiej, sprawdź to w:
pageGCP <--> Workspace PivotingNarzędzia Automatyczne
W konsoli GCloud, pod adresem https://console.cloud.google.com/iam-admin/asset-inventory/dashboard możesz zobaczyć zasoby i IAM 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 można używać w kilku chmurach tutaj.
gcp_scanner: Jest to skaner zasobów GCP, który może pomóc określić, jakie uprawnienia posiadają pewne poświadczenia w GCP.
gcp_enum: Skrypt Bash do wyliczenia środowiska GCP przy użyciu interfejsu wiersza poleceń gcloud i zapisania wyników do pliku.
GCP-IAM-Privilege-Escalation: Skrypty do wyliczenia wysokich uprawnień IAM i eskalacji uprawnień w GCP nadużywając ich (Nie udało mi się uruchomić skryptu wyliczającego).
Konfiguracja gcloud & debugowanie
Przechwytywanie sieci gcloud, gsutil...
Pamiętaj, że możesz użyć parametru --log-http
z wierszem poleceń gcloud
aby wydrukować żądania, które wykonuje narzędzie. Jeśli nie chcesz, aby dzienniki cenzurowały wartość tokena, użyj gcloud config set log_http_redact_token false
Ponadto, aby przechwycić komunikację:
Konfiguracja tokenu OAuth w gcloud
Aby użyć skradzionego tokenu OAuth konta usługi z punktu końcowego metadanych, wystarczy wykonać:
Odnośniki
Last updated