GCP - Storage Privesc

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

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

Αποθήκευση

Βασικές Πληροφορίες:

pageGCP - Storage Enum

storage.objects.get

Αυτή η άδεια σας επιτρέπει να κατεβάσετε αρχεία που αποθηκεύονται μέσα στην Αποθήκευση του Cloud. Αυτό θα σας επιτρέψει πιθανώς να ανεβάσετε προνόμια επειδή σε ορισμένες περιπτώσεις ευαίσθητες πληροφορίες αποθηκεύονται εκεί. Επιπλέον, ορισμένες υπηρεσίες του GCP αποθηκεύουν τις πληροφορίες τους σε κάδους:

  • GCP Composer: Όταν δημιουργείτε ένα Περιβάλλον Composer, ο κώδικας όλων των DAGs θα αποθηκευτεί μέσα σε έναν κάδο. Αυτές οι εργασίες μπορεί να περιέχουν ενδιαφέρουσες πληροφορίες μέσα στον κώδικά τους.

  • GCR (Container Registry): Η εικόνα των εμπορευμάτων αποθηκεύεται μέσα σε κάδους, πράγμα που σημαίνει ότι εάν μπορείτε να διαβάσετε τους κάδους θα μπορείτε να κατεβάσετε τις εικόνες και να αναζητήσετε διαρροές και/ή πηγαίο κώδικα.

storage.objects.setIamPolicy

Μπορείτε να δώσετε την άδεια να καταχραστείτε οποιοδήποτε από τα προηγούμενα σενάρια αυτής της ενότητας.

storage.buckets.setIamPolicy

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

pageGCP - Public Buckets Privilege Escalation

storage.hmacKeys.create

Η "δυνατότητα αλληλεπίδρασης" της Αποθήκευσης του Cloud Storage, σχεδιασμένη για αλληλεπιδράσεις μεταξύ πολλαπλών νέφων όπως με το AWS S3, περιλαμβάνει τη δημιουργία κλειδιών HMAC για Λογαριασμούς Υπηρεσιών και χρήστες. Ένας επιτιθέμενος μπορεί να εκμεταλλευτεί αυτό δημιουργώντας ένα κλειδί HMAC για έναν Λογαριασμό Υπηρεσίας με αυξημένα προνόμια, με αποτέλεσμα την ανέβαση προνομίων εντός της Αποθήκευσης του Cloud. Ενώ τα κλειδιά HMAC που σχετίζονται με τους χρήστες είναι προσβάσιμα μόνο μέσω της ιστοσελίδας, τόσο τα κλειδιά πρόσβασης όσο και τα μυστικά κλειδιά παραμένουν προσβάσιμα διαρκώς, επιτρέποντας την πιθανή ανάκτηση πρόσβασης αντιγράφων ασφαλείας. Αντιθέτως, τα κλειδιά HMAC που συνδέονται με τους Λογαριασμούς Υπηρεσίας είναι προσβάσιμα μέσω του API, αλλά τα κλειδιά πρόσβασης και τα μυστικά κλειδιά τους δεν είναι προσβάσιμα μετά τη δημιουργία τους, προσθέτοντας ένα επίπεδο πολυπλοκότητας για συνεχή πρόσβαση.

# Create key
gsutil hmac create <sa-email>

# Configure gsutil to use it
gsutil config -a

# Use it
gsutil ls gs://[BUCKET_NAME]

Ένα άλλο σενάριο εκμετάλλευσης για αυτήν τη μέθοδο μπορεί να βρεθεί εδώ.

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 (Οι υποεπίπεδα των κυρίων τομέων καθορίζονται εδώ).

Αναφορές

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

Άλλοι τρόποι υποστήριξης του HackTricks:

Last updated