# GWS - Synchronisation du répertoire Admin

{{#include ../../../banners/hacktricks-training.md}}

## Informations de base

La principale différence entre cette méthode de synchronisation des utilisateurs avec GCDS est que GCDS se fait manuellement avec des binaires que vous devez télécharger et exécuter tandis que **la synchronisation du répertoire Admin est sans serveur** gérée par Google à [https://admin.google.com/ac/sync/externaldirectories](https://admin.google.com/ac/sync/externaldirectories).

Au moment de la rédaction, ce service est en version bêta et il prend en charge 2 types de synchronisation : depuis **Active Directory** et depuis **Azure Entra ID :**

- **Active Directory :** Pour configurer cela, vous devez donner **accès à Google à votre environnement Active Directory**. Et comme Google n'a accès qu'aux réseaux GCP (via **VPC connectors**), vous devez créer un connecteur et ensuite rendre votre AD disponible depuis ce connecteur en l'ayant dans des VM sur le réseau GCP ou en utilisant Cloud VPN ou Cloud Interconnect. Ensuite, vous devez également fournir **des identifiants** d'un compte avec un accès en lecture sur le répertoire et un **certificat** pour contacter via **LDAPS**.
- **Azure Entra ID :** Pour configurer cela, il suffit de **se connecter à Azure avec un utilisateur ayant un accès en lecture** sur l'abonnement Entra ID dans une fenêtre contextuelle affichée par Google, et Google conservera le jeton avec un accès en lecture sur Entra ID.

Une fois correctement configurées, les deux options permettront de **synchroniser les utilisateurs et les groupes vers Workspace**, mais elles ne permettront pas de configurer les utilisateurs et les groupes de Workspace vers AD ou EntraID.

D'autres options qu'elles permettront lors de cette synchronisation sont :

- Envoyer un e-mail aux nouveaux utilisateurs pour se connecter
- Changer automatiquement leur adresse e-mail pour celle utilisée par Workspace. Donc, si Workspace utilise `@hacktricks.xyz` et que les utilisateurs EntraID utilisent `@carloshacktricks.onmicrosoft.com`, `@hacktricks.xyz` sera utilisé pour les utilisateurs créés dans le compte.
- Sélectionner les **groupes contenant les utilisateurs** qui seront synchronisés.
- Sélectionner les **groupes** à synchroniser et créer dans Workspace (ou indiquer de synchroniser tous les groupes).

### D'AD/EntraID -> Google Workspace (& GCP)

Si vous parvenez à compromettre un AD ou EntraID, vous aurez un contrôle total sur les utilisateurs et les groupes qui vont être synchronisés avec Google Workspace.\
Cependant, notez que les **mots de passe** que les utilisateurs pourraient utiliser dans Workspace **pourraient être les mêmes ou non**.

#### Attaquer les utilisateurs

Lorsque la synchronisation se produit, elle peut synchroniser **tous les utilisateurs d'AD ou seulement ceux d'une OU spécifique** ou seulement les **utilisateurs membres de groupes spécifiques dans EntraID**. Cela signifie que pour attaquer un utilisateur synchronisé (ou en créer un nouveau qui sera synchronisé), vous devrez d'abord déterminer quels utilisateurs sont synchronisés.

- Les utilisateurs peuvent **réutiliser le mot de passe ou non d'AD ou EntraID**, mais cela signifie que vous devrez **compromettre les mots de passe des utilisateurs pour vous connecter**.
- Si vous avez accès aux **mails** des utilisateurs, vous pourriez **changer le mot de passe Workspace d'un utilisateur existant**, ou **créer un nouvel utilisateur**, attendre qu'il soit synchronisé et configurer le compte.

Une fois que vous accédez à l'utilisateur dans Workspace, il pourrait se voir attribuer certaines **permissions par défaut**.

#### Attaquer les groupes

Vous devez également d'abord déterminer quels groupes sont synchronisés. Bien qu'il existe la possibilité que **TOUS** les groupes soient synchronisés (car Workspace le permet).

> [!NOTE]
> Notez que même si les groupes et les adhésions sont importés dans Workspace, les **utilisateurs qui ne sont pas synchronisés dans la synchronisation des utilisateurs ne seront pas créés** lors de la synchronisation des groupes même s'ils sont membres de l'un des groupes synchronisés.

Si vous savez quels groupes d'Azure sont **attribués des permissions dans Workspace ou GCP**, vous pourriez simplement ajouter un utilisateur compromis (ou nouvellement créé) dans ce groupe et obtenir ces permissions.

Il existe une autre option pour abuser des groupes privilégiés existants dans Workspace. Par exemple, le groupe `gcp-organization-admins@<workspace.email>` a généralement de hauts privilèges sur GCP.

Si la synchronisation de, par exemple, EntraID vers Workspace est **configurée pour remplacer le domaine** de l'objet importé **par l'e-mail de Workspace**, il sera possible pour un attaquant de créer le groupe `gcp-organization-admins@<entraid.email>` dans EntraID, d'ajouter un utilisateur dans ce groupe, et d'attendre que la synchronisation de tous les groupes se produise.\
**L'utilisateur sera ajouté dans le groupe `gcp-organization-admins@<workspace.email>` augmentant les privilèges dans GCP.**

### De Google Workspace -> AD/EntraID

Notez que Workspace nécessite des identifiants avec un accès en lecture seule sur AD ou EntraID pour synchroniser les utilisateurs et les groupes. Par conséquent, il n'est pas possible d'abuser de Google Workspace pour effectuer des modifications dans AD ou EntraID. Donc **ce n'est pas possible** à ce moment.

Je ne sais également pas où Google stocke les identifiants AD ou le jeton EntraID et vous **ne pouvez pas les récupérer en reconfigurant la synchronisation** (ils n'apparaissent pas dans le formulaire web, vous devez les fournir à nouveau). Cependant, depuis le web, il pourrait être possible d'abuser de la fonctionnalité actuelle pour **lister les utilisateurs et les groupes**.

{{#include ../../../banners/hacktricks-training.md}}
