GCP - Privilege Escalation
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.
Introduction to GCP Privilege Escalation
GCP, όπως κάθε άλλο cloud, έχει κάποιες αρχές: χρήστες, ομάδες και λογαριασμούς υπηρεσιών, και κάποιους πόρους όπως compute engine, cloud functions…
Στη συνέχεια, μέσω ρόλων, οι άδειες χορηγούνται σε αυτές τις αρχές πάνω στους πόρους. Αυτή είναι η διαδικασία για να καθορίσετε τις άδειες που έχει μια αρχή πάνω σε έναν πόρο στο GCP.
Υπάρχουν ορισμένες άδειες που θα επιτρέψουν σε έναν χρήστη να αποκτήσει ακόμη περισσότερες άδειες στον πόρο ή σε τρίτους πόρους, και αυτό ονομάζεται privilege escalation (επίσης, η εκμετάλλευση των ευπαθειών για να αποκτήσει περισσότερες άδειες).
Επομένως, θα ήθελα να διαχωρίσω τις τεχνικές privilege escalation του GCP σε 2 ομάδες:
- Privesc σε μια αρχή: Αυτό θα σας επιτρέψει να παριστάνετε μια άλλη αρχή, και επομένως να ενεργείτε όπως αυτή με όλες τις άδειές της. π.χ.: Κατάχρηση getAccessToken για να παριστάνετε έναν λογαριασμό υπηρεσίας.
- Privesc στον πόρο: Αυτό θα σας επιτρέψει να αποκτήσετε περισσότερες άδειες πάνω στον συγκεκριμένο πόρο. π.χ.: μπορείτε να καταχραστείτε την άδεια setIamPolicy πάνω σε cloudfunctions για να σας επιτρέψει να ενεργοποιήσετε τη λειτουργία.
- Σημειώστε ότι ορισμένες άδειες πόρων θα σας επιτρέψουν επίσης να επισυνάψετε έναν αυθαίρετο λογαριασμό υπηρεσίας στον πόρο. Αυτό σημαίνει ότι θα μπορείτε να εκκινήσετε έναν πόρο με έναν SA, να μπείτε στον πόρο και να κλέψετε το SA token. Επομένως, αυτό θα επιτρέψει την κλιμάκωση σε μια αρχή μέσω μιας κλιμάκωσης πόρου. Αυτό έχει συμβεί σε αρκετούς πόρους στο παρελθόν, αλλά τώρα είναι λιγότερο συχνό (αλλά μπορεί να συμβεί ακόμα).
Προφανώς, οι πιο ενδιαφέρουσες τεχνικές κλιμάκωσης προνομίων είναι αυτές της δεύτερης ομάδας γιατί θα σας επιτρέψουν να αποκτήσετε περισσότερα προνόμια εκτός από τους πόρους στους οποίους έχετε ήδη κάποια προνόμια. Ωστόσο, σημειώστε ότι η κλιμάκωση στους πόρους μπορεί επίσης να σας δώσει πρόσβαση σε ευαίσθητες πληροφορίες ή ακόμη και σε άλλες αρχές (ίσως μέσω της ανάγνωσης ενός μυστικού που περιέχει ένα token ενός SA).
Warning
Είναι σημαντικό να σημειωθεί επίσης ότι στις GCP οι Λογαριασμοί Υπηρεσιών είναι και αρχές και άδειες, οπότε η κλιμάκωση προνομίων σε έναν SA θα σας επιτρέψει επίσης να τον παριστάνετε.
Note
Οι άδειες μέσα σε παρενθέσεις υποδεικνύουν τις άδειες που απαιτούνται για να εκμεταλλευτείτε την ευπάθεια με το
gcloud. Αυτές μπορεί να μην είναι απαραίτητες αν την εκμεταλλευτείτε μέσω του API.
Permissions for Privilege Escalation Methodology
Αυτός είναι ο τρόπος που δοκιμάζω για συγκεκριμένες άδειες για να εκτελέσω συγκεκριμένες ενέργειες μέσα στο GCP.
- Κατεβάστε το github repo https://github.com/carlospolop/gcp_privesc_scripts
- Προσθέστε στα tests/ το νέο σενάριο
Bypassing access scopes
Τα tokens του SA που διαρρέουν από την υπηρεσία μεταδεδομένων του GCP έχουν access scopes. Αυτές είναι περιορισμοί στις άδειες που έχει το token. Για παράδειγμα, αν το token έχει το https://www.googleapis.com/auth/cloud-platform scope, θα έχει πλήρη πρόσβαση σε όλες τις υπηρεσίες GCP. Ωστόσο, αν το token έχει το https://www.googleapis.com/auth/cloud-platform.read-only scope, θα έχει μόνο πρόσβαση μόνο για ανάγνωση σε όλες τις υπηρεσίες GCP ακόμη και αν ο SA έχει περισσότερες άδειες στο IAM.
Δεν υπάρχει άμεσος τρόπος να παρακαμφθούν αυτές οι άδειες, αλλά μπορείτε πάντα να προσπαθήσετε να αναζητήσετε νέες διαπιστευτήρια στον παραβιασμένο υπολογιστή, να βρείτε το κλειδί υπηρεσίας για να δημιουργήσετε ένα OAuth token χωρίς περιορισμούς ή να μεταπηδήσετε σε μια διαφορετική VM με λιγότερους περιορισμούς.
Όταν χρησιμοποιούνται access scopes, το OAuth token που δημιουργείται για την υπολογιστική μονάδα (VM) θα έχει μια περιορισμένη έκταση συμπεριλαμβανομένη. Ωστόσο, μπορεί να είστε σε θέση να παρακάμψετε αυτόν τον περιορισμό και να εκμεταλλευτείτε τις άδειες που έχει ο παραβιασμένος λογαριασμός.
Ο καλύτερος τρόπος για να παρακάμψετε αυτόν τον περιορισμό είναι είτε να βρείτε νέες διαπιστευτήρια στον παραβιασμένο υπολογιστή, να βρείτε το κλειδί υπηρεσίας για να δημιουργήσετε ένα OAuth token χωρίς περιορισμούς ή να παραβιάσετε μια διαφορετική VM με έναν SA λιγότερο περιορισμένο.
Ελέγξτε τον SA με κλειδιά που δημιουργήθηκαν με:
for i in $(gcloud iam service-accounts list --format="table[no-heading](email)"); do
echo "Looking for keys for $i:"
gcloud iam service-accounts keys list --iam-account $i
done
Τεχνικές Κλιμάκωσης Δικαιωμάτων
Ο τρόπος για να κλιμακώσετε τα δικαιώματά σας στο AWS είναι να έχετε αρκετές άδειες ώστε να μπορείτε, με κάποιο τρόπο, να αποκτήσετε πρόσβαση σε άλλες άδειες λογαριασμού/χρηστών/ομάδων. Συνδυάζοντας τις κλιμάκωσεις μέχρι να έχετε πρόσβαση διαχειριστή στην οργάνωση.
Warning
GCP έχει εκατοντάδες (αν όχι χιλιάδες) άδειες που μπορεί να παραχωρηθούν σε μια οντότητα. Σε αυτό το βιβλίο μπορείτε να βρείτε όλες τις άδειες που γνωρίζω που μπορείτε να εκμεταλλευτείτε για να κλιμακώσετε δικαιώματα, αλλά αν γνωρίζετε κάποια διαδρομή που δεν αναφέρεται εδώ, παρακαλώ μοιραστείτε την.
Οι υποσελίδες αυτής της ενότητας είναι ταξινομημένες κατά υπηρεσίες. Μπορείτε να βρείτε σε κάθε υπηρεσία διαφορετικούς τρόπους για να κλιμακώσετε δικαιώματα στις υπηρεσίες.
Εκμετάλλευση GCP για τοπική κλιμάκωση δικαιωμάτων
Αν βρίσκεστε μέσα σε μια μηχανή στο GCP, μπορεί να μπορείτε να εκμεταλλευτείτε άδειες για να κλιμακώσετε δικαιώματα ακόμα και τοπικά:
GCP - local privilege escalation ssh pivoting
Αναφορές
- https://rhinosecuritylabs.com/gcp/privilege-escalation-google-cloud-platform-part-1/
- https://rhinosecuritylabs.com/cloud-security/privilege-escalation-google-cloud-platform-part-2/
- https://about.gitlab.com/blog/2020/02/12/plundering-gcp-escalating-privileges-in-google-cloud-platform/
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

