GCP - IAM, Principals & Org Policies Enum
Konta Usług
Dla wprowadzenia do tego, co to jest konto usługi, sprawdź:
pageGCP - Basic InformationWyliczanie
Konto usługi zawsze należy do projektu:
Użytkownicy i Grupy
Aby uzyskać wprowadzenie do tego, jak działają Użytkownicy i Grupy w GCP, sprawdź:
pageGCP - Basic InformationWyliczanie
Dzięki uprawnieniom serviceusage.services.enable
i serviceusage.services.use
można włączać usługi w projekcie i z nich korzystać.
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, otrzymuje nad nim rolę owner
. Dlatego może włączyć te usługi w projekcie, aby móc wyliczyć Workspace.
Jednak zauważ, że konieczne jest również posiadanie wystarczających uprawnień w Workspace, aby móc wywołać te interfejsy 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 wyliczyć wszystkie grupy i użytkowników za pomocą poniższych poleceń.
Nawet jeśli mówi grupy tożsamości
, zwraca również użytkowników bez przypisanych grup:
W poprzednich przykładach parametr --labels
jest wymagany, dlatego używana jest ogólna wartość (nie jest wymagany, jeśli używasz API bezpośrednio, tak jak PurplePanda robi tutaj.
Nawet po włączeniu usługi admin, możliwe jest otrzymanie błędu podczas wyliczania ich, ponieważ skompromitowany użytkownik przestrzeni roboczej nie ma wystarczających uprawnień:
IAM
Sprawdź to podstawowe informacje na temat IAM.
Domyślne uprawnienia
Z dokumentacji: Gdy tworzony jest zasób organizacji, wszyscy użytkownicy w Twojej domenie otrzymują domyślnie role Twórca konta rozliczeniowego i Twórca projektu. Te domyślne role pozwalają Twoim użytkownikom natychmiast zacząć korzystać z Google Cloud, ale nie są przeznaczone do regularnego użytku w operacjach Twojego zasobu organizacji.
Te role nadają uprawnienia:
billing.accounts.create
iresourcemanager.organizations.get
resourcemanager.organizations.get
iresourcemanager.projects.create
Ponadto, gdy użytkownik tworzy projekt, automatycznie otrzymuje uprawnienia właściciela tego projektu zgodnie z dokumentacją. Dlatego domyślnie użytkownik będzie mógł tworzyć projekt i uruchamiać na nim dowolną usługę (koparki? Wyliczanie przestrzeni roboczej? ...)
Najwyższą uprawnieniem w organizacji GCP jest rola Administratora organizacji.
set-iam-policy vs add-iam-policy-binding
W większości usług będziesz mógł zmieniać uprawnienia dla zasobu za pomocą 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
usunie wcześniej udzielone uprawnienia i ustawi tylko te, które są wskazane w poleceniu.
Wyliczanie
cloudasset IAM Wyliczenie
Istnieją różne sposoby sprawdzenia 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 podmiotu w zasobie.
Uprawnienie
cloudasset.assets.searchAllResources
pozwala na wyświetlanie wszystkich zasobów organizacji, folderu lub projektu. Zasoby związane z IAM (takie jak role) są uwzględnione.
Uprawnienie
cloudasset.assets.analyzeMove
może być przydatne do pobrania polityk dotyczących zasobu, takiego jak projekt
Przypuszczam, że uprawnienie
cloudasset.assets.queryIamPolicy
również może umożliwiać znalezienie uprawnień podmiotów
Testowanie uprawnień IamPermissions
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 testowania swoich obecnych uprawnień.
Należy jednak zauważyć, że usługa cloudresourcemanager.googleapis.com
musi być włączona.
Eskalacja uprawnień
Na następnej stronie możesz sprawdzić, jak nadużyć uprawnień IAM do eskalacji uprawnień:
pageGCP - IAM PrivescNieuwierzytelniona enumeracja
pageGCP - IAM, Principals & Org Unauthenticated EnumPo wykorzystaniu
pageGCP - IAM Post ExploitationTrwałość
Jeśli masz wysokie uprawnienia, możesz:
Tworzyć nowe SA (lub użytkowników, jeśli jesteś w Workspace)
Nadawać podmiotom kontrolowanym przez siebie więcej uprawnień
Przyznawać więcej przywilejów podatnym SA (SSRF w vm, podatna funkcja Cloud...)
...
Polityki organizacyjne
Aby uzyskać wprowadzenie do tego, czym są polityki organizacyjne, sprawdź:
pageGCP - Basic InformationPolityki IAM wskazują, jakie uprawnienia mają podmioty do zasobów za pomocą ról, które przypisują szczegółowe uprawnienia. Polityki organizacyjne ograniczają sposób korzystania z tych usług lub wyłączają określone funkcje. Pomaga to poprawić zasadę najmniejszych uprawnień dla każdego zasobu w środowisku GCP.
Eskalacja uprawnień
Na następnej stronie możesz sprawdzić, jak wykorzystać uprawnienia polityk organizacyjnych do eskalacji uprawnień:
pageGCP - Orgpolicy PrivescLast updated