GCP - Compute Privesc
Last updated
Last updated
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)
Aby uzyskać więcej informacji na temat Compute i VPC (sieci) w GCP, sprawdź:
GCP - Compute EnumZauważ, że aby przeprowadzić wszystkie ataki eskalacji uprawnień, które wymagają modyfikacji metadanych instancji (takich jak dodawanie nowych użytkowników i kluczy SSH), konieczne jest posiadanie uprawnień actAs
dla SA przypisanego do instancji, nawet jeśli SA jest już przypisany!
compute.projects.setCommonInstanceMetadata
Dzięki temu uprawnieniu możesz modyfikować informacje o metadanych instancji i zmieniać autoryzowane klucze użytkownika lub tworzyć nowego użytkownika z uprawnieniami sudo. W związku z tym będziesz mógł połączyć się przez SSH z dowolną instancją VM i ukraść GCP Service Account, z którym działa instancja. Ograniczenia:
Zauważ, że GCP Service Accounts działające w instancjach VM domyślnie mają bardzo ograniczony zakres
Będziesz musiał móc skontaktować się z serwerem SSH, aby się zalogować
Aby uzyskać więcej informacji na temat, jak wykorzystać to uprawnienie, sprawdź:
GCP - Add Custom SSH MetadataMożesz również przeprowadzić ten atak, dodając nowy skrypt uruchamiający i restartując instancję:
compute.instances.setMetadata
To uprawnienie daje te same uprawnienia co poprzednie uprawnienie, ale dla konkretnych instancji zamiast całego projektu. Te same exploity i ograniczenia jak w poprzedniej sekcji mają zastosowanie.
compute.instances.setIamPolicy
Ten rodzaj uprawnienia pozwoli ci przyznać sobie rolę z poprzednimi uprawnieniami i eskalować uprawnienia, nadużywając ich.
compute.instances.osLogin
Jeśli OSLogin jest włączony w instancji, z tym uprawnieniem możesz po prostu uruchomić gcloud compute ssh [INSTANCE]
i połączyć się z instancją. Nie będziesz miał uprawnień roota wewnątrz instancji.
Aby pomyślnie zalogować się z tym uprawnieniem wewnątrz instancji VM, musisz mieć uprawnienie iam.serviceAccounts.actAs
dla SA przypisanego do VM.
compute.instances.osAdminLogin
Jeśli OSLogin jest włączony w instancji, z tym uprawnieniem możesz po prostu uruchomić gcloud compute ssh [INSTANCE]
i połączyć się z instancją. Będziesz miał uprawnienia roota wewnątrz instancji.
Aby pomyślnie zalogować się z tym uprawnieniem wewnątrz instancji VM, musisz mieć uprawnienie iam.serviceAccounts.actAs
dla SA przypisanego do VM.
compute.instances.create
,iam.serviceAccounts.actAs, compute.disks.create
, compute.instances.create
, compute.instances.setMetadata
, compute.instances.setServiceAccount
, compute.subnetworks.use
, compute.subnetworks.useExternalIp
Możliwe jest utworzenie maszyny wirtualnej z przypisanym Kontem Usługowym i kradzież tokena konta usługi uzyskując dostęp do metadanych, aby eskalować uprawnienia do niego.
Skrypt exploita dla tej metody można znaleźć tutaj.
osconfig.patchDeployments.create
| osconfig.patchJobs.exec
Jeśli masz uprawnienia osconfig.patchDeployments.create
lub osconfig.patchJobs.exec
, możesz utworzyć zadanie łatania lub wdrożenie. To umożliwi ci poruszanie się w poziomie w środowisku i uzyskanie wykonania kodu na wszystkich instancjach obliczeniowych w projekcie.
Zauważ, że w tej chwili nie potrzebujesz uprawnienia actAs
dla SA przypisanego do instancji.
Jeśli chcesz ręcznie wykorzystać to, będziesz musiał utworzyć albo zadanie łatania lub wdrożenie. Aby uruchomić zadanie łatania:
Aby wdrożyć wdrożenie poprawki:
Narzędzie patchy mogło być używane w przeszłości do wykorzystania tej błędnej konfiguracji (ale teraz nie działa).
Atakujący mógłby również nadużyć tego dla utrzymania dostępu.
compute.machineImages.setIamPolicy
Przyznaj sobie dodatkowe uprawnienia do obrazu maszyny.
compute.snapshots.setIamPolicy
Przyznaj sobie dodatkowe uprawnienia do migawki dysku.
compute.disks.setIamPolicy
Przyznaj sobie dodatkowe uprawnienia do dysku.
Pod tym linkiem znajdziesz kilka pomysłów na ominięcie zakresów dostępu.
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)