GCP - Conteneurs & GKE Enum
Tip
Apprenez & pratiquez AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Soutenez HackTricks
- Consultez les subscription plans!
- Rejoignez le đŹ Discord group ou le telegram group ou suivez-nous sur Twitter đŠ @hacktricks_live.
- Partagez des hacking tricks en soumettant des PRs aux HackTricks et HackTricks Cloud github repos.
Conteneurs
Dans les conteneurs GCP, vous pouvez trouver la plupart des services basés sur des conteneurs que GCP propose, ici vous pouvez voir comment énumérer les plus courants :
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
Dans la page suivante, vous pouvez vérifier comment abuser des permissions des conteneurs pour élever les privilÚges :
Node Pools
Ce sont les pools de machines (nĆuds) qui forment les clusters 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
Pour des informations sur ce quâest Kubernetes, consultez cette page :
Tout dâabord, vous pouvez vĂ©rifier sâil existe des clusters Kubernetes dans votre projet.
gcloud container clusters list
Si vous avez un cluster, vous pouvez faire en sorte que gcloud configure automatiquement votre fichier ~/.kube/config. Ce fichier est utilisĂ© pour vous authentifier lorsque vous utilisez kubectl, lâinterface en ligne de commande native pour interagir avec les clusters K8s. Essayez cette commande.
gcloud container clusters get-credentials [CLUSTER NAME] --region [REGION]
Ensuite, jetez un Ćil au fichier ~/.kube/config pour voir les identifiants gĂ©nĂ©rĂ©s. Ce fichier sera utilisĂ© pour actualiser automatiquement les jetons dâaccĂšs en fonction de la mĂȘme identitĂ© que celle utilisĂ©e par votre session gcloud active. Cela nĂ©cessite bien sĂ»r les autorisations appropriĂ©es.
Une fois cela configuré, vous pouvez essayer la commande suivante pour obtenir la configuration du cluster.
kubectl cluster-info
Vous pouvez en savoir plus sur gcloud pour les conteneurs ici.
Ceci est un script simple pour énumérer kubernetes dans GCP : https://gitlab.com/gitlab-com/gl-security/security-operations/gl-redteam/gcp_k8s_enum
Escalade de privilĂšges TLS Bootstrap
Initialement, cette technique dâescalade de privilĂšges permettait de privesc Ă lâintĂ©rieur du cluster GKE, permettant ainsi Ă un attaquant de le compromettre complĂštement.
Câest parce que GKE fournit des identifiants TLS Bootstrap dans les mĂ©tadonnĂ©es, qui sont accessibles par quiconque en compromettant simplement un pod.
La technique utilisée est expliquée dans les publications suivantes :
- 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/
Et cet outil a été créé pour automatiser le processus : https://github.com/4ARMED/kubeletmein
Cependant, la technique abusait du fait que avec les identifiants de mĂ©tadonnĂ©es, il Ă©tait possible de gĂ©nĂ©rer un CSR (Certificate Signing Request) pour un nouveau nĆud, qui Ă©tait automatiquement approuvĂ©.
Dans mon test, jâai vĂ©rifiĂ© que ces demandes ne sont plus automatiquement approuvĂ©es, donc je ne suis pas sĂ»r que cette technique soit toujours valide.
Secrets dans lâAPI Kubelet
Dans cet article, il a Ă©tĂ© dĂ©couvert quâil y avait une adresse API Kubelet accessible depuis lâintĂ©rieur dâun pod dans GKE, donnant les dĂ©tails des pods en cours dâexĂ©cution :
curl -v -k http://10.124.200.1:10255/pods
MĂȘme si lâAPI ne permet pas de modifier les ressources, il pourrait ĂȘtre possible de trouver des informations sensibles dans la rĂ©ponse. Le point de terminaison /pods a Ă©tĂ© trouvĂ© en utilisant Kiterunner.
Tip
Apprenez & pratiquez AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Soutenez HackTricks
- Consultez les subscription plans!
- Rejoignez le đŹ Discord group ou le telegram group ou suivez-nous sur Twitter đŠ @hacktricks_live.
- Partagez des hacking tricks en soumettant des PRs aux HackTricks et HackTricks Cloud github repos.
HackTricks Cloud

