GCP - Storage Privesc

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

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

Αποθήκευση

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

GCP - Storage Enum

storage.objects.get

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

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

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

storage.objects.setIamPolicy

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

storage.buckets.setIamPolicy

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

GCP - Public Buckets Privilege Escalation

storage.hmacKeys.create

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

# Create key
gsutil hmac create <sa-email>

# Configure gsutil to use it
gcloud config set pass_credentials_to_gsutil false
gsutil config -a

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

# Restore
gcloud config set pass_credentials_to_gsutil true

Another exploit script for this method can be found here.

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

Αναφορές

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

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

Last updated