GCP - Containers, GKE & Composer Enum

Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!

Άλλοι τρόποι για να υποστηρίξετε το 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>

Ανέλεγκτη Πρόσβαση

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

pageGCP - Container Privesc

Ομάδες Κόμβων

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

Composer

Αυτή είναι η διαχειριζόμενη έκδοση του Airflow για το GCP.

gcloud composer environments list --locations <loc>
gcloud composer environments describe --location <loc> <environment>s

Ανέλιξη Προνομίων

Στην ακόλουθη σελίδα μπορείτε να ελέγξετε πώς να καταχραστείτε τα δικαιώματα του composer για να αναβαθμίσετε τα προνόμια:

pageGCP - Composer Privesc

Kubernetes

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

pageKubernetes Pentesting

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

gcloud container clusters list

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

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

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

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

kubectl cluster-info

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

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

Ανέβασμα Προνομίων TLS Boostrap

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

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

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

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

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

Μυστικά στο Kubelet API

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

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

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

Μάθετε το hacking στο AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!

Άλλοι τρόποι για να υποστηρίξετε το HackTricks:

Last updated