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)
Questo è il binario e il servizio che Google offre per mantenere sincronizzate le password degli utenti tra l'AD e Workspace. Ogni volta che un utente cambia la propria password nell'AD, viene impostata su Google.
Viene installato in C:\Program Files\Google\Password Sync
dove puoi trovare il binario PasswordSync.exe
per configurarlo e password_sync_service.exe
(il servizio che continuerà a funzionare).
Per configurare questo binario (e servizio), è necessario dargli accesso a un principale Super Admin in Workspace:
Accedi tramite OAuth con Google e poi salverà un token nel registro (crittografato)
Disponibile solo nei Domain Controller con GUI
Dare alcune credenziali di Service Account da GCP (file json) con permessi per gestire gli utenti di Workspace
Idea molto cattiva poiché queste credenziali non scadono mai e potrebbero essere abusate
Idea molto cattiva dare accesso a un SA su workspace poiché il SA potrebbe essere compromesso in GCP e sarà possibile pivotare su Workspace
Google lo richiede per i domini controllati senza GUI
Queste credenziali sono anche memorizzate nel registro
Per quanto riguarda l'AD, è possibile indicare di utilizzare il contesto delle applicazioni attuali, anonimo o alcune credenziali specifiche. Se viene selezionata l'opzione delle credenziali, il nome utente è memorizzato all'interno di un file nel disco e la password è crittografata e memorizzata nel registro.
Nota che Winpeas è in grado di rilevare GPS, ottenere informazioni sulla configurazione e persino decrittografare la password e il token.
Nel file C:\ProgramData\Google\Google Apps Password Sync\config.xml
è possibile trovare parte della configurazione come il baseDN
dell'AD configurato e il username
le cui credenziali vengono utilizzate.
Nel registro HKLM\Software\Google\Google Apps Password Sync
è possibile trovare il refresh token crittografato e la password crittografata per l'utente AD (se presente). Inoltre, se invece di un token, vengono utilizzate alcune credenziali SA, è anche possibile trovarle crittografate in quell'indirizzo di registro. I valori all'interno di questo registro sono accessibili solo dagli Amministratori.
La password crittografata (se presente) si trova all'interno della chiave ADPassword
ed è crittografata utilizzando l'API CryptProtectData
. Per decrittografarla, è necessario essere lo stesso utente di quello che ha configurato la sincronizzazione della password e utilizzare questa entropia quando si utilizza CryptUnprotectData
: byte[] entropyBytes = new byte[] { 0xda, 0xfc, 0xb2, 0x8d, 0xa0, 0xd5, 0xa8, 0x7c, 0x88, 0x8b, 0x29, 0x51, 0x34, 0xcb, 0xae, 0xe9 };
Il token crittografato (se presente) si trova all'interno della chiave AuthToken
ed è crittografato utilizzando l'API CryptProtectData
. Per decrittografarlo, è necessario essere lo stesso utente di quello che ha configurato la sincronizzazione della password e utilizzare questa entropia quando si utilizza CryptUnprotectData
: byte[] entropyBytes = new byte[] { 0x00, 0x14, 0x0b, 0x7e, 0x8b, 0x18, 0x8f, 0x7e, 0xc5, 0xf2, 0x2d, 0x6e, 0xdb, 0x95, 0xb8, 0x5b };
Inoltre, è anche codificato utilizzando base32hex con il dizionario 0123456789abcdefghijklmnopqrstv
.
I valori di entropia sono stati trovati utilizzando lo strumento. È stato configurato per monitorare le chiamate a CryptUnprotectData
e CryptProtectData
e poi lo strumento è stato utilizzato per avviare e monitorare PasswordSync.exe
che decrittograferà la password e il token di autenticazione configurati all'inizio e lo strumento mostrerà i valori per l'entropia utilizzata in entrambi i casi:
Nota che è anche possibile vedere i valori decrittografati nell'input o nell'output delle chiamate a queste API anche (nel caso in cui a un certo punto Winpeas smetta di funzionare).
Nel caso in cui la sincronizzazione della password fosse configurata con credenziali SA, sarà anche memorizzata in chiavi all'interno del registro HKLM\Software\Google\Google Apps Password Sync
.
Proprio come con GCPW, è possibile dumpare la memoria del processo di PasswordSync.exe
e dei processi password_sync_service.exe
e sarà possibile trovare refresh e access token (se sono già stati generati).
Immagino che tu possa anche trovare le credenziali AD configurate.