GCP - Non-svc Persistance
Αυτές είναι χρήσιμες τεχνικές όταν, με κάποιον τρόπο, έχετε αφαιρέσει ορισμένα διαπιστευτήρια GCP ή μηχάνημα που εκτελείται σε ένα περιβάλλον GCP.
Απαγωγή Διακριτικού
Διακριτικά Χρήστη που Έχουν Ελεγχθεί
Για να λάβετε το τρέχον διακριτικό ενός χρήστη μπορείτε να εκτελέσετε:
Ελέγξτε σε αυτήν τη σελίδα πως να χρησιμοποιήσετε απευθείας αυτό το τοκεν χρησιμοποιώντας το gcloud:
Για να λάβετε τις λεπτομέρειες για τη δημιουργία ενός νέου τοκεν πρόσβασης εκτελέστε:
Είναι επίσης δυνατόν να βρείτε refresh tokens στο $HOME/.config/gcloud/application_default_credentials.json
και στο $HOME/.config/gcloud/legacy_credentials/*/adc.json
.
Για να λάβετε ένα νέο ανανεωμένο access token με το refresh token, τον αριθμό ταυτοποίησης πελάτη (client ID) και το μυστικό του πελάτη (client secret), εκτελέστε:
Η ισχύτητα των refresh tokens μπορεί να διαχειριστεί στο Admin > Security > Google Cloud session control, και από προεπιλογή είναι ρυθμισμένη σε 16 ώρες, αν και μπορεί να οριστεί να μην λήξει ποτέ:
Ροή Εξουσιοδότησης
Η ροή εξουσιοδότησης όταν χρησιμοποιείτε κάτι σαν το gcloud auth login
θα ανοίξει ένα παράθυρο στον περιηγητή και μετά την αποδοχή όλων των scopes, ο περιηγητής θα στείλει ένα αίτημα όπως το παρακάτω στη θύρα http που είναι ανοικτή από το εργαλείο:
Στη συνέχεια, το gcloud θα χρησιμοποιήσει την κατάσταση και τον κώδικα με ένα σκληροκωδικοποιημένο client_id
(32555940559.apps.googleusercontent.com
) και client_secret
(ZmssLNjJy2998hD4CTg2ejr2
) για να λάβει τα δεδομένα τελικού ανανεωμένου τεκμηρίου.
Σημειώστε ότι η επικοινωνία με το localhost γίνεται μέσω HTTP, οπότε είναι δυνατόν να παρακολουθηθούν τα δεδομένα για να ληφθεί ένα ανανεωμένο τεκμήριο, ωστόσο αυτά τα δεδομένα είναι έγκυρα μόνο μία φορά, οπότε αυτό θα ήταν άχρηστο, είναι πιο εύκολο απλά να διαβάσετε το τεκμήριο ανανέωσης από το αρχείο.
Εμβέλειες OAuth
Μπορείτε να βρείτε όλες τις εμβέλειες της Google στο https://developers.google.com/identity/protocols/oauth2/scopes ή να τις λάβετε εκτελώντας:
Είναι δυνατόν να δούμε ποιες είναι οι εμβέλειες που μπορεί να υποστηρίξει η εφαρμογή που χρησιμοποιεί το gcloud
για πιστοποίηση με αυτό το σενάριο:
Μετά την εκτέλεσή του ελέγχθηκε ότι αυτή η εφαρμογή υποστηρίζει αυτές τις εμβέλειες:
Λογαριασμοί Υπηρεσιών
Όπως και με τους εξουσιοδοτημένους χρήστες, αν καταφέρετε να διαρρήξετε το αρχείο ιδιωτικού κλειδιού ενός λογαριασμού υπηρεσίας, θα μπορείτε να έχετε πρόσβαση σε αυτό συνήθως όσο θέλετε. Ωστόσο, αν κλέψετε το token OAuth ενός λογαριασμού υπηρεσίας, αυτό μπορεί να είναι ακόμη πιο ενδιαφέρον, επειδή, ακόμη κι αν από προεπιλογή αυτά τα tokens είναι χρήσιμα μόνο για μία ώρα, αν ο θύμα διαγράψει το ιδιωτικό κλειδί api, το token OAuth θα παραμείνει έγκυρο μέχρι να λήξει.
Μεταδεδομένα
Φυσικά, όσο βρίσκεστε μέσα σε μια μηχανή που τρέχει στο περιβάλλον GCP θα μπορείτε να έχετε πρόσβαση στον λογαριασμό υπηρεσίας που είναι συνδεδεμένος με αυτή τη μηχανή επικοινωνώντας με το τέλος μεταδεδομένων (σημειώστε ότι τα tokens OAuth που μπορείτε να έχετε πρόσβαση σε αυτό το τέλος είναι συνήθως περιορισμένα από scopes).
Διορθώσεις
Ορισμένες διορθώσεις για αυτές τις τεχνικές εξηγούνται στο https://www.netskope.com/blog/gcp-oauth-token-hijacking-in-google-cloud-part-2
Αναφορές
Last updated