GPS - Google Password Sync
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)
Αυτή είναι η δυαδική και υπηρεσία που προσφέρει η Google προκειμένου να διατηρεί συγχρονισμένους τους κωδικούς πρόσβασης των χρηστών μεταξύ του AD και του Workspace. Κάθε φορά που ένας χρήστης αλλάζει τον κωδικό του στο AD, αυτός αποστέλλεται στην Google.
Εγκαθίσταται στο C:\Program Files\Google\Password Sync
όπου μπορείτε να βρείτε τη δυαδική PasswordSync.exe
για να την ρυθμίσετε και password_sync_service.exe
(η υπηρεσία που θα συνεχίσει να τρέχει).
Για να ρυθμίσετε αυτή τη δυαδική (και υπηρεσία), είναι απαραίτητο να της δώσετε πρόσβαση σε έναν Super Admin principal στο Workspace:
Συνδεθείτε μέσω OAuth με την Google και στη συνέχεια θα αποθηκεύσει ένα token στο μητρώο (κρυπτογραφημένο)
Διαθέσιμο μόνο σε Domain Controllers με GUI
Δίνοντας κάποια credentials Service Account από το GCP (json αρχείο) με δικαιώματα να διαχειρίζεται τους χρήστες του Workspace
Πολύ κακή ιδέα καθώς αυτά τα credentials δεν λήγουν ποτέ και θα μπορούσαν να χρησιμοποιηθούν κακόβουλα
Πολύ κακή ιδέα να δώσετε πρόσβαση σε SA πάνω από το workspace καθώς ο SA θα μπορούσε να παραβιαστεί στο GCP και θα είναι δυνατό να γίνει pivot στο Workspace
Η Google το απαιτεί για domain controlled χωρίς GUI
Αυτά τα creds αποθηκεύονται επίσης στο μητρώο
Όσον αφορά το AD, είναι δυνατό να υποδείξετε να χρησιμοποιήσει το τρέχον context εφαρμογών, ανώνυμο ή κάποια συγκεκριμένα credentials. Εάν επιλεγεί η επιλογή credentials, το username αποθηκεύεται μέσα σε ένα αρχείο στο δίσκο και ο κωδικός πρόσβασης είναι κρυπτογραφημένος και αποθηκεύεται στο μητρώο.
Note that Winpeas is capable to detect GPS, get information about the configuration and even decrypt the password and token.
Στο αρχείο C:\ProgramData\Google\Google Apps Password Sync\config.xml
είναι δυνατό να βρείτε μέρος της ρύθμισης όπως το baseDN
του AD που έχει ρυθμιστεί και το username
των credentials που χρησιμοποιούνται.
Στο μητρώο HKLM\Software\Google\Google Apps Password Sync
είναι δυνατό να βρείτε το κρυπτογραφημένο refresh token και τον κρυπτογραφημένο κωδικό πρόσβασης για τον χρήστη AD (αν υπάρχει). Επιπλέον, εάν αντί για ένα token, χρησιμοποιηθούν κάποια credentials SA, είναι επίσης δυνατό να βρείτε αυτά κρυπτογραφημένα σε αυτή τη διεύθυνση μητρώου. Οι τιμές μέσα σε αυτό το μητρώο είναι μόνο προσβάσιμες από Administrators.
Ο κρυπτογραφημένος κωδικός πρόσβασης (αν υπάρχει) είναι μέσα στο κλειδί ADPassword
και είναι κρυπτογραφημένος χρησιμοποιώντας το CryptProtectData
API. Για να τον αποκρυπτογραφήσετε, πρέπει να είστε ο ίδιος χρήστης με αυτόν που ρύθμισε τον συγχρονισμό κωδικών πρόσβασης και να χρησιμοποιήσετε αυτή την entropy όταν χρησιμοποιείτε το CryptUnprotectData
: byte[] entropyBytes = new byte[] { 0xda, 0xfc, 0xb2, 0x8d, 0xa0, 0xd5, 0xa8, 0x7c, 0x88, 0x8b, 0x29, 0x51, 0x34, 0xcb, 0xae, 0xe9 };
Το κρυπτογραφημένο token (αν υπάρχει) είναι μέσα στο κλειδί AuthToken
και είναι κρυπτογραφημένο χρησιμοποιώντας το CryptProtectData
API. Για να το αποκρυπτογραφήσετε, πρέπει να είστε ο ίδιος χρήστης με αυτόν που ρύθμισε τον συγχρονισμό κωδικών πρόσβασης και να χρησιμοποιήσετε αυτή την entropy όταν χρησιμοποιείτε το CryptUnprotectData
: byte[] entropyBytes = new byte[] { 0x00, 0x14, 0x0b, 0x7e, 0x8b, 0x18, 0x8f, 0x7e, 0xc5, 0xf2, 0x2d, 0x6e, 0xdb, 0x95, 0xb8, 0x5b };
Επιπλέον, είναι επίσης κωδικοποιημένο χρησιμοποιώντας base32hex με το λεξιλόγιο 0123456789abcdefghijklmnopqrstv
.
Οι τιμές entropy βρέθηκαν χρησιμοποιώντας το εργαλείο. Ρυθμίστηκε για να παρακολουθεί τις κλήσεις προς το CryptUnprotectData
και CryptProtectData
και στη συνέχεια το εργαλείο χρησιμοποιήθηκε για να εκκινήσει και να παρακολουθήσει το PasswordSync.exe
το οποίο θα αποκρυπτογραφήσει τον ρυθμισμένο κωδικό πρόσβασης και το auth token στην αρχή και το εργαλείο θα δείξει τις τιμές για την entropy που χρησιμοποιήθηκε και στις δύο περιπτώσεις:
Σημειώστε ότι είναι επίσης δυνατό να δείτε τις αποκρυπτογραφημένες τιμές στην είσοδο ή έξοδο των κλήσεων σε αυτές τις APIs επίσης (σε περίπτωση που κάποια στιγμή το Winpeas σταματήσει να λειτουργεί).
Σε περίπτωση που ο συγχρονισμός κωδικών πρόσβασης έχει ρυθμιστεί με SA credentials, θα αποθηκευτεί επίσης σε κλειδιά μέσα στο μητρώο HKLM\Software\Google\Google Apps Password Sync
.
Ακριβώς όπως με το GCPW, είναι δυνατό να κάνετε dump τη μνήμη της διαδικασίας του PasswordSync.exe
και των διαδικασιών password_sync_service.exe
και θα είστε σε θέση να βρείτε refresh και access tokens (αν έχουν ήδη παραχθεί).
Υποθέτω ότι θα μπορούσατε επίσης να βρείτε τα ρυθμισμένα credentials του AD.