GCP - Compute Instances
Tip
Ucz się & ćwicz AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Ucz się & ćwicz GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Ucz się & ćwicz Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Wspieraj HackTricks
- Sprawdź subscription plans!
- Dołącz do 💬 Discord group lub telegram group lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Podziel się hacking tricks, zgłaszając PRy do HackTricks i HackTricks Cloud github repos.
Podstawowe informacje
Google Cloud Compute Instances to dostosowywalne maszyny wirtualne w infrastrukturze chmurowej Google, oferujące skalowalną i na żądanie moc obliczeniową dla szerokiego zakresu aplikacji. Oferują funkcje takie jak globalne wdrożenie, trwałe przechowywanie, elastyczny wybór systemu operacyjnego oraz silne integracje sieciowe i zabezpieczeń, co czyni je wszechstronnym wyborem do hostowania stron internetowych, przetwarzania danych i efektywnego uruchamiania aplikacji w chmurze.
Poufna VM
Poufne VM wykorzystują funkcje zabezpieczeń oparte na sprzęcie oferowane przez najnowszą generację procesorów AMD EPYC, które obejmują szyfrowanie pamięci i bezpieczną wirtualizację szyfrowaną. Funkcje te umożliwiają VM ochronę danych przetwarzanych i przechowywanych w jej wnętrzu nawet przed systemem operacyjnym hosta i hypervisorem.
Aby uruchomić Poufną VM, może być konieczne zmiana takich rzeczy jak typ maszyny, interfejs sieciowy, obraz dysku rozruchowego.
Dysk i szyfrowanie dysku
Możliwe jest wybranie dysku do użycia lub utworzenie nowego. Jeśli wybierzesz nowy, możesz:
- Wybrać rozmiar dysku
- Wybrać system operacyjny
- Wskazać, czy chcesz usunąć dysk, gdy instancja zostanie usunięta
- Szyfrowanie: Domyślnie będzie używany klucz zarządzany przez Google, ale możesz również wybrać klucz z KMS lub wskazać surowy klucz do użycia.
Wdrożenie kontenera
Możliwe jest wdrożenie kontenera wewnątrz maszyny wirtualnej.
Możliwe jest skonfigurowanie obrazu do użycia, ustawienie komendy do uruchomienia wewnątrz, argumentów, zamontowanie woluminu oraz zmiennych środowiskowych (informacje wrażliwe?) i skonfigurowanie kilku opcji dla tego kontenera, takich jak uruchamianie jako uprzywilejowany, stdin i pseudo TTY.
Konto usługi
Domyślnie będzie używane domyślne konto usługi Compute Engine. Adres e-mail tego SA wygląda jak: <proj-num>-compute@developer.gserviceaccount.com
To konto usługi ma rolę Edytora w całym projekcie (wysokie uprawnienia).
A domyślne zakresy dostępu to:
- https://www.googleapis.com/auth/devstorage.read_only – Dostęp do odczytu do koszyków :)
- https://www.googleapis.com/auth/logging.write
- https://www.googleapis.com/auth/monitoring.write
- https://www.googleapis.com/auth/servicecontrol
- https://www.googleapis.com/auth/service.management.readonly
- https://www.googleapis.com/auth/trace.append
Jednak możliwe jest przyznanie mu cloud-platform jednym kliknięciem lub określenie niestandardowych.
.png)
Zapora
Możliwe jest zezwolenie na ruch HTTP i HTTPS.
.png)
Sieć
- Przekazywanie IP: Możliwe jest włączenie przekazywania IP od momentu utworzenia instancji.
- Nazwa hosta: Możliwe jest nadanie instancji stałej nazwy hosta.
- Interfejs: Możliwe jest dodanie interfejsu sieciowego.
Dodatkowe zabezpieczenia
Te opcje zwiększą bezpieczeństwo VM i są zalecane:
- Bezpieczne uruchamianie: Bezpieczne uruchamianie pomaga chronić instancje VM przed złośliwym oprogramowaniem na poziomie uruchamiania i jądra oraz rootkitami.
- Włącz vTPM: Wirtualny moduł zaufanej platformy (vTPM) weryfikuje integralność uruchamiania i uruchamiania gościa VM oraz oferuje generację i ochronę kluczy.
- Nadzór integralności: Nadzór integralności pozwala monitorować i weryfikować integralność uruchamiania chronionych instancji VM za pomocą raportów Stackdriver. Wymaga włączenia vTPM.
Dostęp do VM
Typowym sposobem na umożliwienie dostępu do VM jest zezwolenie na dostęp za pomocą określonych kluczy publicznych SSH.
Jednak możliwe jest również włączenie dostępu do VM za pomocą usługi os-config przy użyciu IAM. Co więcej, możliwe jest włączenie 2FA do uzyskania dostępu do VM za pomocą tej usługi.
Gdy ta usługa jest włączona, dostęp za pomocą kluczy SSH jest wyłączony.
.png)
Metadane
Możliwe jest zdefiniowanie automatyzacji (userdata w AWS), które są komendami powłoki, które będą wykonywane za każdym razem, gdy maszyna się uruchamia lub restartuje.
Możliwe jest również dodanie dodatkowych par klucz-wartość metadanych, które będą dostępne z punktu końcowego metadanych. Informacje te są powszechnie używane do zmiennych środowiskowych oraz skryptów uruchamiania/zamykania. Można je uzyskać za pomocą metody describe z polecenia w sekcji enumeracji, ale można je również pobrać z wnętrza instancji, uzyskując dostęp do punktu końcowego metadanych.
# view project metadata
curl "http://metadata.google.internal/computeMetadata/v1/project/attributes/?recursive=true&alt=text" \
-H "Metadata-Flavor: Google"
# view instance metadata
curl "http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=true&alt=text" \
-H "Metadata-Flavor: Google"
Ponadto, token autoryzacyjny dla dołączonego konta usługi oraz ogólne informacje o instancji, sieci i projekcie będą również dostępne z punktu końcowego metadanych. Aby uzyskać więcej informacji, sprawdź:
Szyfrowanie
Domyślnie używany jest klucz szyfrowania zarządzany przez Google, ale można skonfigurować klucz szyfrowania zarządzany przez klienta (CMEK). Możesz również skonfigurować, co zrobić, gdy używany CMEK zostanie unieważniony: Notować lub wyłączyć VM.
.png)
Tip
Ucz się & ćwicz AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Ucz się & ćwicz GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Ucz się & ćwicz Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Wspieraj HackTricks
- Sprawdź subscription plans!
- Dołącz do 💬 Discord group lub telegram group lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Podziel się hacking tricks, zgłaszając PRy do HackTricks i HackTricks Cloud github repos.
HackTricks Cloud

