GCP - Compute Privesc
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Για περισσότερες πληροφορίες σχετικά με το Compute και το VPC (δίκτυο) στο GCP, ελέγξτε:
GCP - Compute EnumΣημειώστε ότι για να εκτελέσετε όλες τις επιθέσεις ανύψωσης προνομίων που απαιτούν να τροποποιήσετε τα μεταδεδομένα της παρουσίας (όπως η προσθήκη νέων χρηστών και SSH κλειδιών) είναι αναγκαίο να έχετε δικαιώματα actAs
πάνω στο SA που είναι συνδεδεμένο με την παρουσία, ακόμη και αν το SA είναι ήδη συνδεδεμένο!
compute.projects.setCommonInstanceMetadata
Με αυτή την άδεια μπορείτε να τροποποιήσετε τις πληροφορίες μεταδεδομένων μιας παρουσίας και να αλλάξετε τα εξουσιοδοτημένα κλειδιά ενός χρήστη, ή να δημιουργήσετε έναν νέο χρήστη με δικαιώματα sudo. Επομένως, θα μπορείτε να εκτελέσετε μέσω SSH σε οποιαδήποτε VM παρουσία και να κλέψετε το GCP Service Account με το οποίο εκτελείται η παρουσία. Περιορισμοί:
Σημειώστε ότι τα GCP Service Accounts που εκτελούνται σε VM παρουσίες από προεπιλογή έχουν πολύ περιορισμένο πεδίο
Θα χρειαστεί να είστε σε θέση να επικοινωνήσετε με τον SSH διακομιστή για να συνδεθείτε
Για περισσότερες πληροφορίες σχετικά με το πώς να εκμεταλλευτείτε αυτή την άδεια, ελέγξτε:
GCP - Add Custom SSH MetadataΜπορείτε επίσης να εκτελέσετε αυτή την επίθεση προσθέτοντας νέο startup-script και επανεκκινώντας την παρουσία:
compute.instances.setMetadata
Αυτή η άδεια δίνει τα ίδια προνόμια με την προηγούμενη άδεια αλλά σε συγκεκριμένες περιπτώσεις αντί για ολόκληρο το έργο. Οι ίδιες εκμεταλλεύσεις και περιορισμοί όπως στην προηγούμενη ενότητα ισχύουν.
compute.instances.setIamPolicy
Αυτού του είδους η άδεια θα σας επιτρέψει να παραχωρήσετε στον εαυτό σας έναν ρόλο με τις προηγούμενες άδειες και να κλιμακώσετε τα προνόμια εκμεταλλευόμενοι αυτές.
compute.instances.osLogin
Εάν το OSLogin είναι ενεργοποιημένο στην περίπτωση, με αυτή την άδεια μπορείτε απλά να εκτελέσετε gcloud compute ssh [INSTANCE]
και να συνδεθείτε στην περίπτωση. Δεν θα έχετε δικαιώματα root μέσα στην περίπτωση.
Για να συνδεθείτε επιτυχώς με αυτή την άδεια μέσα στην VM περίπτωση, πρέπει να έχετε την άδεια iam.serviceAccounts.actAs
πάνω στο SA που είναι συνδεδεμένο με την VM.
compute.instances.osAdminLogin
Εάν το OSLogin είναι ενεργοποιημένο στην περίπτωση, με αυτή την άδεια μπορείτε απλά να εκτελέσετε gcloud compute ssh [INSTANCE]
και να συνδεθείτε στην περίπτωση. Θα έχετε δικαιώματα root μέσα στην περίπτωση.
Για να συνδεθείτε επιτυχώς με αυτή την άδεια μέσα στην VM περίπτωση, πρέπει να έχετε την άδεια iam.serviceAccounts.actAs
πάνω στο SA που είναι συνδεδεμένο με την VM.
compute.instances.create
,iam.serviceAccounts.actAs, compute.disks.create
, compute.instances.create
, compute.instances.setMetadata
, compute.instances.setServiceAccount
, compute.subnetworks.use
, compute.subnetworks.useExternalIp
Είναι δυνατόν να δημιουργήσετε μια εικονική μηχανή με έναν ανατεθειμένο Λογαριασμό Υπηρεσίας και να κλέψετε το token του λογαριασμού υπηρεσίας αποκτώντας πρόσβαση στα μεταδεδομένα για να κλιμακώσετε τα προνόμια σε αυτόν.
Το σενάριο εκμετάλλευσης για αυτή τη μέθοδο μπορεί να βρεθεί εδώ.
osconfig.patchDeployments.create
| osconfig.patchJobs.exec
Εάν έχετε τις osconfig.patchDeployments.create
ή osconfig.patchJobs.exec
άδειες μπορείτε να δημιουργήσετε μια εργασία patch ή ανάπτυξη. Αυτό θα σας επιτρέψει να κινηθείτε οριζόντια στο περιβάλλον και να αποκτήσετε εκτέλεση κώδικα σε όλες τις υπολογιστικές περιπτώσεις εντός ενός έργου.
Σημειώστε ότι αυτή τη στιγμή δεν χρειάζεστε άδεια actAs
πάνω στο SA που είναι συνδεδεμένο με την περίπτωση.
Εάν θέλετε να εκμεταλλευτείτε αυτό χειροκίνητα θα χρειαστεί να δημιουργήσετε είτε μια εργασία patch ή ανάπτυξη. Για μια εργασία patch εκτελέστε:
Για να αναπτύξετε μια ανάπτυξη διορθώσεων:
Το εργαλείο patchy θα μπορούσε να έχει χρησιμοποιηθεί στο παρελθόν για την εκμετάλλευση αυτής της κακής ρύθμισης (αλλά τώρα δεν λειτουργεί).
Ένας επιτιθέμενος θα μπορούσε επίσης να το εκμεταλλευτεί για επιμονή.
compute.machineImages.setIamPolicy
Δώστε στον εαυτό σας επιπλέον δικαιώματα για την εικόνα υπολογιστή.
compute.snapshots.setIamPolicy
Δώστε στον εαυτό σας επιπλέον δικαιώματα για ένα στιγμιότυπο δίσκου.
compute.disks.setIamPolicy
Δώστε στον εαυτό σας επιπλέον δικαιώματα για έναν δίσκο.
Ακολουθώντας αυτόν τον σύνδεσμο θα βρείτε μερικές ιδέες για να προσπαθήσετε να παρακάμψετε τα πεδία πρόσβασης.
Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)