GCP - Κοντέινερ & GKE Enum

Tip

Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Υποστηρίξτε το HackTricks

Κοντέινερ

Στα κοντέινερ GCP μπορείτε να βρείτε τις περισσότερες από τις υπηρεσίες που προσφέρει το GCP, εδώ μπορείτε να δείτε πώς να καταγράψετε τις πιο κοινές:

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

Στην παρακάτω σελίδα μπορείτε να δείτε πώς να καταχραστείτε τις άδειες κοντέινερ για να κλιμακώσετε τα προνόμια:

GCP - Container Privesc

Node Pools

Αυτές είναι οι ομάδες μηχανών (κόμβοι) που σχηματίζουν τα 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

Για πληροφορίες σχετικά με το τι είναι το Kubernetes, ελέγξτε αυτή τη σελίδα:

Kubernetes Pentesting

Αρχικά, μπορείτε να ελέγξετε αν υπάρχουν οποιοιδήποτε Kubernetes clusters στο έργο σας.

gcloud container clusters list

Αν έχετε ένα cluster, μπορείτε να έχετε το gcloud να ρυθμίζει αυτόματα το αρχείο ~/.kube/config. Αυτό το αρχείο χρησιμοποιείται για να σας πιστοποιεί όταν χρησιμοποιείτε kubectl, το εγγενές CLI για αλληλεπίδραση με τα K8s clusters. Δοκιμάστε αυτή την εντολή.

gcloud container clusters get-credentials [CLUSTER NAME] --region [REGION]

Στη συνέχεια, ρίξτε μια ματιά στο αρχείο ~/.kube/config για να δείτε τα παραγόμενα διαπιστευτήρια. Αυτό το αρχείο θα χρησιμοποιηθεί για την αυτόματη ανανέωση των διαπιστευτηρίων πρόσβασης με βάση την ίδια ταυτότητα που χρησιμοποιεί η ενεργή συνεδρία gcloud σας. Αυτό φυσικά απαιτεί τις σωστές άδειες.

Αφού ρυθμιστεί αυτό, μπορείτε να δοκιμάσετε την παρακάτω εντολή για να αποκτήσετε τη διαμόρφωση του κλάστερ.

kubectl cluster-info

Μπορείτε να διαβάσετε περισσότερα για το gcloud για κοντέινερ εδώ.

Αυτό είναι ένα απλό σενάριο για την καταμέτρηση του kubernetes στο GCP: https://gitlab.com/gitlab-com/gl-security/security-operations/gl-redteam/gcp_k8s_enum

TLS Boostrap Privilege Escalation

Αρχικά, αυτή η τεχνική κλιμάκωσης προνομίων επέτρεπε privesc μέσα στο GKE cluster επιτρέποντας αποτελεσματικά σε έναν επιτιθέμενο να συμβιβάσει πλήρως αυτό.

Αυτό συμβαίνει επειδή το GKE παρέχει TLS Bootstrap credentials στα μεταδεδομένα, τα οποία είναι προσβάσιμα από οποιονδήποτε απλά συμβιβάζοντας ένα pod.

Η τεχνική που χρησιμοποιήθηκε εξηγείται στις παρακάτω αναρτήσεις:

Και αυτό το εργαλείο δημιουργήθηκε για να αυτοματοποιήσει τη διαδικασία: https://github.com/4ARMED/kubeletmein

Ωστόσο, η τεχνική εκμεταλλεύτηκε το γεγονός ότι με τα διαπιστευτήρια μεταδεδομένων ήταν δυνατό να δημιουργηθεί ένα CSR (Certificate Signing Request) για έναν νέο κόμβο, ο οποίος ήταν αυτόματα εγκεκριμένος.
Στη δοκιμή μου, διαπίστωσα ότι αυτές οι αιτήσεις δεν εγκρίνονται αυτόματα πια, οπότε δεν είμαι σίγουρος αν αυτή η τεχνική είναι ακόμα έγκυρη.

Secrets in Kubelet API

Σε αυτή την ανάρτηση ανακαλύφθηκε μια διεύθυνση Kubelet API προσβάσιμη από μέσα σε ένα pod στο GKE που παρέχει λεπτομέρειες για τα pods που εκτελούνται:

curl -v -k http://10.124.200.1:10255/pods

Ακόμα και αν το API δεν επιτρέπει την τροποποίηση πόρων, θα μπορούσε να είναι δυνατό να βρεθούν ευαίσθητες πληροφορίες στην απάντηση. Το endpoint /pods βρέθηκε χρησιμοποιώντας Kiterunner.

Tip

Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Υποστηρίξτε το HackTricks