GCP - Compute Enum

Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

GCP VPC i Sieciowanie

Dowiedz się, jak to działa w:

pageGCP - VPC & Networking

Wyszukiwanie

# 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>

Łatwo znajdziesz instancje obliczeniowe z otwartymi regułami zapory sieciowej za pomocą https://gitlab.com/gitlab-com/gl-security/security-operations/gl-redteam/gcp_firewall_enum

Instancje obliczeniowe

To jest sposób, w jaki uruchamiasz maszyny wirtualne w GCP. Sprawdź tę stronę, aby uzyskać więcej informacji:

pageGCP - Compute Instances

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>

Eskalacja uprawnień

Na następnej stronie możesz sprawdzić, jak nadużyć uprawnień obliczeniowych w celu eskalacji uprawnień:

pageGCP - Compute Privesc

Nieuwierzytelniona Enumeracja

pageGCP - Compute Unauthenticated Enum

Po Wykorzystaniu

pageGCP - Compute Post Exploitation

Trwałość

pageGCP - Compute Persistence

Dzienniki konsoli szeregowej

Dzienniki konsoli szeregowej Compute Engine to funkcja, która pozwala wyświetlać i diagnozować dzienniki uruchamiania i systemu operacyjnego twoich instancji maszyn wirtualnych.

Dzienniki konsoli szeregowej zapewniają niskopoziomowy widok procesu uruchamiania instancji, w tym komunikaty jądra, skrypty init oraz inne zdarzenia systemowe, które występują podczas uruchamiania. Może to być przydatne do debugowania problemów z uruchamianiem, identyfikowania błędów konfiguracji lub oprogramowania, a także rozwiązywania problemów z łącznością sieciową.

Te dzienniki mogą ujawnić poufne informacje z dzienników systemowych, których zwykle nie widzi nisko uprzywilejowany użytkownik, ale przy odpowiednich uprawnieniach IAM możesz je odczytać.

Możesz użyć następującej komendy gcloud do zapytania o dzienniki portu szeregowego (wymagane uprawnienie to compute.instances.getSerialPortOutput):

gcloud compute instances get-serial-port-output <instance-name>

Menedżer konfiguracji systemu operacyjnego

Możesz użyć usługi zarządzania konfiguracją systemu operacyjnego do wdrażania, zapytywania i utrzymywania spójnych konfiguracji (stanu docelowego i oprogramowania) dla twojej instancji maszyny wirtualnej (VM). W Compute Engine musisz użyć polityk gościnnych do utrzymywania spójnych konfiguracji oprogramowania na VM.

Funkcja zarządzania konfiguracją systemu operacyjnego pozwala zdefiniować polityki konfiguracji, które określają, które pakiety oprogramowania powinny być zainstalowane, które usługi powinny być włączone, oraz które pliki lub konfiguracje powinny być obecne na twoich VM. Możesz użyć deklaratywnego podejścia do zarządzania konfiguracją oprogramowania twoich VM, co pozwala na łatwiejsze automatyzowanie i skalowanie procesu zarządzania konfiguracją.

To również pozwala na logowanie się do instancji za pomocą uprawnień IAM, co jest bardzo przydatne do eskalacji uprawnień i przekierowywania.

Aby włączyć os-config w całym projekcie lub na instancji, wystarczy ustawić klucz enable-oslogin metadanych na poziomie docelowym na true. Co więcej, można ustawić metadane enable-oslogin-2fa na true aby włączyć uwierzytelnianie dwuetapowe.

Gdy włączysz to podczas tworzenia instancji, klucze metadanych zostaną automatycznie ustawione.

Więcej informacji na temat 2fa w OS-config, dotyczy to tylko użytkownika, jeśli jest to SA (jak SA obliczeniowy), nie będzie wymagać niczego dodatkowego.

Wyliczanie

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ć poufne szczegóły lub inne podatne konfiguracje, które można wykorzystać.

Podczas tworzenia obrazu możesz wybrać 3 rodzaje szyfrowania: Użycie klucza zarządzanego przez Google (domyślnie), klucza z KMS lub klucza surowego podanego przez klienta.

Wyliczenie

Możesz zapytać listę obrazów niestandardowych w projekcie za pomocą następującej komendy:

```bash gcloud compute machine-images list gcloud compute machine-images describe gcloud compute machine-images get-iam-policy ``` Możesz następnie [**eksportować**](https://cloud.google.com/sdk/gcloud/reference/compute/images/export) **dyski wirtualne** z dowolnego obrazu w wielu formatach. Poniższe polecenie eksportuje obraz `test-image` w formacie qcow2, umożliwiając pobranie pliku i zbudowanie maszyny wirtualnej lokalnie w celu dalszego zbadania: ```bash gcloud compute images export --image test-image \ --export-format qcow2 --destination-uri [BUCKET]

Execute container inside a docker

docker run --rm -ti gcr.io//secret:v1 sh

#### Eskalacja uprawnień

Sprawdź sekcję eskalacji uprawnień instancji obliczeniowych.

### Szablony niestandardowych instancji

[**Szablon instancji**](https://cloud.google.com/compute/docs/instance-templates/) **definiuje właściwości instancji** w celu ułatwienia wdrażania spójnych konfiguracji. Mogą one zawierać te same rodzaje danych wrażliwych co niestandardowe metadane działającej instancji. Możesz użyć poniższych poleceń do zbadania:
```bash
# 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 dowiedzieć się, który dysk jest używany do nowych obrazów, ale te szablony zazwyczaj nie będą zawierać poufnych informacji.

Snapshoty

Snapshoty to kopie zapasowe dysków. Należy zauważyć, że nie jest to tożsame z klonowaniem dysku (inną dostępną funkcją). Snapshot będzie używał tej samej szyfrowania co dysk, z którego został utworzony.

Wyliczanie

gcloud compute snapshots list
gcloud compute snapshots describe <snapshot>
gcloud compute snapshots get-iam-policy <snapshot>

Eskalacja uprawnień

Sprawdź sekcję eskalacji uprawnień instancji obliczeniowych.

Referencje

Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

Last updated