GCP - local privilege escalation ssh pivoting
w tym scenariuszu zakładamy, że skompromitowałeś konto bez uprawnień wewnątrz maszyny w projekcie Compute Engine.
Niesamowicie, uprawnienia GPC maszyny Compute Engine, którą 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.
Przeczytaj skrypty
Instancje obliczeniowe prawdopodobnie są tam, aby wykonywać pewne skrypty w celu wykonywania działań za pomocą swoich kont usług.
Ponieważ IAM jest bardzo szczegółowe, konto może mieć uprawnienia do odczytu/zapisu zasobu, ale bez uprawnień do listowania.
Świetnym hipotetycznym przykładem jest Instancja Obliczeniowa, która ma uprawnienie do odczytu/zapisu kopii zapasowych w kubełku magazynu o nazwie instance82736-long-term-xyz-archive-0332893
.
Uruchomienie polecenia gsutil ls
z wiersza poleceń nie zwraca nic, ponieważ konto usługi nie ma uprawnienia IAM storage.buckets.list
. Jednakże, 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 do danych w postaci tekstu jawnego, do których twoje lokalne konto Linux nie ma dostępu.
Możesz znaleźć nazwę tego kubełka wewnątrz skryptu (w bashu, Pythonie, Ruby...).
Niestandardowe metadane
Administratorzy mogą dodać niestandardowe metadane na poziomie instancji i projektu. Jest to po prostu sposób przekazywania dowolnych par klucz/wartość do instancji, i jest powszechnie używany do zmiennych środowiskowych oraz skryptów uruchamiania/zamykania.
Co więcej, można dodać dane użytkownika, które są skryptem, który będzie wykonywany za każdym razem, gdy maszyna zostanie uruchomiona lub zrestartowana i który może być uzyskany również z punktu końcowego metadanych.
Aby uzyskać więcej informacji, sprawdź:
Wykorzystywanie uprawnień IAM
Większość proponowanych uprawnień jest przyznawana domyślnemu SA obliczeniowemu, jedynym problemem jest to, że domyślny zakres dostępu uniemożliwia SA ich użycie. Jednakże, jeśli jest włączony zakres cloud-platform
lub tylko zakres compute
, będziesz mógł je wykorzystać.
Sprawdź następujące uprawnienia:
Sprawdź, czy w systemie plików są klucze
Sprawdź, czy inni użytkownicy zalogowali się do gcloud wewnątrz maszyny i zostawili swoje poświadczenia w systemie plików:
Oto najbardziej interesujące pliki:
~/.config/gcloud/credentials.db
~/.config/gcloud/legacy_credentials/[KONTO]/adc.json
~/.config/gcloud/legacy_credentials/[KONTO]/.boto
~/.credentials.json
Więcej wyrażeń regularnych kluczy API
Odnośniki
Last updated