GCP - IAM, Principals & Org Policies Enum
Last updated
Last updated
Για μια εισαγωγή σχετικά με το τι είναι ένας λογαριασμός υπηρεσίας, ελέγξτε:
Ένας λογαριασμός υπηρεσίας ανήκει πάντα σε ένα έργο:
Για μια εισαγωγή σχετικά με το πώς λειτουργούν οι Χρήστες & Ομάδες στο GCP, ελέγξτε:
Με τις άδειες serviceusage.services.enable
και serviceusage.services.use
είναι δυνατή η ενεργοποίηση υπηρεσιών σε ένα έργο και η χρήση τους.
Σημειώστε ότι από προεπιλογή, οι χρήστες του Workspace διαθέτουν τον ρόλο Project Creator, που τους παρέχει πρόσβαση για τη δημιουργία νέων έργων. Όταν ένας χρήστης δημιουργεί ένα έργο, του αποδίδεται ο ρόλος owner
πάνω σε αυτό. Έτσι, μπορεί να ενεργοποιήσει αυτές τις υπηρεσίες στο έργο για να είναι σε θέση να απαριθμήσει το Workspace.
Ωστόσο, σημειώστε ότι απαιτείται επίσης να έχετε επαρκείς δικαιώματα στο Workspace για να είστε σε θέση να καλέσετε αυτές τις διεπαφές προγραμματισμού εφαρμογών.
Αν μπορείτε να ενεργοποιήσετε την υπηρεσία admin
και αν ο χρήστης σας έχει επαρκή δικαιώματα στο workspace, μπορείτε να απαριθμήσετε όλες τις ομάδες & χρήστες με τις παρακάτω γραμμές.
Ακόμη κι αν αναφέρεται identity groups
, επιστρέφει επίσης χρήστες χωρίς καμία ομάδα:
Στα προηγούμενα παραδείγματα το παράμετρο --labels
είναι υποχρεωτική, οπότε χρησιμοποιείται μια γενική τιμή (δεν είναι απαραίτητη εάν χρησιμοποιείτε το API απευθείας όπως κάνει ο PurplePanda εδώ.
Ακόμα και με την υπηρεσία διαχειριστή ενεργοποιημένη, είναι δυνατόν να λάβετε ένα σφάλμα κατά την απαρίθμησή τους επειδή ο χρήστης του χώρου εργασίας που έχετε χειραγωγήσει δεν έχει αρκετές άδειες:
Ελέγξτε αυτό για βασικές πληροφορίες σχετικά με το IAM.
Από τα έγγραφα: Όταν δημιουργείται ένας πόρος οργανισμού, όλοι οι χρήστες στον τομέα σας αποκτούν τους ρόλους Δημιουργός Λογαριασμού Χρέωσης και Δημιουργός Έργου από προεπιλογή. Αυτοί οι προεπιλεγμένοι ρόλοι επιτρέπουν στους χρήστες σας να αρχίσουν να χρησιμοποιούν αμέσως το Google Cloud, αλλά δεν προορίζονται για χρήση στην κανονική λειτουργία του πόρου του οργανισμού σας.
Αυτοί οι ρόλοι χορηγούν τις άδειες:
billing.accounts.create
και resourcemanager.organizations.get
resourcemanager.organizations.get
και resourcemanager.projects.create
Επιπλέον, όταν ένας χρήστης δημιουργεί ένα έργο, του απονέμεται αυτόματα ο ιδιοκτήτης του έργου σύμφωνα με τα έγγραφα. Συνεπώς, από προεπιλογή, ένας χρήστης θα μπορεί να δημιουργήσει ένα έργο και να εκτελέσει οποιαδήποτε υπηρεσία σε αυτό (miner? Απαρίθμηση 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 για την ανύψωση προνομίων:
Αν έχετε υψηλά προνόμια μπορείτε:
Να δημιουργήσετε νέα SAs (ή χρήστες αν βρίσκεστε στο Workspace)
Να δώσετε σε αρχές που ελέγχετε περισσότερα δικαιώματα
Να δώσετε περισσότερα προνόμια σε ευάλωτα SAs (SSRF σε vm, ευάλωτη Cloud Function...)
...
Για μια εισαγωγή σχετικά με το τι είναι οι Πολιτικές Οργανισμού, ελέγξτε:
Οι πολιτικές IAM υποδεικνύουν τα δικαιώματα που έχουν οι αρχές σε πόρους μέσω ρόλων, οι οποίοι ανατίθενται διακριτικά δικαιώματα. Οι πολιτικές οργανισμού περιορίζουν τον τρόπο με τον οποίο μπορούν να χρησιμοποιηθούν αυτές οι υπηρεσίες ή ποια χαρακτηριστικά είναι απενεργοποιημένα. Αυτό βοηθά στη βελτίωση του λιγότερου δυνατού προνομίου κάθε πόρου στο περιβάλλον GCP.
Στην παρακάτω σελίδα μπορείτε να ελέγξετε πώς να καταχραστείτε τα δικαιώματα των πολιτικών οργανισμού για ανύψωση προνομίων: