GCP - IAM, Principals & Org Policies Enum
Λογαριασμοί Υπηρεσιών
Για μια εισαγωγή σχετικά με το τι είναι ένας λογαριασμός υπηρεσίας, ελέγξτε:
GCP - Basic InformationΑπαρίθμηση
Ένας λογαριασμός υπηρεσίας ανήκει πάντα σε ένα έργο:
Χρήστες & Ομάδες
Για μια εισαγωγή σχετικά με το πώς λειτουργούν οι Χρήστες & Ομάδες στο GCP, ελέγξτε:
GCP - Basic InformationΑπαρίθμηση
Με τις άδειες serviceusage.services.enable
και serviceusage.services.use
είναι δυνατή η ενεργοποίηση υπηρεσιών σε ένα έργο και η χρήση τους.
Σημειώστε ότι από προεπιλογή, οι χρήστες του Workspace διαθέτουν τον ρόλο Project Creator, που τους παρέχει πρόσβαση για τη δημιουργία νέων έργων. Όταν ένας χρήστης δημιουργεί ένα έργο, του αποδίδεται ο ρόλος owner
πάνω σε αυτό. Έτσι, μπορεί να ενεργοποιήσει αυτές τις υπηρεσίες στο έργο για να είναι σε θέση να απαριθμήσει το Workspace.
Ωστόσο, σημειώστε ότι απαιτείται επίσης να έχετε επαρκείς δικαιώματα στο Workspace για να είστε σε θέση να καλέσετε αυτές τις διεπαφές προγραμματισμού εφαρμογών.
Αν μπορείτε να ενεργοποιήσετε την υπηρεσία admin
και αν ο χρήστης σας έχει επαρκή δικαιώματα στο workspace, μπορείτε να απαριθμήσετε όλες τις ομάδες & χρήστες με τις παρακάτω γραμμές.
Ακόμη κι αν αναφέρεται identity groups
, επιστρέφει επίσης χρήστες χωρίς καμία ομάδα:
Στα προηγούμενα παραδείγματα το παράμετρο --labels
είναι υποχρεωτική, οπότε χρησιμοποιείται μια γενική τιμή (δεν είναι απαραίτητη εάν χρησιμοποιείτε το API απευθείας όπως κάνει ο PurplePanda εδώ.
Ακόμα και με την υπηρεσία διαχειριστή ενεργοποιημένη, είναι δυνατόν να λάβετε ένα σφάλμα κατά την απαρίθμησή τους επειδή ο χρήστης του χώρου εργασίας που έχετε χειραγωγήσει δεν έχει αρκετές άδειες:
IAM
Ελέγξτε αυτό για βασικές πληροφορίες σχετικά με το IAM.
Προεπιλεγμένες Άδειες
Από τα έγγραφα: Όταν δημιουργείται ένας πόρος οργανισμού, όλοι οι χρήστες στον τομέα σας αποκτούν τους ρόλους Δημιουργός Λογαριασμού Χρέωσης και Δημιουργός Έργου από προεπιλογή. Αυτοί οι προεπιλεγμένοι ρόλοι επιτρέπουν στους χρήστες σας να αρχίσουν να χρησιμοποιούν αμέσως το Google Cloud, αλλά δεν προορίζονται για χρήση στην κανονική λειτουργία του πόρου του οργανισμού σας.
Αυτοί οι ρόλοι χορηγούν τις άδειες:
billing.accounts.create
καιresourcemanager.organizations.get
resourcemanager.organizations.get
καιresourcemanager.projects.create
Επιπλέον, όταν ένας χρήστης δημιουργεί ένα έργο, του απονέμεται αυτόματα ο ιδιοκτήτης του έργου σύμφωνα με τα έγγραφα. Συνεπώς, από προεπιλογή, ένας χρήστης θα μπορεί να δημιουργήσει ένα έργο και να εκτελέσει οποιαδήποτε υπηρεσία σε αυτό (miner? Απαρίθμηση Workspace? ...)
Η υψηλότερη προνομιούχα στον Οργανισμό GCP είναι ο ρόλος Διαχειριστής Οργανισμού.
set-iam-policy vs add-iam-policy-binding
Στις περισσότερες υπηρεσίες θα μπορείτε να αλλάξετε τις άδειες επάνω σε έναν πόρο χρησιμοποιώντας τη μέθοδο add-iam-policy-binding
ή set-iam-policy
. Η βασική διαφορά είναι ότι το add-iam-policy-binding
προσθέτει μια νέα δέσμευση ρόλου στην υπάρχουσα πολιτική IAM, ενώ το set-iam-policy
θα διαγράψει τις προηγουμένως χορηγηθείσες άδειες και θα ορίσει μόνο τις που υποδεικνύονται στην εντολή.
Απαρίθμηση IAM του cloudasset
Υπάρχουν διαφορετικοί τρόποι για να ελέγξετε όλα τα δικαιώματα ενός χρήστη σε διάφορους πόρους (όπως οργανισμούς, φακέλους, έργα...) χρησιμοποιώντας αυτήν την υπηρεσία.
Το δικαίωμα
cloudasset.assets.searchAllIamPolicies
μπορεί να ζητήσει όλες τις πολιτικές iam μέσα σε έναν πόρο.
Η άδεια
cloudasset.assets.analyzeIamPolicy
μπορεί να ζητήσει όλες τις πολιτικές iam ενός κύριου μέσα σε ένα πόρο.
Η άδεια
cloudasset.assets.searchAllResources
επιτρέπει τη λίσταριση όλων των πόρων μιας οργάνωσης, φακέλου ή έργου. Συμπεριλαμβάνονται και οι σχετικοί πόροι IAM (όπως ρόλοι).
Η άδεια
cloudasset.assets.analyzeMove
μπορεί να είναι χρήσιμη και για την ανάκτηση πολιτικών που επηρεάζουν έναν πόρο όπως ένα έργο.
Υποθέτω ότι η άδεια
cloudasset.assets.queryIamPolicy
θα μπορούσε επίσης να παρέχει πρόσβαση για την εύρεση των δικαιωμάτων των αρχών
Απαρίθμηση δικαιωμάτων testIamPermissions
Αν δεν μπορείτε να έχετε πρόσβαση στις πληροφορίες IAM χρησιμοποιώντας τις προηγούμενες μεθόδους και βρίσκεστε σε ομάδα Red Team, μπορείτε να χρησιμοποιήσετε το εργαλείο https://github.com/carlospolop/bf_my_gcp_perms για να εκτελέσετε brute-force στα τρέχοντα δικαιώματά σας.
Ωστόσο, σημειώστε ότι η υπηρεσία cloudresourcemanager.googleapis.com
πρέπει να είναι ενεργοποιημένη.
Ανύψωση δικαιωμάτων
Στην ακόλουθη σελίδα μπορείτε να ελέγξετε πώς να καταχραστείτε τα δικαιώματα IAM για την ανύψωση προνομίων:
GCP - IAM PrivescΑνεξιχνίαστη Απαρίθμηση
GCP - IAM, Principals & Org Unauthenticated EnumΜετά την Εκμετάλλευση
GCP - IAM Post ExploitationΔιατήρηση
Αν έχετε υψηλά προνόμια μπορείτε:
Να δημιουργήσετε νέα SAs (ή χρήστες αν βρίσκεστε στο Workspace)
Να δώσετε σε αρχές που ελέγχετε περισσότερα δικαιώματα
Να δώσετε περισσότερα προνόμια σε ευάλωτα SAs (SSRF σε vm, ευάλωτη Cloud Function...)
...
Πολιτικές Οργανισμού
Για μια εισαγωγή σχετικά με το τι είναι οι Πολιτικές Οργανισμού, ελέγξτε:
GCP - Basic InformationΟι πολιτικές IAM υποδεικνύουν τα δικαιώματα που έχουν οι αρχές σε πόρους μέσω ρόλων, οι οποίοι ανατίθενται διακριτικά δικαιώματα. Οι πολιτικές οργανισμού περιορίζουν τον τρόπο με τον οποίο μπορούν να χρησιμοποιηθούν αυτές οι υπηρεσίες ή ποια χαρακτηριστικά είναι απενεργοποιημένα. Αυτό βοηθά στη βελτίωση του λιγότερου δυνατού προνομίου κάθε πόρου στο περιβάλλον GCP.
Ανύψωση δικαιωμάτων
Στην παρακάτω σελίδα μπορείτε να ελέγξετε πώς να καταχραστείτε τα δικαιώματα των πολιτικών οργανισμού για ανύψωση προνομίων:
GCP - Orgpolicy PrivescLast updated