GCP - Storage Privesc
Αποθήκευση
Βασικές Πληροφορίες:
pageGCP - Storage Enumstorage.objects.get
storage.objects.get
Αυτή η άδεια σας επιτρέπει να κατεβάσετε αρχεία που αποθηκεύονται μέσα στην Αποθήκευση του Cloud. Αυτό θα σας επιτρέψει πιθανώς να ανεβάσετε προνόμια επειδή σε ορισμένες περιπτώσεις ευαίσθητες πληροφορίες αποθηκεύονται εκεί. Επιπλέον, ορισμένες υπηρεσίες του GCP αποθηκεύουν τις πληροφορίες τους σε κάδους:
GCP Composer: Όταν δημιουργείτε ένα Περιβάλλον Composer, ο κώδικας όλων των DAGs θα αποθηκευτεί μέσα σε έναν κάδο. Αυτές οι εργασίες μπορεί να περιέχουν ενδιαφέρουσες πληροφορίες μέσα στον κώδικά τους.
GCR (Container Registry): Η εικόνα των εμπορευμάτων αποθηκεύεται μέσα σε κάδους, πράγμα που σημαίνει ότι εάν μπορείτε να διαβάσετε τους κάδους θα μπορείτε να κατεβάσετε τις εικόνες και να αναζητήσετε διαρροές και/ή πηγαίο κώδικα.
storage.objects.setIamPolicy
storage.objects.setIamPolicy
Μπορείτε να δώσετε την άδεια να καταχραστείτε οποιοδήποτε από τα προηγούμενα σενάρια αυτής της ενότητας.
storage.buckets.setIamPolicy
storage.buckets.setIamPolicy
Για ένα παράδειγμα για το πώς να τροποποιήσετε τις άδειες με αυτήν την άδεια, ελέγξτε αυτήν τη σελίδα:
pageGCP - Public Buckets Privilege Escalationstorage.hmacKeys.create
storage.hmacKeys.create
Η "δυνατότητα αλληλεπίδρασης" της Αποθήκευσης του Cloud Storage, σχεδιασμένη για αλληλεπιδράσεις μεταξύ πολλαπλών νέφων όπως με το AWS S3, περιλαμβάνει τη δημιουργία κλειδιών HMAC για Λογαριασμούς Υπηρεσιών και χρήστες. Ένας επιτιθέμενος μπορεί να εκμεταλλευτεί αυτό δημιουργώντας ένα κλειδί HMAC για έναν Λογαριασμό Υπηρεσίας με αυξημένα προνόμια, με αποτέλεσμα την ανέβαση προνομίων εντός της Αποθήκευσης του Cloud. Ενώ τα κλειδιά HMAC που σχετίζονται με τους χρήστες είναι προσβάσιμα μόνο μέσω της ιστοσελίδας, τόσο τα κλειδιά πρόσβασης όσο και τα μυστικά κλειδιά παραμένουν προσβάσιμα διαρκώς, επιτρέποντας την πιθανή ανάκτηση πρόσβασης αντιγράφων ασφαλείας. Αντιθέτως, τα κλειδιά HMAC που συνδέονται με τους Λογαριασμούς Υπηρεσίας είναι προσβάσιμα μέσω του API, αλλά τα κλειδιά πρόσβασης και τα μυστικά κλειδιά τους δεν είναι προσβάσιμα μετά τη δημιουργία τους, προσθέτοντας ένα επίπεδο πολυπλοκότητας για συνεχή πρόσβαση.
Ένα άλλο σενάριο εκμετάλλευσης για αυτήν τη μέθοδο μπορεί να βρεθεί εδώ.
storage.objects.create
, storage.objects.delete
= Δικαιώματα εγγραφής αποθήκευσης
storage.objects.create
, storage.objects.delete
= Δικαιώματα εγγραφής αποθήκευσηςΓια να δημιουργήσετε ένα νέο αντικείμενο μέσα σε ένα κάδο, χρειάζεστε το storage.objects.create
και, σύμφωνα με τα έγγραφα, χρειάζεστε επίσης το storage.objects.delete
για να τροποποιήσετε ένα υπάρχον αντικείμενο.
Μια πολύ συνηθισμένη εκμετάλλευση των κάδων όπου μπορείτε να γράψετε στο cloud είναι στην περίπτωση που ο κάδος αποθηκεύει αρχεία διακομιστή ιστού, μπορείτε να αποθηκεύσετε νέο κώδικα που θα χρησιμοποιηθεί από την εφαρμογή ιστού.
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