GCP - KMS 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)
Πληροφορίες σχετικά με το KMS:
GCP - KMS EnumΣημειώστε ότι στο KMS οι άδειες δεν κληρονομούνται μόνο από Οργανισμούς, Φάκελους και Έργα αλλά και από Keyrings.
cloudkms.cryptoKeyVersions.useToDecrypt
Μπορείτε να χρησιμοποιήσετε αυτήν την άδεια για να αποκρυπτογραφήσετε πληροφορίες με το κλειδί για το οποίο έχετε αυτήν την άδεια.
cloudkms.cryptoKeys.setIamPolicy
Ένας επιτιθέμενος με αυτή την άδεια θα μπορούσε να δώσει στον εαυτό του άδειες για να χρησιμοποιήσει το κλειδί για να αποκρυπτογραφήσει πληροφορίες.
cloudkms.cryptoKeyVersions.useToDecryptViaDelegation
Ακολουθεί μια εννοιολογική ανάλυση του πώς λειτουργεί αυτή η εξουσιοδότηση:
Service Account A έχει άμεση πρόσβαση για αποκρυπτογράφηση χρησιμοποιώντας ένα συγκεκριμένο κλειδί στο KMS.
Service Account B έχει παραχωρηθεί η άδεια useToDecryptViaDelegation
. Αυτό του επιτρέπει να ζητά από το KMS να αποκρυπτογραφήσει δεδομένα εκ μέρους του Service Account A.
Η χρήση αυτής της άδειας είναι έμμεση στον τρόπο που η υπηρεσία KMS ελέγχει τις άδειες όταν υποβάλλεται ένα αίτημα αποκρυπτογράφησης.
Όταν υποβάλετε ένα τυπικό αίτημα αποκρυπτογράφησης χρησιμοποιώντας το Google Cloud KMS API (σε Python ή άλλη γλώσσα), η υπηρεσία ελέγχει αν ο ζητών λογαριασμός υπηρεσίας έχει τις απαραίτητες άδειες. Εάν το αίτημα υποβάλλεται από έναν λογαριασμό υπηρεσίας με την άδεια useToDecryptViaDelegation
, το KMS επαληθεύει αν αυτός ο λογαριασμός επιτρέπεται να ζητήσει αποκρυπτογράφηση εκ μέρους της οντότητας που κατέχει το κλειδί.
Define the Custom Role: Δημιουργήστε ένα αρχείο YAML (π.χ., custom_role.yaml
) που ορίζει τον προσαρμοσμένο ρόλο. Αυτό το αρχείο θα πρέπει να περιλαμβάνει την άδεια cloudkms.cryptoKeyVersions.useToDecryptViaDelegation
. Ακολουθεί ένα παράδειγμα του πώς μπορεί να φαίνεται αυτό το αρχείο:
Δημιουργήστε τον Προσαρμοσμένο Ρόλο Χρησιμοποιώντας το gcloud CLI: Χρησιμοποιήστε την παρακάτω εντολή για να δημιουργήσετε τον προσαρμοσμένο ρόλο στο έργο σας στο Google Cloud:
Αντικαταστήστε το [YOUR_PROJECT_ID]
με το ID του έργου σας στο Google Cloud.
Δώστε τον Προσαρμοσμένο Ρόλο σε έναν Λογαριασμό Υπηρεσίας: Αναθέστε τον προσαρμοσμένο ρόλο σε έναν λογαριασμό υπηρεσίας που θα χρησιμοποιεί αυτή την άδεια. Χρησιμοποιήστε την παρακάτω εντολή:
Αντικαταστήστε το [YOUR_PROJECT_ID]
και το [SERVICE_ACCOUNT_EMAIL]
με το ID του έργου σας και το email του λογαριασμού υπηρεσίας, αντίστοιχα.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)