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)
To jest binarny plik i usługa, które Google oferuje w celu utrzymania synchronizacji haseł użytkowników między AD a Workspace. Za każdym razem, gdy użytkownik zmienia swoje hasło w AD, jest ono ustawiane w Google.
Instaluje się w C:\Program Files\Google\Password Sync
, gdzie można znaleźć binarny plik PasswordSync.exe
do jego konfiguracji oraz password_sync_service.exe
(usługa, która będzie nadal działać).
Aby skonfigurować ten plik binarny (i usługę), należy dać mu dostęp do Super Admina w Workspace:
Zaloguj się za pomocą OAuth z Google, a następnie zapisze token w rejestrze (szyfrowany)
Dostępne tylko w kontrolerach domeny z GUI
Podając poświadczenia konta usługi z GCP (plik json) z uprawnieniami do zarządzania użytkownikami Workspace
Bardzo zły pomysł, ponieważ te poświadczenia nigdy nie wygasają i mogą być nadużywane
Bardzo zły pomysł, aby dać SA dostęp do workspace, ponieważ SA może zostać skompromitowane w GCP i możliwe będzie przejście do Workspace
Google wymaga tego dla kontrolowanych domen bez GUI
Te poświadczenia są również przechowywane w rejestrze
Jeśli chodzi o AD, możliwe jest wskazanie, aby używał aktualnego kontekstu aplikacji, anonimowego lub jakichś konkretnych poświadczeń. Jeśli wybrano opcję poświadczeń, nazwa użytkownika jest przechowywana w pliku na dysku, a hasło jest szyfrowane i przechowywane w rejestrze.
Zauważ, że Winpeas jest w stanie wykryć GPS, uzyskać informacje o konfiguracji i nawet odszyfrować hasło i token.
W pliku C:\ProgramData\Google\Google Apps Password Sync\config.xml
można znaleźć część konfiguracji, taką jak baseDN
skonfigurowanego AD oraz username
, których poświadczenia są używane.
W rejestrze HKLM\Software\Google\Google Apps Password Sync
można znaleźć szyfrowany token odświeżania oraz szyfrowane hasło dla użytkownika AD (jeśli istnieje). Ponadto, jeśli zamiast tokenu używane są jakieś poświadczenia SA, również można je znaleźć zaszyfrowane w tym adresie rejestru. Wartości w tym rejestrze są dostępne tylko dla Administratorów.
Szyfrowane hasło (jeśli istnieje) znajduje się w kluczu ADPassword
i jest szyfrowane za pomocą API CryptProtectData
. Aby je odszyfrować, musisz być tym samym użytkownikiem, który skonfigurował synchronizację haseł i użyć tej entropii podczas korzystania z CryptUnprotectData
: byte[] entropyBytes = new byte[] { 0xda, 0xfc, 0xb2, 0x8d, 0xa0, 0xd5, 0xa8, 0x7c, 0x88, 0x8b, 0x29, 0x51, 0x34, 0xcb, 0xae, 0xe9 };
Szyfrowany token (jeśli istnieje) znajduje się w kluczu AuthToken
i jest szyfrowany za pomocą API CryptProtectData
. Aby go odszyfrować, musisz być tym samym użytkownikiem, który skonfigurował synchronizację haseł i użyć tej entropii podczas korzystania z CryptUnprotectData
: byte[] entropyBytes = new byte[] { 0x00, 0x14, 0x0b, 0x7e, 0x8b, 0x18, 0x8f, 0x7e, 0xc5, 0xf2, 0x2d, 0x6e, 0xdb, 0x95, 0xb8, 0x5b };
Ponadto jest również kodowany za pomocą base32hex z użyciem słownika 0123456789abcdefghijklmnopqrstv
.
Wartości entropii zostały znalezione przy użyciu narzędzia. Zostało skonfigurowane do monitorowania wywołań do CryptUnprotectData
i CryptProtectData
, a następnie narzędzie zostało użyte do uruchomienia i monitorowania PasswordSync.exe
, które odszyfruje skonfigurowane hasło i token autoryzacji na początku, a narzędzie pokaże wartości entropii użytej w obu przypadkach:
Zauważ, że możliwe jest również zobaczenie odszyfrowanych wartości w wejściu lub wyjściu wywołań do tych API (w przypadku, gdy w pewnym momencie Winpeas przestanie działać).
W przypadku, gdy synchronizacja haseł została skonfigurowana z poświadczeniami SA, również będzie przechowywana w kluczach w rejestrze HKLM\Software\Google\Google Apps Password Sync
.
Podobnie jak w przypadku GCPW, możliwe jest zrzucenie pamięci procesu PasswordSync.exe
oraz procesów password_sync_service.exe
, a będziesz w stanie znaleźć tokeny odświeżania i dostępu (jeśli zostały już wygenerowane).
Myślę, że można również znaleźć skonfigurowane poświadczenia AD.