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)
Ovo je binarni fajl i servis koji Google nudi kako bi održao sinhronizovane lozinke korisnika između AD i Workspace-a. Svaki put kada korisnik promeni svoju lozinku u AD-u, ona se postavlja na Google.
Instalira se u C:\Program Files\Google\Password Sync
gde možete pronaći binarni fajl PasswordSync.exe
za konfiguraciju i password_sync_service.exe
(servis koji će nastaviti da radi).
Da biste konfigurisali ovaj binarni fajl (i servis), potrebno je dati mu pristup Super Admin principalu u Workspace-u:
Prijavite se putem OAuth sa Google-om i onda će sačuvati token u registru (kriptovan)
Dostupno samo na kontrolerima domena sa GUI
Dati neke akreditivе Servisnog naloga iz GCP (json fajl) sa dozvolama da upravljaju korisnicima Workspace-a
Veoma loša ideja jer ti akreditivi nikada ne isteknu i mogu se zloupotrebiti
Veoma loša ideja dati SA pristup preko workspace-a jer bi SA mogao biti kompromitovan u GCP-u i moguće je prebaciti se na Workspace
Google to zahteva za kontrolisane domene bez GUI
Ovi akreditivi se takođe čuvaju u registru
Što se tiče AD-a, moguće je naznačiti da koristi trenutni kontekst aplikacija, anonimno ili neke specifične akreditive. Ako je opcija akreditiva izabrana, korisničko ime se čuva unutar fajla na disku a lozinka je kriptovana i čuva se u registru.
Napomena da Winpeas može da detektuje GPS, dobije informacije o konfiguraciji i čak dekriptuje lozinku i token.
U fajlu C:\ProgramData\Google\Google Apps Password Sync\config.xml
moguće je pronaći deo konfiguracije kao što je baseDN
AD-a koji je konfigurisan i username
čiji se akreditivi koriste.
U registru HKLM\Software\Google\Google Apps Password Sync
moguće je pronaći kriptovani refresh token i kriptovanu lozinku za AD korisnika (ako ih ima). Štaviše, ako se umesto tokena koriste neki SA akreditivi, takođe je moguće pronaći te kriptovane u toj adresi registra. Vrednosti unutar ovog registra su dostupne samo Administratorima.
Kriptovana lozinka (ako je ima) se nalazi unutar ključa ADPassword
i kriptovana je koristeći CryptProtectData
API. Da biste je dekriptovali, morate biti isti korisnik kao onaj koji je konfigurisao sinhronizaciju lozinki i koristiti ovu entropiju prilikom korišćenja CryptUnprotectData
: byte[] entropyBytes = new byte[] { 0xda, 0xfc, 0xb2, 0x8d, 0xa0, 0xd5, 0xa8, 0x7c, 0x88, 0x8b, 0x29, 0x51, 0x34, 0xcb, 0xae, 0xe9 };
Kriptovani token (ako ga ima) se nalazi unutar ključa AuthToken
i kriptovan je koristeći CryptProtectData
API. Da biste ga dekriptovali, morate biti isti korisnik kao onaj koji je konfigurisao sinhronizaciju lozinki i koristiti ovu entropiju prilikom korišćenja CryptUnprotectData
: byte[] entropyBytes = new byte[] { 0x00, 0x14, 0x0b, 0x7e, 0x8b, 0x18, 0x8f, 0x7e, 0xc5, 0xf2, 0x2d, 0x6e, 0xdb, 0x95, 0xb8, 0x5b };
Štaviše, takođe je kodiran koristeći base32hex sa rečnikom 0123456789abcdefghijklmnopqrstv
.
Vrednosti entropije su pronađene korišćenjem alata. Konfigurisano je da prati pozive ka CryptUnprotectData
i CryptProtectData
i zatim je alat korišćen za pokretanje i praćenje PasswordSync.exe
koji će dekriptovati konfigurisanju lozinku i auth token na početku, a alat će prikazati vrednosti za korišćenu entropiju u oba slučaja:
Napomena da je takođe moguće videti dekriptovane vrednosti u ulazu ili izlazu poziva ovih API-ja takođe (u slučaju da u nekom trenutku Winpeas prestane da radi).
U slučaju da je Password Sync konfiguran sa SA akreditivima, takođe će biti sačuvani u ključevima unutar registra HKLM\Software\Google\Google Apps Password Sync
.
Baš kao i sa GCPW, moguće je dump-ovati memoriju procesa PasswordSync.exe
i password_sync_service.exe
i moći ćete da pronađete refresh i access tokene (ako su već generisani).
Pretpostavljam da biste takođe mogli pronaći konfiguracione akreditive AD-a.