GCP Pentesting
Βασικές πληροφορίες
Πριν ξεκινήσετε το pentesting ενός περιβάλλοντος GCP, υπάρχουν μερικά βασικά πράγματα που πρέπει να γνωρίζετε για το πώς λειτουργεί για να σας βοηθήσει να κατανοήσετε τι χρειάζεστε να κάνετε, πώς να βρείτε μη σωστές ρυθμίσεις και πώς να τις εκμεταλλευτείτε.
Έννοιες όπως η ιεραρχία του οργανισμού, οι άδειες και άλλες βασικές έννοιες εξηγούνται στο:
GCP - Basic InformationΕργαστήρια για μάθηση
Μεθοδολογία GCP Pentester/Red Team
Για να ελέγξετε ένα περιβάλλον GCP είναι πολύ σημαντικό να γνωρίζετε: ποιες υπηρεσίες χρησιμοποιούνται, τι εκτίθεται, ποιος έχει πρόσβαση σε τι και πώς συνδέονται οι εσωτερικές υπηρεσίες GCP με τις εξωτερικές υπηρεσίες.
Από την άποψη της Ομάδας Red Team, το πρώτο βήμα για να διακυβεύσετε ένα περιβάλλον GCP είναι να καταφέρετε να αποκτήσετε κάποια διαπιστευτήρια. Εδώ έχετε μερικές ιδέες για το πώς να το κάνετε:
Διαρροές στο github (ή παρόμοιες) - OSINT
Κοινωνική Μηχανική (Ελέγξτε τη σελίδα Ασφάλεια Workspace)
Επαναχρησιποίηση κωδικών πρόσβασης (διαρροές κωδικών πρόσβασης)
Ευπάθειες σε εφαρμογές που φιλοξενούνται στο GCP
Server Side Request Forgery με πρόσβαση στο τέλος των μεταδεδομένων
Ανάγνωση τοπικού αρχείου
/home/USERNAME/.config/gcloud/*
C:\Users\USERNAME\.config\gcloud\*
Παραβιάσεις τρίτων
Εσωτερικός Υπάλληλος
Ή με το διάβρωση ενός μη εξουσιοδοτημένου υπηρεσίας που εκτίθεται:
GCP - Unauthenticated Enum & AccessΉ εάν κάνετε μια αναθεώρηση μπορείτε απλά να ζητήσετε διαπιστευτήρια με αυτούς τους ρόλους:
GCP - Permissions for a PentestΑφού καταφέρετε να αποκτήσετε διαπιστευτήρια, πρέπει να γνωρίζετε σε ποιον ανήκουν αυτά τα διαπιστευτήρια και τι έχουν πρόσβαση, οπότε πρέπει να πραγματοποιήσετε μερικές βασικές απαρίθμηση:
Βασική Απαρίθμηση
SSRF
Για περισσότερες πληροφορίες σχετικά με το πώς να απαριθμήσετε τα μεταδεδομένα GCP ελέγξτε την ακόλουθη σελίδα hacktricks:
Whoami
Στο GCP μπορείτε να δοκιμάσετε διάφορες επιλογές για να προσπαθήσετε να μαντέψετε ποιος είστε:
Απαρίθμηση Οργανισμού
Απαρίθμηση Αρχών και IAM
Εάν έχετε αρκετές άδειες, ελέγξτε τα προνόμια κάθε οντότητας μέσα στον λογαριασμό GCP για να κατανοήσετε τι μπορείτε να κάνετε εσείς και άλλες ταυτότητες και πώς να αναβαθμίσετε τα προνόμια.
Εάν δεν έχετε αρκετές άδειες για να απαριθμήσετε το IAM, μπορείτε να τα κλέψετε με βίαιο τρόπο για να τα ανακαλύψετε. Ελέγξτε πώς να κάνετε την απαρίθμηση και το brute-forcing στο:
GCP - IAM, Principals & Org Policies EnumΤώρα που έχετε κάποιες πληροφορίες για τα διαπιστευτήριά σας (και αν είστε μια κόκκινη ομάδα ελπίζω να μην έχετε ανιχνευθεί). Ήρθε η ώρα να καταλάβετε ποιες υπηρεσίες χρησιμοποιούνται στο περιβάλλον. Στην επόμενη ενότητα μπορείτε να ελέγξετε μερικούς τρόπους για απαρίθμηση ορισμένων κοινών υπηρεσιών.
Απαρίθμηση Υπηρεσιών
Το GCP έχει μια εκπληκτική ποσότητα υπηρεσιών, στην ακόλουθη σελίδα θα βρείτε βασικές πληροφορίες, cheatsheets απαρίθμησης, πώς να αποφύγετε την ανίχνευση, να αποκτήσετε επιμονή και άλλα μετά την εκμετάλλευση κόλπα για μερικές από αυτές:
GCP - ServicesΣημειώστε ότι δεν χρειάζεται να εκτελέσετε όλη τη δουλειά χειροκίνητα, παρακάτω σε αυτήν την ανάρτηση μπορείτε να βρείτε μια ενότητα για αυτόματα εργαλεία.
Επιπλέον, σε αυτό το στάδιο μπορεί να έχετε ανακαλύψει περισσότερες υπηρεσίες που εκτίθενται σε μη εξουσιοδοτημένους χρήστες, μπορείτε να τις εκμεταλλευτείτε:
GCP - Unauthenticated Enum & AccessΑνέλιξη Προνομίων, Μετά την Εκμετάλλευση και Επιμονή
Ο πιο συνηθισμένος τρόπος αφού έχετε αποκτήσει κάποια διαπιστευτήρια cloud ή έχετε παραβιάσει κάποια υπηρεσία που εκτελείται μέσα σε ένα cloud είναι να καταχραστείτε λανθασμένα προνόμια που μπορεί να έχει ο παραβιασμένος λογαριασμός. Έτσι, το πρώτο πράγμα που πρέπει να κάνετε είναι να απαριθμήσετε τα προνόμιά σας.
Επιπλέον, κατά τη διάρκεια αυτής της απαρίθμησης, θυμηθείτε ότι οι άδειες μπορούν να οριστούν στο υψηλότερο επίπεδο του "Οργανισμού" επίσης.
GCP - Privilege EscalationGCP - Post ExploitationGCP - PersistenceΔημόσια Εκτεθειμένες Υπηρεσίες
Κατά την απαρίθμηση των υπηρεσιών GCP, μπορεί να έχετε βρει ορισμένες από αυτές να εκθέτουν στο Διαδίκτυο στοιχεία (θύρες VM/Containers, βάσεις δεδομένων ή υπηρεσίες ουράς, αντίγραφα ασφαλείας ή κάδους...). Ως pentester/red teamer πρέπει πάντα να ελέγχετε εάν μπορείτε να βρείτε ευαίσθητες πληροφορίες / ευπάθειες σε αυτές, καθώς μπορεί να σας παρέχουν περαιτέρω πρόσβαση στον λογαριασμό GCP.
Σε αυτό το βιβλίο θα βρείτε πληροφορίες για το πώς να βρείτε εκτεθειμένες υπηρεσίες GCP και πώς να τις ελέγξετε. Σχετικά με το πώς να βρείτε ευπάθειες σε εκτεθειμένες δικτυακές υπηρεσίες, θα σας συνιστούσα να αναζητήσετε τη συγκεκριμένη υπηρεσία στο:
Αλληλεπίδραση GCP <--> Workspace
Η παραβίαση αρχών σε ένα πλαίσιο μπορεί να επιτρέψει σε έναν επιτιθέμενο να παραβιάσει το άλλο, ελέγξτε το στο:
GCP <--> Workspace PivotingΑυτόματα Εργαλεία
Στην κονσόλα GCloud, στη διεύθυνση https://console.cloud.google.com/iam-admin/asset-inventory/dashboard μπορείτε να δείτε τους πόρους και τα IAM που χρησιμοποιούνται από το έργο.
Εδώ μπορείτε να δείτε τους πόρους που υποστηρίζονται από αυτήν την API: https://cloud.google.com/asset-inventory/docs/supported-asset-types
Ελέγξτε εργαλεία που μπορούν να χρησιμοποιηθούν σε διάφορα cloud εδώ.
gcp_scanner: Αυτό είναι ένα εργαλείο σάρωσης
gcp_enum: Σενάριο Bash για να απαριθμήσει ένα περιβάλλον GCP χρησιμοποιώντας το gcloud cli και να αποθηκεύσει τα αποτελέσματα σε ένα αρχείο.
GCP-IAM-Privilege-Escalation: Σενάρια για να απαριθμήσει υψηλά προνόμια IAM και να αναβαθμίσει προνόμια στο GCP καταχρώντας τα (δεν μπόρεσα να εκτελέσω το σενάριο απαρίθμησης).
gcloud config & debug
Καταγραφή δικτύου gcloud, gsutil...
Θυμηθείτε ότι μπορείτε να χρησιμοποιήσετε τη παράμετρο --log-http
με το gcloud
cli για να εκτυπώσετε τα αιτήματα που εκτελεί το εργαλείο. Εάν δεν θέλετε οι καταγραφές να αποκρύπτουν την τιμή του τοκέν, χρησιμοποιήστε gcloud config set log_http_redact_token false
Επιπλέον, για να παρεμβάλετε την επικοινωνία:
Ρύθμιση του OAuth token στο gcloud
Για να χρησιμοποιήσετε έναν κλεμμένο λογαριασμό υπηρεσίας OAuth token από το metadata endpoint, απλά μπορείτε να κάνετε τα εξής:
Αναφορές
Last updated