GCP - Containers, GKE & Composer Enum
Εμπορεύματα
Στα εμπορεύματα του GCP μπορείτε να βρείτε τις περισσότερες υπηρεσίες που βασίζονται σε εμπορεύματα που προσφέρει το GCP, εδώ μπορείτε να δείτε πώς να εντοπίσετε τις πιο κοινές:
Ανέλεγκτη Πρόσβαση
Στην ακόλουθη σελίδα μπορείτε να ελέγξετε πώς να καταχραστείτε τα δικαιώματα των ελάχιστων για να αναβαθμίσετε τα προνόμια:
GCP - Container PrivescΟμάδες Κόμβων
Αυτές είναι οι ομάδες μηχανών (κόμβων) που αποτελούν τα καταλύματα Kubernetes.
Composer
Αυτή είναι η διαχειριζόμενη έκδοση του Airflow για το GCP.
Ανέλιξη Προνομίων
Στην ακόλουθη σελίδα μπορείτε να ελέγξετε πώς να καταχραστείτε τα δικαιώματα του composer για να αναβαθμίσετε τα προνόμια:
GCP - Composer PrivescKubernetes
Για πληροφορίες σχετικά με το τι είναι το Kubernetes, ελέγξτε αυτήν τη σελίδα:
Kubernetes PentestingΠρώτα, μπορείτε να ελέγξετε εάν υπάρχουν κάποια clusters Kubernetes στο έργο σας.
Εάν έχετε ένα cluster, μπορείτε να έχετε το gcloud
να διαμορφώσει αυτόματα το αρχείο ~/.kube/config
. Αυτό το αρχείο χρησιμοποιείται για να σας πιστοποιήσει όταν χρησιμοποιείτε το kubectl, το native CLI για την αλληλεπίδραση με τα K8s clusters. Δοκιμάστε αυτήν την εντολή.
Στη συνέχεια, ρίξτε μια ματιά στο αρχείο ~/.kube/config
για να δείτε τα δημιουργημένα διαπιστευτήρια. Αυτό το αρχείο θα χρησιμοποιηθεί για να ανανεώνει αυτόματα τα access tokens βασιζόμενο στην ίδια ταυτότητα που χρησιμοποιείται στην ενεργή συνεδρία gcloud
. Φυσικά, αυτό απαιτεί τις σωστές άδειες που έχουν τεθεί σε ισχύ.
Αφού αυτό έχει ρυθμιστεί, μπορείτε να δοκιμάσετε την παρακάτω εντολή για να λάβετε τη διαμόρφωση του cluster.
Μπορείτε να διαβάσετε περισσότερα για το 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:
Ακόμα κι αν η API δεν επιτρέπει την τροποποίηση των πόρων, είναι δυνατόν να βρεθούν ευαίσθητες πληροφορίες στην απόκριση. Το σημείο πρόσβασης /pods βρέθηκε χρησιμοποιώντας το Kiterunner.
Last updated