GCP - local privilege escalation ssh pivoting
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)
W tym scenariuszu zakładamy, że skomprowałeś konto bez uprawnień wewnątrz VM w projekcie Compute Engine.
Zadziwiająco, uprawnienia GCP w silniku obliczeniowym, który skompromitowałeś, mogą pomóc ci eskalować uprawnienia lokalnie wewnątrz maszyny. Nawet jeśli nie zawsze będzie to bardzo pomocne w środowisku chmurowym, dobrze wiedzieć, że jest to możliwe.
Instancje obliczeniowe prawdopodobnie są tam, aby wykonywać pewne skrypty w celu realizacji działań z ich kontami serwisowymi.
Ponieważ IAM jest bardzo szczegółowy, konto może mieć uprawnienia do odczytu/zapisu nad zasobem, ale brak uprawnień do listowania.
Świetnym hipotetycznym przykładem tego jest instancja obliczeniowa, która ma uprawnienia do odczytu/zapisu kopii zapasowych do koszyka pamięci o nazwie instance82736-long-term-xyz-archive-0332893
.
Uruchomienie gsutil ls
z wiersza poleceń nie zwraca nic, ponieważ konto serwisowe nie ma uprawnienia IAM storage.buckets.list
. Jednak jeśli uruchomisz gsutil ls gs://instance82736-long-term-xyz-archive-0332893
, możesz znaleźć kompletną kopię zapasową systemu plików, dając ci dostęp w postaci czystego tekstu do danych, do których twoje lokalne konto Linux nie ma dostępu.
Możesz być w stanie znaleźć tę nazwę koszyka w skrypcie (w bash, Python, Ruby...).
Administratorzy mogą dodawać niestandardowe metadane na poziomie instancji i poziomie projektu. To po prostu sposób na przekazywanie dowolnych par klucz/wartość do instancji, i jest powszechnie używane do zmiennych środowiskowych oraz skryptów uruchamiania/zamykania.
Co więcej, możliwe jest dodanie userdata, co jest skryptem, który będzie wykonywany za każdym razem, gdy maszyna jest uruchamiana lub restartowana i który można uzyskać z punktu końcowego metadanych.
Aby uzyskać więcej informacji, sprawdź:
Większość z poniższych proponowanych uprawnień jest przyznawana domyślnemu SA Compute, jedynym problemem jest to, że domyślny zakres dostępu uniemożliwia SA ich użycie. Jednak jeśli zakres cloud-platform
**jest włączony lub tylko zakres compute
jest włączony, będziesz mógł je wykorzystać.
Sprawdź następujące uprawnienia:
Sprawdź, czy inni użytkownicy zalogowali się do gcloud wewnątrz maszyny i zostawili swoje dane uwierzytelniające w systemie plików:
To są najciekawsze pliki:
~/.config/gcloud/credentials.db
~/.config/gcloud/legacy_credentials/[ACCOUNT]/adc.json
~/.config/gcloud/legacy_credentials/[ACCOUNT]/.boto
~/.credentials.json
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)