GCDS - Google Cloud Directory 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)
C'est un outil qui peut être utilisé pour synchroniser vos utilisateurs et groupes Active Directory avec votre Workspace (et non l'inverse au moment de la rédaction).
C'est intéressant car c'est un outil qui nécessitera les identifiants d'un super utilisateur Workspace et d'un utilisateur AD privilégié. Il pourrait donc être possible de le trouver à l'intérieur d'un serveur de domaine qui synchroniserait des utilisateurs de temps en temps.
Pour effectuer un MitM sur le binaire config-manager.exe
, il suffit d'ajouter la ligne suivante dans le fichier config.manager.vmoptions
: -Dcom.sun.net.ssl.checkRevocation=false
Notez que Winpeas est capable de détecter GCDS, d'obtenir des informations sur la configuration et même les mots de passe et les identifiants chiffrés.
Notez également que GCDS ne synchronisera pas les mots de passe d'AD vers Workspace. Si quelque chose, il générera simplement des mots de passe aléatoires pour les nouveaux utilisateurs créés dans Workspace comme vous pouvez le voir dans l'image suivante :
Le binaire config-manager.exe
(le binaire principal de GCDS avec interface graphique) stockera par défaut les identifiants Active Directory configurés, le jeton de rafraîchissement et l'accès dans un fichier xml dans le dossier C:\Program Files\Google Cloud Directory Sync
dans un fichier appelé Untitled-1.xml
par défaut. Bien qu'il puisse également être enregistré dans les Documents
de l'utilisateur ou dans n'importe quel autre dossier.
De plus, le registre HKCU\SOFTWARE\JavaSoft\Prefs\com\google\usersyncapp\ui
à l'intérieur de la clé open.recent
contient les chemins vers tous les fichiers de configuration récemment ouverts (xmls). Il est donc possible de vérifier cela pour les trouver.
Les informations les plus intéressantes à l'intérieur du fichier seraient :
Notez comment le refresh token et le password de l'utilisateur sont encryptés en utilisant AES CBC avec une clé et un IV générés aléatoirement stockés dans HKEY_CURRENT_USER\SOFTWARE\JavaSoft\Prefs\com\google\usersyncapp\util
(où la bibliothèque Java prefs
stocke les préférences) dans les clés de chaîne /Encryption/Policy/V2.iv
et /Encryption/Policy/V2.key
stockées en base64.
En utilisant le jeton d'actualisation, il est possible de générer des jetons d'accès en utilisant celui-ci ainsi que l'ID client et le secret client spécifiés dans la commande suivante :
Notez qu'il n'est pas possible de demander un scope pour le token d'accès même en ayant un refresh token, car vous ne pouvez demander que les scopes pris en charge par l'application où vous générez le token d'accès.
De plus, le refresh token n'est pas valide dans toutes les applications.
Par défaut, GCSD n'aura pas accès en tant qu'utilisateur à tous les scopes OAuth possibles, donc en utilisant le script suivant, nous pouvons trouver les scopes qui peuvent être utilisés avec le refresh_token
pour générer un access_token
:
Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE) Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)