GCP - IAM, Principals & Org Policies Enum
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)
Aby uzyskać wprowadzenie do tego, czym jest konto serwisowe, sprawdź:
GCP - Basic InformationKonto serwisowe zawsze należy do projektu:
Aby uzyskać wprowadzenie na temat działania Użytkowników i Grup w GCP, sprawdź:
GCP - Basic InformationDzięki uprawnieniom serviceusage.services.enable
i serviceusage.services.use
możliwe jest włączenie usług w projekcie i ich użycie.
Zauważ, że domyślnie użytkownicy Workspace otrzymują rolę Twórca Projektu, co daje im dostęp do tworzenia nowych projektów. Gdy użytkownik tworzy projekt, przyznawana jest mu rola owner
nad nim. Tak więc, mógłby włączyć te usługi w projekcie, aby móc enumerować Workspace.
Jednak zauważ, że potrzebne są również wystarczające uprawnienia w Workspace, aby móc wywoływać te API.
Jeśli możesz włączyć usługę admin
i jeśli twój użytkownik ma wystarczające uprawnienia w workspace, możesz enumerować wszystkie grupy i użytkowników za pomocą następujących linii.
Nawet jeśli mówi identity groups
, zwraca również użytkowników bez żadnych grup:
W poprzednich przykładach parametr --labels
jest wymagany, więc używana jest wartość ogólna (nie jest wymagany, jeśli używasz API bezpośrednio, jak PurplePanda robi tutaj.
Nawet przy włączonej usłudze administratora, możliwe jest, że otrzymasz błąd podczas ich enumeracji, ponieważ twój skompromitowany użytkownik workspace nie ma wystarczających uprawnień:
Sprawdź to dla podstawowych informacji o IAM.
Z dokumentacji: Gdy tworzony jest zasób organizacji, wszyscy użytkownicy w twojej domenie otrzymują domyślnie role Twórcy Konta Rozliczeniowego i Twórcy Projektu. Te domyślne role pozwalają twoim użytkownikom natychmiast rozpocząć korzystanie z Google Cloud, ale nie są przeznaczone do regularnego użytkowania w zasobie organizacji.
Te role przyznają uprawnienia:
billing.accounts.create
i resourcemanager.organizations.get
resourcemanager.organizations.get
i resourcemanager.projects.create
Ponadto, gdy użytkownik tworzy projekt, automatycznie otrzymuje właściciela tego projektu zgodnie z dokumentacją. Dlatego domyślnie użytkownik będzie mógł stworzyć projekt i uruchomić na nim dowolną usługę (koparki? enumeracja Workspace? ...)
Najwyższym uprawnieniem w organizacji GCP jest rola Administratora Organizacji.
W większości usług będziesz mógł zmienić uprawnienia dotyczące zasobu, używając metody add-iam-policy-binding
lub set-iam-policy
. Główna różnica polega na tym, że add-iam-policy-binding
dodaje nowe powiązanie roli do istniejącej polityki IAM, podczas gdy set-iam-policy
usuwa wcześniej przyznane uprawnienia i ustawia tylko te, które są wskazane w poleceniu.
Istnieją różne sposoby na sprawdzenie wszystkich uprawnień użytkownika w różnych zasobach (takich jak organizacje, foldery, projekty...) za pomocą tej usługi.
Uprawnienie cloudasset.assets.searchAllIamPolicies
może żądać wszystkich polityk iam wewnątrz zasobu.
Uprawnienie cloudasset.assets.analyzeIamPolicy
może żądać wszystkich polityk iam danego podmiotu w obrębie zasobu.
Uprawnienie cloudasset.assets.searchAllResources
pozwala na wylistowanie wszystkich zasobów organizacji, folderu lub projektu. Zasoby związane z IAM (takie jak role) są wliczone.
Uprawnienie cloudasset.assets.analyzeMove
może być również przydatne do uzyskania polityk wpływających na zasób, taki jak projekt.
Przypuszczam, że uprawnienie cloudasset.assets.queryIamPolicy
może również umożliwić dostęp do znajdowania uprawnień podmiotów.
Jeśli nie możesz uzyskać dostępu do informacji IAM za pomocą poprzednich metod i jesteś w Red Team. Możesz użyć narzędzia https://github.com/carlospolop/bf_my_gcp_perms do brutalnego wymuszania swoich bieżących uprawnień.
Jednak pamiętaj, że usługa cloudresourcemanager.googleapis.com
musi być włączona.
Na poniższej stronie możesz sprawdzić, jak nadużywać uprawnień IAM, aby eskalować uprawnienia:
GCP - IAM PrivescJeśli masz wysokie uprawnienia, możesz:
Utworzyć nowe SAs (lub użytkowników, jeśli w Workspace)
Przyznać kontrolowanym przez siebie principalom więcej uprawnień
Przyznać więcej uprawnień podatnym SAs (SSRF w vm, podatna Cloud Function…)
…
Aby uzyskać wprowadzenie do tego, czym są Org Policies, sprawdź:
GCP - Basic InformationPolityki IAM wskazują uprawnienia, jakie principal ma nad zasobami za pomocą ról, które przypisują szczegółowe uprawnienia. Polityki organizacyjne ograniczają sposób, w jaki te usługi mogą być używane lub które funkcje są wyłączone. Pomaga to w poprawie zasady najmniejszych uprawnień dla każdego zasobu w środowisku GCP.
Na następnej stronie możesz sprawdzić, jak nadużywać uprawnień polityk organizacyjnych, aby eskalować uprawnienia:
GCP - Orgpolicy PrivescUcz 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)