GCP - Compute Privesc

Nauka hakerskich technik AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

Compute

Aby uzyskać więcej informacji na temat Compute i VPC (sieć) w GCP, sprawdź:

pageGCP - Compute Enum

compute.projects.setCommonInstanceMetadata

Z tym uprawnieniem możesz modyfikować informacje metadata instancji i zmieniać klucze autoryzacyjne użytkownika, lub tworzyć nowego użytkownika z uprawnieniami sudo. Dzięki temu będziesz mógł wykonać SSH do dowolnej instancji VM i ukraść konto usługi GCP, z którym działa instancja. Ograniczenia:

  • Należy pamiętać, że konta usług GCP działające w instancjach VM domyślnie mają bardzo ograniczony zakres

  • Będziesz musiał możliwość skontaktowania się z serwerem SSH, aby się zalogować

Aby uzyskać więcej informacji na temat wykorzystania tego uprawnienia, sprawdź:

pageGCP - Add Custom SSH Metadata

compute.instances.setMetadata

To uprawnienie daje takie same uprawnienia jak poprzednie uprawnienie, ale dla określonych instancji zamiast całego projektu. Takie same metody eksploatacji i ograniczenia jak dla poprzedniej sekcji są stosowane.

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 [INSTANCJA] i połączyć się z instancją. Nie będziesz miał uprawnień root wewnątrz instancji.

compute.instances.osAdminLogin

Jeśli OSLogin jest włączony w instancji, z tym uprawnieniem możesz po prostu uruchomić gcloud compute ssh [INSTANCJA] i połączyć się z instancją. Będziesz miał uprawnienia root wewnątrz instancji.

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 wirtualnej maszyny z przypisanym kontem usługi i kradzieżą tokena konta usługi uzyskując dostęp do metadanych w celu eskalacji uprawnień do niego.

Skrypt eksploatacyjny 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 lub wdrożenie łatki. Pozwoli to na lateralne poruszanie się w środowisku i uzyskanie wykonania kodu na wszystkich instancjach obliczeniowych w ramach projektu.

Aby ręcznie wykorzystać to, będziesz musiał utworzyć zarówno zadanie łatki, jak i wdrożenie dla zadania łatki, uruchom:

gcloud compute os-config patch-jobs execute --file=patch.json

Aby wdrożyć wdrożenie łatki:

gcloud compute os-config patch-deployments create my-update --file=patch.json

Istnieją narzędzia automatyzujące, takie jak patchy, które wykrywają luźne uprawnienia i automatycznie poruszają się lateralnie.

Możesz również wykorzystać to do trwałości.

compute.machineImages.setIamPolicy

Przyznaj sobie dodatkowe uprawnienia do obrazu maszyny obliczeniowej.

compute.snapshots.setIamPolicy

Przyznaj sobie dodatkowe uprawnienia do migawki dysku.

compute.disks.setIamPolicy

Przyznaj sobie dodatkowe uprawnienia do dysku.

Ominięcie zakresów dostępu

Klikając ten link znajdziesz kilka pomysłów na próbę ominięcia zakresów dostępu.

Lokalna eskalacja uprawnień w instancji obliczeniowej GCP

pageGCP - local privilege escalation ssh pivoting

Odnośniki

Nauka hakerskich technik AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

Last updated