# GWS - Admin Directory Sync

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

## Informazioni di base

La principale differenza tra questo modo di sincronizzare gli utenti con GCDS è che GCDS viene eseguito manualmente con alcuni binari che devi scaricare ed eseguire, mentre **Admin Directory Sync è serverless** gestito da Google in [https://admin.google.com/ac/sync/externaldirectories](https://admin.google.com/ac/sync/externaldirectories).

Al momento della scrittura, questo servizio è in beta e supporta 2 tipi di sincronizzazione: Da **Active Directory** e da **Azure Entra ID:**

- **Active Directory:** Per configurarlo, devi dare **accesso a Google al tuo ambiente Active Directory**. E poiché Google ha accesso solo alle reti GCP (tramite **VPC connectors**), devi creare un connettore e poi rendere il tuo AD disponibile da quel connettore avendolo in VM nella rete GCP o utilizzando Cloud VPN o Cloud Interconnect. Inoltre, devi fornire **credenziali** di un account con accesso in lettura sulla directory e un **certificato** per contattare tramite **LDAPS**.
- **Azure Entra ID:** Per configurarlo, è necessario **accedere ad Azure con un utente con accesso in lettura** sulla sottoscrizione di Entra ID in un pop-up mostrato da Google, e Google manterrà il token con accesso in lettura su Entra ID.

Una volta configurate correttamente, entrambe le opzioni consentiranno di **sincronizzare utenti e gruppi in Workspace**, ma non consentiranno di configurare utenti e gruppi da Workspace a AD o EntraID.

Altre opzioni che saranno consentite durante questa sincronizzazione sono:

- Inviare un'email ai nuovi utenti per il login
- Cambiare automaticamente il loro indirizzo email in quello utilizzato da Workspace. Quindi, se Workspace utilizza `@hacktricks.xyz` e gli utenti di EntraID utilizzano `@carloshacktricks.onmicrosoft.com`, verrà utilizzato `@hacktricks.xyz` per gli utenti creati nell'account.
- Selezionare i **gruppi contenenti gli utenti** che saranno sincronizzati.
- Selezionare i **gruppi** da sincronizzare e creare in Workspace (o indicare di sincronizzare tutti i gruppi).

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

Se riesci a compromettere un AD o EntraID avrai il controllo totale degli utenti e dei gruppi che verranno sincronizzati con Google Workspace.\
Tuttavia, nota che le **password** che gli utenti potrebbero utilizzare in Workspace **potrebbero essere le stesse o meno**.

#### Attaccare gli utenti

Quando avviene la sincronizzazione, potrebbe sincronizzare **tutti gli utenti da AD o solo quelli di una specifica OU** o solo gli **utenti membri di gruppi specifici in EntraID**. Questo significa che per attaccare un utente sincronizzato (o crearne uno nuovo che venga sincronizzato) dovrai prima capire quali utenti vengono sincronizzati.

- Gli utenti potrebbero **riutilizzare la password o meno da AD o EntraID**, ma questo significa che dovrai **compromettere le password degli utenti per accedere**.
- Se hai accesso alle **email** degli utenti, potresti **cambiare la password di Workspace di un utente esistente**, o **creare un nuovo utente**, aspettare che venga sincronizzato e configurare l'account.

Una volta che accedi all'utente all'interno di Workspace, potrebbero essere concessi alcuni **permessi per impostazione predefinita**.

#### Attaccare i Gruppi

Devi anche prima capire quali gruppi vengono sincronizzati. Anche se c'è la possibilità che **TUTTI** i gruppi vengano sincronizzati (poiché Workspace lo consente).

> [!NOTE]
> Nota che anche se i gruppi e le appartenenze vengono importati in Workspace, gli **utenti che non sono sincronizzati nella sincronizzazione degli utenti non verranno creati** durante la sincronizzazione dei gruppi anche se sono membri di uno dei gruppi sincronizzati.

Se sai quali gruppi di Azure sono **assegnati permessi in Workspace o GCP**, potresti semplicemente aggiungere un utente compromesso (o appena creato) in quel gruppo e ottenere quei permessi.

C'è un'altra opzione per abusare dei gruppi privilegiati esistenti in Workspace. Ad esempio, il gruppo `gcp-organization-admins@<workspace.email>` di solito ha alti privilegi su GCP.

Se la sincronizzazione da, ad esempio, EntraID a Workspace è **configurata per sostituire il dominio** dell'oggetto importato **con l'email di Workspace**, sarà possibile per un attaccante creare il gruppo `gcp-organization-admins@<entraid.email>` in EntraID, aggiungere un utente in questo gruppo e aspettare che avvenga la sincronizzazione di tutti i gruppi.\
**L'utente verrà aggiunto nel gruppo `gcp-organization-admins@<workspace.email>` aumentando i privilegi in GCP.**

### Da Google Workspace -> AD/EntraID

Nota che Workspace richiede credenziali con accesso in sola lettura su AD o EntraID per sincronizzare utenti e gruppi. Pertanto, non è possibile abusare di Google Workspace per apportare modifiche a AD o EntraID. Quindi **questo non è possibile** al momento.

Non so nemmeno dove Google memorizzi le credenziali AD o il token di EntraID e non **puoi recuperarli riconfigurando la sincronizzazione** (non appaiono nel modulo web, devi fornirli di nuovo). Tuttavia, dal web potrebbe essere possibile abusare della funzionalità attuale per **elencare utenti e gruppi**.

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