GCP - Compute Privesc
Compute
Για περισσότερες πληροφορίες σχετικά με το Compute και το VPC (δίκτυο) στο GCP ελέγξτε:
GCP - Compute EnumΣημειώστε ότι για να εκτελέσετε όλες τις επιθέσεις εξέλιξης προνομίων που απαιτούν τροποποίηση των μεταδεδομένων της εικόνας (όπως η προσθήκη νέων χρηστών και κλειδιών SSH) χρειάζεται να έχετε δικαιώματα actAs
πάνω στο SA που είναι συνδεδεμένο με την εικόνα, ακόμη κι αν το SA είναι ήδη συνδεδεμένο!
compute.projects.setCommonInstanceMetadata
compute.projects.setCommonInstanceMetadata
Με αυτήν την άδεια μπορείτε να τροποποιήσετε τις πληροφορίες μεταδεδομένων μιας εικόνας και να αλλάξετε τα εξουσιοδοτημένα κλειδιά ενός χρήστη, ή να δημιουργήσετε έναν νέο χρήστη με δικαιώματα sudo. Έτσι, θα μπορείτε να εκτελέσετε μέσω SSH σε οποιαδήποτε εικονική μηχανή και να κλέψετε τον Λογαριασμό Υπηρεσιών GCP με τον οποίο λειτουργεί η εικόνα. Περιορισμοί:
Σημειώστε ότι οι Λογαριασμοί Υπηρεσιών GCP που λειτουργούν σε εικόνες VM έχουν από προεπιλογή ένα πολύ περιορισμένο εύρος εφαρμογής
Θα πρέπει να είστε σε θέση να επικοινωνήσετε με τον διακομιστή SSH για να συνδεθείτε
Για περισσότερες πληροφορίες σχετικά με το πώς να εκμεταλλευτείτε αυτήν την άδεια ελέγξτε:
GCP - Add Custom SSH MetadataΜπορείτε επίσης να εκτελέσετε αυτήν την επίθεση προσθέτοντας νέο startup-script και επανεκκινώντας την εικόνα:
compute.instances.setMetadata
compute.instances.setMetadata
Αυτή η άδεια δίνει τα ίδια προνόμια με την προηγούμενη άδεια αλλά για συγκεκριμένες μονάδες αντί για ολόκληρο έργο. Οι ίδιες εκμεταλλεύσεις και περιορισμοί όπως και για την προηγούμενη ενότητα ισχύουν.
compute.instances.setIamPolicy
compute.instances.setIamPolicy
Αυτού του είδους άδεια θα σας επιτρέψει να χορηγήσετε στον εαυτό σας έναν ρόλο με τις προηγούμενες άδειες και να εξελίξετε τα προνόμια καταχρώμενοι τις.
compute.instances.osLogin
compute.instances.osLogin
Εάν το OSLogin είναι ενεργοποιημένο στη μονάδα, με αυτή την άδεια μπορείτε απλά να εκτελέσετε gcloud compute ssh [INSTANCE]
και να συνδεθείτε στη μονάδα. Δεν θα έχετε root προνόμια μέσα στη μονάδα.
compute.instances.osAdminLogin
compute.instances.osAdminLogin
Εάν το OSLogin είναι ενεργοποιημένο στη μονάδα, με αυτή την άδεια μπορείτε απλά να εκτελέσετε gcloud compute ssh [INSTANCE]
και να συνδεθείτε στη μονάδα. Θα έχετε root προνόμια μέσα στη μονάδα.
compute.instances.create
,iam.serviceAccounts.actAs, compute.disks.create
, compute.instances.create
, compute.instances.setMetadata
, compute.instances.setServiceAccount
, compute.subnetworks.use
, compute.subnetworks.useExternalIp
compute.instances.create
,iam.serviceAccounts.actAs, compute.disks.create
, compute.instances.create
, compute.instances.setMetadata
, compute.instances.setServiceAccount
, compute.subnetworks.use
, compute.subnetworks.useExternalIp
Είναι δυνατόν να δημιουργήσετε ένα εικονικό μηχάνημα με εκχωρημένο Λογαριασμό Υπηρεσίας και να κλέψετε το τεκμήριο του λογαριασμού υπηρεσίας προσπελαύνοντας τα μεταδεδομένα για να εξελίξετε τα προνόμιά σας σε αυτόν.
Το σενάριο εκμετάλλευσης για αυτήν τη μέθοδο μπορεί να βρεθεί εδώ.
osconfig.patchDeployments.create
| osconfig.patchJobs.exec
osconfig.patchDeployments.create
| osconfig.patchJobs.exec
Εάν έχετε τις άδειες osconfig.patchDeployments.create
ή osconfig.patchJobs.exec
μπορείτε να δημιουργήσετε ένα patch job ή αναπτύξεις. Αυτό θα σας επιτρέψει να μετακινηθείτε πλάγια στο περιβάλλον και να κερδίσετε εκτέλεση κώδικα σε όλες τις μονάδες υπολογιστών εντός ενός έργου.
Εάν θέλετε να εκμεταλλευτείτε χειροκίνητα αυτό, θα πρέπει να δημιουργήσετε είτε ένα patch job είτε μια αναπτυξιακή διαδικασία για ένα patch job εκτελέστε:
gcloud compute os-config patch-jobs execute --file=patch.json
Για να αναπτύξετε μια αναπτυξιακή διαδικασία:
gcloud compute os-config patch-deployments create my-update --file=patch.json
Υπάρχουν αυτοματοποιημένα εργαλεία όπως το patchy που υπάρχουν για την ανίχνευση χαλαρών άδειων και την αυτόματη μετακίνηση πλάγια.
Μπορείτε επίσης να καταχραστείτε αυτό για μόνιμη παραμονή.
compute.machineImages.setIamPolicy
compute.machineImages.setIamPolicy
Χορηγήστε στον εαυτό σας επιπλέον δικαιώματα στην εικόνα μηχανής.
compute.snapshots.setIamPolicy
compute.snapshots.setIamPolicy
Χορηγήστε στον εαυτό σας επιπλέον δικαιώματα σε ένα αντίγραφο ασφαλείας δίσκου.
compute.disks.setIamPolicy
compute.disks.setIamPolicy
Χορηγήστε στον εαυτό σας επιπλέον δικαιώματα σε ένα δίσκο.
Παράκαμψη Εμβέλειας Πρόσβασης
Ακολουθώντας αυτόν τον σύνδεσμο θα βρείτε μερικές ιδέες για να προσπαθήσετε να παρακάμψετε τις εμβέλειες πρόσβασης.
Τοπική Ανόδος Προνομίων στην Μονάδα Υπολογιστή GCP
GCP - local privilege escalation ssh pivotingΑναφορές
Last updated