GCP - Compute Enum
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.
GCP VPC & Networking
Dowiedz się, jak to działa w:
Enumeration
# List networks
gcloud compute networks list
gcloud compute networks describe <network>
# List subnetworks
gcloud compute networks subnets list
gcloud compute networks subnets get-iam-policy <name> --region <region>
gcloud compute networks subnets describe <name> --region <region>
# List FW rules in networks
gcloud compute firewall-rules list --format="table(
name,
network,
direction,
priority,
sourceRanges.list():label=SRC_RANGES,
destinationRanges.list():label=DEST_RANGES,
allowed[].map().firewall_rule().list():label=ALLOW,
denied[].map().firewall_rule().list():label=DENY,
sourceTags.list():label=SRC_TAGS,
sourceServiceAccounts.list():label=SRC_SVC_ACCT,
targetTags.list():label=TARGET_TAGS,
targetServiceAccounts.list():label=TARGET_SVC_ACCT,
disabled
)"
# List Hierarchical Firewalls
gcloud compute firewall-policies list (--folder <value>| --organization <value>)
gcloud compute firewall-policies describe <fw_policy>
gcloud compute firewall-policies list-rules <fw_policy>
# Get Firewalls of each region
gcloud compute network-firewall-policies list
## Get final FWs applied in a region
gcloud compute network-firewall-policies get-effective-firewalls --network=<vpc_name> --region <region>
Możesz łatwo znaleźć instancje obliczeniowe z otwartymi regułami zapory za pomocą https://gitlab.com/gitlab-com/gl-security/security-operations/gl-redteam/gcp_firewall_enum
Instancje obliczeniowe
To jest sposób, w jaki możesz uruchomić maszyny wirtualne w GCP. Sprawdź tę stronę, aby uzyskać więcej informacji:
Enumeracja
# Get list of zones
# It's interesting to know which zones are being used
gcloud compute regions list | grep -E "NAME|[^0]/"
# List compute instances & get info
gcloud compute instances list
gcloud compute instances describe <instance name>
gcloud compute instances get-iam-policy <instance> --zone=ZONE
gcloud compute instances get-screenshot <instance name> # Instace must have "Display Device" enabled
gcloud compute instances os-inventory list-instances # Get OS info of instances (OS Config agent is running on instances)
# Enumerate disks
gcloud compute disks list
gcloud compute disks describe <disk>
gcloud compute disks get-iam-policy <disk>
Aby uzyskać więcej informacji na temat SSH lub modyfikacji metadanych instancji w celu eskalacji uprawnień, sprawdź tę stronę:
GCP - local privilege escalation ssh pivoting
Eskalacja Uprawnień
Na poniższej stronie możesz sprawdzić, jak nadużywać uprawnień obliczeniowych, aby eskalować uprawnienia:
Nienaudytowane Enum
GCP - Compute Unauthenticated Enum
Po Eksploatacji
GCP - Compute Post Exploitation
Utrzymywanie
Logi Konsoli Szeregowej
Logi Konsoli Szeregowej Compute Engine to funkcja, która pozwala na wyświetlanie i diagnozowanie logów rozruchu i systemu operacyjnego twoich instancji maszyny wirtualnej.
Logi Konsoli Szeregowej zapewniają niski poziom widoku procesu rozruchu instancji, w tym komunikaty jądra, skrypty inicjalizacyjne i inne zdarzenia systemowe, które występują podczas uruchamiania. Może to być przydatne do debugowania problemów z rozruchem, identyfikowania błędnych konfiguracji lub błędów oprogramowania, lub rozwiązywania problemów z łącznością sieciową.
Te logi mogą ujawniać wrażliwe informacje z logów systemowych, które użytkownik o niskich uprawnieniach zazwyczaj nie widzi, ale z odpowiednimi uprawnieniami IAM możesz być w stanie je odczytać.
Możesz użyć następującego polecenia gcloud, aby zapytać o logi portu szeregowego (wymagane uprawnienie to compute.instances.getSerialPortOutput):
gcloud compute instances get-serial-port-output <instance-name>
Startup Scripts output
Możliwe jest zobaczenie wyjścia skryptów uruchamiających z VM wykonując:
sudo journalctl -u google-startup-scripts.service
OS Configuration Manager
Możesz użyć usługi zarządzania konfiguracją systemu operacyjnego, aby wdrażać, zapytywać i utrzymywać spójne konfiguracje (pożądany stan i oprogramowanie) dla swojej instancji VM (VM). W Compute Engine musisz używać guest policies, aby utrzymać spójne konfiguracje oprogramowania na VM.
Funkcja zarządzania konfiguracją systemu operacyjnego pozwala na definiowanie polityk konfiguracji, które określają, które pakiety oprogramowania powinny być zainstalowane, które usługi powinny być włączone i które pliki lub konfiguracje powinny być obecne na Twoich VM. Możesz użyć deklaratywnego podejścia do zarządzania konfiguracją oprogramowania swoich VM, co umożliwia łatwiejszą automatyzację i skalowanie procesu zarządzania konfiguracją.
To również pozwala na logowanie się do instancji za pomocą uprawnień IAM, więc jest to bardzo przydatne do privesc i pivoting.
Warning
Aby włączyć os-config w całym projekcie lub w instancji, wystarczy ustawić klucz metadata
enable-osloginnatruena żądanym poziomie.
Ponadto możesz ustawić metadaneenable-oslogin-2fanatrue, aby włączyć 2fa.Gdy włączysz to podczas tworzenia instancji, klucze metadanych zostaną automatycznie ustawione.
Więcej o 2fa w OS-config, dotyczy to tylko użytkowników, jeśli to jest SA (jak SA obliczeniowe), nie będzie wymagać niczego dodatkowego.
Enumeration
gcloud compute os-config patch-deployments list
gcloud compute os-config patch-deployments describe <patch-deployment>
gcloud compute os-config patch-jobs list
gcloud compute os-config patch-jobs describe <patch-job>
Obrazy
Niestandardowe obrazy
Niestandardowe obrazy obliczeniowe mogą zawierać wrażliwe szczegóły lub inne podatne konfiguracje, które możesz wykorzystać.
Gdy obraz jest tworzony, możesz wybrać 3 typy szyfrowania: Używając klucza zarządzanego przez Google (domyślnie), klucza z KMS lub surowego klucza podanego przez klienta.
Enumeracja
Możesz zapytać o listę niestandardowych obrazów w projekcie za pomocą następującego polecenia:
gcloud compute machine-images list
gcloud compute machine-images describe <name>
gcloud compute machine-images get-iam-policy <name>
Możesz następnie wyeksportować wirtualne dyski z dowolnego obrazu w wielu formatach. Następujące polecenie wyeksportuje obraz test-image w formacie qcow2, umożliwiając pobranie pliku i zbudowanie VM lokalnie w celu dalszego badania:
gcloud compute images export --image test-image \
--export-format qcow2 --destination-uri [BUCKET]
# Execute container inside a docker
docker run --rm -ti gcr.io/<project-name>/secret:v1 sh
Podnoszenie Uprawnień
Sprawdź sekcję podnoszenia uprawnień dla Instancji Obliczeniowych.
Niestandardowe Szablony Instancji
Niestandardowy szablon instancji definiuje właściwości instancji, aby pomóc w wdrażaniu spójnych konfiguracji. Mogą one zawierać te same rodzaje wrażliwych danych co niestandardowe metadane działającej instancji. Możesz użyć następujących poleceń, aby zbadać:
# List the available templates
gcloud compute instance-templates list
# Get the details of a specific template
gcloud compute instance-templates describe [TEMPLATE NAME]
Może być interesujące wiedzieć, z którego dysku korzystają nowe obrazy, ale te szablony zazwyczaj nie będą miały wrażliwych informacji.
Snapshots
Snapshots to kopie zapasowe dysków. Zauważ, że to nie to samo co klonowanie dysku (inna dostępna funkcja).
Snapshot będzie używał tego samego szyfrowania co dysk, z którego został wykonany.
Enumeration
gcloud compute snapshots list
gcloud compute snapshots describe <snapshot>
gcloud compute snapshots get-iam-policy <snapshot>
Eskalacja Uprawnień
Sprawdź sekcję eskalacji uprawnień dla Instancji Obliczeniowych.
Odniesienia
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

