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
- Δείτε τα subscription plans!
- Εγγραφείτε στο 💬 Discord group ή την telegram group ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε τα hacking tricks υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.
Κοντέινερ
Στα κοντέινερ 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
Στην παρακάτω σελίδα μπορείτε να δείτε πώς να καταχραστείτε τις άδειες κοντέινερ για να κλιμακώσετε τα προνόμια:
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 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://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/
Και αυτό το εργαλείο δημιουργήθηκε για να αυτοματοποιήσει τη διαδικασία: 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
- Δείτε τα subscription plans!
- Εγγραφείτε στο 💬 Discord group ή την telegram group ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε τα hacking tricks υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.
HackTricks Cloud

