GCP - Enumerazione di Containers e GKE
Tip
Impara & pratica AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Impara & pratica GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Impara & pratica Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Sostieni HackTricks
- Controlla i subscription plans!
- Unisciti al 💬 Discord group o al telegram group o seguici su Twitter 🐦 @hacktricks_live.
- Condividi hacking tricks inviando PRs ai HackTricks e HackTricks Cloud github repos.
Containers
Nei container GCP puoi trovare la maggior parte dei servizi basati su container offerti da GCP, qui puoi vedere come enumerare i più comuni:
gcloud container images list
gcloud container images list --repository us.gcr.io/<project-name> #Search in other subdomains repositories
gcloud container images describe <name>
gcloud container subnets list-usable
gcloud container clusters list
gcloud container clusters describe <name>
gcloud container clusters get-credentials [NAME]
# Run a container locally
docker run --rm -ti gcr.io/<project-name>/secret:v1 sh
# Login & Download
sudo docker login -u oauth2accesstoken -p $(gcloud auth print-access-token) https://HOSTNAME
## where HOSTNAME is gcr.io, us.gcr.io, eu.gcr.io, or asia.gcr.io.
sudo docker pull HOSTNAME/<project-name>/<image-name>
Privesc
Nella pagina seguente puoi controllare come abusare dei permessi dei container per escalare i privilegi:
Node Pools
Questi sono i pool di macchine (nodi) che formano i cluster kubernetes.
# Pool of machines used by the cluster
gcloud container node-pools list --zone <zone> --cluster <cluster>
gcloud container node-pools describe --cluster <cluster> --zone <zone> <node-pool>
Kubernetes
Per informazioni su cos’è Kubernetes, controlla questa pagina:
Prima di tutto, puoi controllare se esistono cluster Kubernetes nel tuo progetto.
gcloud container clusters list
Se hai un cluster, puoi far sì che gcloud configuri automaticamente il tuo file ~/.kube/config. Questo file viene utilizzato per autenticarti quando usi kubectl, l’interfaccia a riga di comando nativa per interagire con i cluster K8s. Prova questo comando.
gcloud container clusters get-credentials [CLUSTER NAME] --region [REGION]
Quindi, dai un’occhiata al file ~/.kube/config per vedere le credenziali generate. Questo file verrà utilizzato per aggiornare automaticamente i token di accesso in base alla stessa identità che la tua sessione gcloud attiva sta utilizzando. Questo richiede ovviamente i permessi corretti.
Una volta configurato, puoi provare il seguente comando per ottenere la configurazione del cluster.
kubectl cluster-info
Puoi leggere di più su gcloud per i container qui.
Questo è un semplice script per enumerare kubernetes in GCP: https://gitlab.com/gitlab-com/gl-security/security-operations/gl-redteam/gcp_k8s_enum
Escalation di Privilegi TLS Bootstrap
Inizialmente, questa tecnica di escalation di privilegi consentiva di privesc all’interno del cluster GKE, permettendo effettivamente a un attaccante di comprometterlo completamente.
Questo perché GKE fornisce credenziali TLS Bootstrap nei metadati, che sono accessibili da chiunque comprometta un pod.
La tecnica utilizzata è spiegata nei seguenti post:
- https://www.4armed.com/blog/hacking-kubelet-on-gke/
- https://www.4armed.com/blog/kubeletmein-kubelet-hacking-tool/
- https://rhinosecuritylabs.com/cloud-security/kubelet-tls-bootstrap-privilege-escalation/
E questo strumento è stato creato per automatizzare il processo: https://github.com/4ARMED/kubeletmein
Tuttavia, la tecnica abusava del fatto che con le credenziali dei metadati era possibile generare un CSR (Certificate Signing Request) per un nuovo nodo, che era automaticamente approvato.
Nel mio test ho verificato che quelle richieste non sono più automaticamente approvate, quindi non sono sicuro se questa tecnica sia ancora valida.
Segreti nell’API Kubelet
In questo post è stata scoperta un’indirizzo API Kubelet accessibile dall’interno di un pod in GKE che fornisce i dettagli dei pod in esecuzione:
curl -v -k http://10.124.200.1:10255/pods
Anche se l’API non consente di modificare le risorse, potrebbe essere possibile trovare informazioni sensibili nella risposta. L’endpoint /pods è stato trovato utilizzando Kiterunner.
Tip
Impara & pratica AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Impara & pratica GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Impara & pratica Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Sostieni HackTricks
- Controlla i subscription plans!
- Unisciti al 💬 Discord group o al telegram group o seguici su Twitter 🐦 @hacktricks_live.
- Condividi hacking tricks inviando PRs ai HackTricks e HackTricks Cloud github repos.
HackTricks Cloud

