GCP - IAM, Principals & Org Policies Enum
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)
Για μια εισαγωγή σχετικά με το τι είναι ένας λογαριασμός υπηρεσίας, ελέγξτε:
GCP - Basic InformationΈνας λογαριασμός υπηρεσίας ανήκει πάντα σε ένα έργο:
Για μια εισαγωγή σχετικά με το πώς λειτουργούν οι Χρήστες & Ομάδες στο GCP, δείτε:
GCP - Basic InformationΜε τις άδειες serviceusage.services.enable
και serviceusage.services.use
είναι δυνατή η ενεργοποίηση υπηρεσιών σε ένα έργο και η χρήση τους.
Σημειώστε ότι από προεπιλογή, οι χρήστες του Workspace έχουν τον ρόλο Δημιουργός Έργου, δίνοντάς τους πρόσβαση για δημιουργία νέων έργων. Όταν ένας χρήστης δημιουργεί ένα έργο, του αποδίδεται ο ρόλος owner
σε αυτό. Έτσι, θα μπορούσε να ενεργοποιήσει αυτές τις υπηρεσίες στο έργο για να μπορέσει να αριθμήσει το Workspace.
Ωστόσο, σημειώστε ότι απαιτείται επίσης να έχετε αρκετές άδειες στο Workspace για να μπορέσετε να καλέσετε αυτές τις APIs.
Εάν μπορείτε να ενεργοποιήσετε την υπηρεσία admin
και αν ο χρήστης σας έχει αρκετά προνόμια στο workspace, θα μπορούσατε να αριθμήσετε όλες τις ομάδες & χρήστες με τις παρακάτω γραμμές.
Ακόμα και αν λέει identity groups
, επιστρέφει επίσης χρήστες χωρίς καμία ομάδα:
Στα προηγούμενα παραδείγματα, η παράμετρος --labels
είναι υποχρεωτική, οπότε χρησιμοποιείται μια γενική τιμή (δεν απαιτείται αν χρησιμοποιήσετε την API απευθείας όπως το PurplePanda εδώ.
Ακόμα και με την υπηρεσία διαχειριστή ενεργοποιημένη, είναι πιθανό να λάβετε ένα σφάλμα κατά την καταμέτρηση τους επειδή ο χρήστης του workspace που έχει παραβιαστεί δεν έχει αρκετές άδειες:
Δείτε αυτό για βασικές πληροφορίες σχετικά με το IAM.
Από τα έγγραφα: Όταν δημιουργείται ένας πόρος οργανισμού, όλοι οι χρήστες στο τομέα σας λαμβάνουν τους ρόλους Δημιουργός Λογαριασμού Χρέωσης και Δημιουργός Έργου από προεπιλογή. Αυτοί οι προεπιλεγμένοι ρόλοι επιτρέπουν στους χρήστες σας να αρχίσουν να χρησιμοποιούν το Google Cloud αμέσως, αλλά δεν προορίζονται για χρήση στη κανονική λειτουργία του πόρου οργανισμού σας.
Αυτοί οι ρόλοι παρέχουν τις άδειες:
billing.accounts.create
και resourcemanager.organizations.get
resourcemanager.organizations.get
και resourcemanager.projects.create
Επιπλέον, όταν ένας χρήστης δημιουργεί ένα έργο, του χορηγείται αυτόματα ο ιδιοκτήτης αυτού του έργου σύμφωνα με τα έγγραφα. Επομένως, από προεπιλογή, ένας χρήστης θα μπορεί να δημιουργήσει ένα έργο και να εκτελέσει οποιαδήποτε υπηρεσία σε αυτό (miners? καταμέτρηση workspace? ...)
Η υψηλότερη προνομία σε έναν GCP Οργανισμό είναι ο ρόλος Διαχειριστής Οργανισμού.
Στις περισσότερες υπηρεσίες θα μπορείτε να αλλάξετε τις άδειες σε έναν πόρο χρησιμοποιώντας τη μέθοδο add-iam-policy-binding
ή set-iam-policy
. Η κύρια διαφορά είναι ότι add-iam-policy-binding
προσθέτει μια νέα δέσμευση ρόλου στην υπάρχουσα πολιτική IAM ενώ set-iam-policy
θα διαγράψει τις προηγουμένως χορηγηθείσες άδειες και θα ορίσει μόνο αυτές που υποδεικνύονται στην εντολή.
Υπάρχουν διάφοροι τρόποι για να ελέγξετε όλες τις άδειες ενός χρήστη σε διάφορους πόρους (όπως οργανισμούς, φακέλους, έργα...) χρησιμοποιώντας αυτή την υπηρεσία.
Η άδεια cloudasset.assets.searchAllIamPolicies
μπορεί να ζητήσει όλες τις iam πολιτικές μέσα σε έναν πόρο.
Η άδεια cloudasset.assets.analyzeIamPolicy
μπορεί να ζητήσει όλες τις πολιτικές iam ενός φορέα μέσα σε έναν πόρο.
Η άδεια cloudasset.assets.searchAllResources
επιτρέπει την καταγραφή όλων των πόρων ενός οργανισμού, φακέλου ή έργου. Περιλαμβάνονται οι πόροι που σχετίζονται με το IAM (όπως οι ρόλοι).
Η άδεια cloudasset.assets.analyzeMove
μπορεί να είναι χρήσιμη για να ανακτήσει επίσης πολιτικές που επηρεάζουν έναν πόρο όπως ένα έργο
Υποθέτω ότι η άδεια cloudasset.assets.queryIamPolicy
θα μπορούσε επίσης να δώσει πρόσβαση για να βρει άδειες των προσώπων
Αν δεν μπορείτε να αποκτήσετε πρόσβαση σε πληροφορίες IAM χρησιμοποιώντας τις προηγούμενες μεθόδους και είστε σε μια Red Team. Μπορείτε να χρησιμοποιήσετε το εργαλείο https://github.com/carlospolop/bf_my_gcp_perms για να κάνετε brute-force τα τρέχοντα δικαιώματά σας.
Ωστόσο, σημειώστε ότι η υπηρεσία cloudresourcemanager.googleapis.com
πρέπει να είναι ενεργοποιημένη.
Στην παρακάτω σελίδα μπορείτε να δείτε πώς να καταχραστείτε τα δικαιώματα IAM για να κλιμακώσετε τα προνόμια:
GCP - IAM PrivescΑν έχετε υψηλά προνόμια μπορείτε να:
Δημιουργήσετε νέες SAs (ή χρήστες αν είστε σε Workspace)
Δώσετε σε κύριους που ελέγχετε περισσότερα δικαιώματα
Δώσετε περισσότερα προνόμια σε ευάλωτες SAs (SSRF σε vm, ευάλωτη Cloud Function…)
…
Για μια εισαγωγή σχετικά με το τι είναι οι Org Policies δείτε:
GCP - Basic InformationΟι πολιτικές IAM υποδεικνύουν τα δικαιώματα που έχουν οι κύριοι πάνω στους πόρους μέσω ρόλων, οι οποίοι έχουν ανατεθεί με λεπτομερή δικαιώματα. Οι πολιτικές οργάνωσης περιορίζουν το πώς μπορούν να χρησιμοποιηθούν αυτές οι υπηρεσίες ή ποιες δυνατότητες είναι απενεργοποιημένες. Αυτό βοηθά στη βελτίωση της ελάχιστης εξουσίας κάθε πόρου στο περιβάλλον GCP.
In the following page you can check how to καταχραστείτε τις άδειες πολιτικών οργανισμού για να κλιμακώσετε τα προνόμια:
GCP - Orgpolicy PrivescLearn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)