GCP - Storage Privesc
Αποθήκευση
Βασικές πληροφορίες:
GCP - Storage Enumstorage.objects.get
storage.objects.get
Αυτή η άδεια σάς επιτρέπει να κατεβάσετε αρχεία που αποθηκεύονται μέσα στην Αποθήκευση Cloud. Αυτό ενδέχεται να σας επιτρέψει να εξελίξετε τα προνόμια επειδή σε ορισμένες περιπτώσεις αποθηκεύονται εκεί ευαίσθητες πληροφορίες. Επιπλέον, ορισμένες υπηρεσίες GCP αποθηκεύουν τις πληροφορίες τους σε κάδους:
GCP Composer: Όταν δημιουργείτε ένα Περιβάλλον Composer το κώδικας όλων των DAGs θα αποθηκευτεί μέσα σε ένα κάδο. Αυτές οι εργασίες μπορεί να περιέχουν ενδιαφέρουσες πληροφορίες μέσα στον κώδικά τους.
GCR (Μητρώο Εμπορευμάτων): Η εικόνα των εμπορευμάτων αποθηκεύεται μέσα σε κάδους, που σημαίνει ότι αν μπορείτε να διαβάσετε τους κάδους θα μπορείτε να κατεβάσετε τις εικόνες και να αναζητήσετε διαρροές και/ή κώδικα πηγής.
storage.objects.setIamPolicy
storage.objects.setIamPolicy
Μπορείτε να δώσετε άδεια στον εαυτό σας να καταχωρήσετε οποιοδήποτε από τα προηγούμενα σενάρια αυτής της ενότητας.
storage.buckets.setIamPolicy
storage.buckets.setIamPolicy
Για ένα παράδειγμα για το πώς να τροποποιήσετε τις άδειες με αυτή την άδεια, ελέγξτε αυτή τη σελίδα:
GCP - Public Buckets Privilege Escalationstorage.hmacKeys.create
storage.hmacKeys.create
Η λειτουργία "διαλειτουργικότητας" της Αποθήκευσης Cloud, σχεδιασμένη για διασυνδέσεις μεταξύ νέφους όπως με το AWS S3, περιλαμβάνει τη δημιουργία κλειδιών HMAC για Λογαριασμούς Υπηρεσιών και χρήστες. Ένας επιτιθέμενος μπορεί να εκμεταλλευτεί αυτό δημιουργώντας ένα κλειδί HMAC για έναν Λογαριασμό Υπηρεσίας με αυξημένα προνόμια, με αποτέλεσμα την εξέλιξη των προνομίων εντός της Αποθήκευσης Cloud. Ενώ τα κλειδιά HMAC που σχετίζονται με τον χρήστη είναι διαθέσιμα μόνο μέσω της ιστοσελίδας, τόσο τα κλειδιά πρόσβασης όσο και τα μυστικά κλειδιά παραμένουν προσβάσιμα μόνιμα, επιτρέποντας την πιθανή δημιουργία αντιγράφων ασφαλείας για την πρόσβαση στην αποθήκευση. Αντιστρόφως, τα κλειδιά HMAC που συνδέονται με τον Λογαριασμό Υπηρεσίας είναι προσβάσιμα μέσω του API, αλλά τα κλειδιά πρόσβασης και μυστικά κλειδιά δεν είναι ανάκτητα μετά τη δημιουργία τους, προσθέτοντας ένα επίπεδο πολυπλοκότητας για συνεχή πρόσβαση.
Another exploit script for this method can be found here.
storage.objects.create
, storage.objects.delete
= Άδειες εγγραφής αποθήκευσης
storage.objects.create
, storage.objects.delete
= Άδειες εγγραφής αποθήκευσηςΓια να δημιουργήσετε ένα νέο αντικείμενο μέσα σε ένα κάδο χρειάζεστε την storage.objects.create
και, σύμφωνα με τα έγγραφα, χρειάζεστε επίσης την storage.objects.delete
για να τροποποιήσετε ένα υπάρχον αντικείμενο.
Μια πολύ συνηθισμένη εκμετάλλευση των κάδων όπου μπορείτε να γράψετε στο cloud είναι στην περίπτωση που ο κάδος αποθηκεύει αρχεία διακομιστή web, μπορείτε να αποθηκεύσετε νέο κώδικα που θα χρησιμοποιηθεί από την web εφαρμογή.
Composer
Ο Composer είναι το Apache Airflow που διαχειρίζεται μέσα στο GCP. Διαθέτει αρκετά ενδιαφέροντα χαρακτηριστικά:
Τρέχει μέσα σε ένα GKE cluster, έτσι η SA που χρησιμοποιεί το cluster είναι προσβάσιμη από τον κώδικα που τρέχει μέσα στον Composer
Αποθηκεύει τον κώδικα σε έναν κάδο, επομένως, οποιοσδήποτε με δικαιώματα εγγραφής σε αυτόν τον κάδο θα μπορεί να αλλάξει/προσθέσει έναν κώδικα DGA (τον κώδικα που θα εκτελέσει το Apache Airflow) Στη συνέχεια, αν έχετε δικαιώματα εγγραφής στον κάδο που χρησιμοποιεί ο Composer για να αποθηκεύσει τον κώδικα, μπορείτε να αναβαθμίσετε τα προνόμια στην SA που τρέχει στο GKE cluster.
Cloud Functions
Ο κώδικας των Cloud Functions αποθηκεύεται στην Αποθήκευση, έτσι με τον παρακάτω κώδικα, είναι δυνατή η εκτέλεση αυθαίρετου κώδικα.
App Engine
Ο κώδικας πηγής του App Engine αποθηκεύεται σε κάδους, με τον παρακάτω κώδικα, είναι δυνατή η εκτέλεση αυθαίρετου κώδικα. ΑΥΤΟ ΔΕΝ ΕΙΝΑΙ ΔΥΝΑΤΟ
Φαίνεται ότι τα επίπεδα των ελαίων αποθηκεύονται στον κάδο, ίσως να αλλάξουν αυτά;
GCR
Το Google Container Registry αποθηκεύει τις εικόνες μέσα σε κάδους, αν μπορείτε να γράψετε σε αυτούς τους κάδους μπορείτε να μετακινηθείτε πλαγίως εκεί όπου τρέχουν αυτοί οι κάδοι.
Ο κάδος που χρησιμοποιείται από το GCR θα έχει ένα URL παρόμοιο με
gs://<eu/usa/asia/nothing>.artifacts.<project>.appspot.com
(Οι υποτομές κορυφαίου επιπέδου καθορίζονται εδώ).
Αναφορές
Last updated