# GWS - Admin Directory Sync

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

## 基本情報

GCDSを使用してユーザーを同期するこの方法の主な違いは、GCDSは手動でダウンロードして実行する必要があるバイナリを使用するのに対し、**Admin Directory Syncはサーバーレス**で、Googleによって管理されていることです [https://admin.google.com/ac/sync/externaldirectories](https://admin.google.com/ac/sync/externaldirectories)。

この執筆時点で、このサービスはベータ版であり、2種類の同期をサポートしています：**Active Directory**からと**Azure Entra ID**から：

- **Active Directory:** これを設定するには、**GoogleにあなたのActive Directory環境へのアクセスを許可する必要があります**。GoogleはGCPネットワーク（**VPCコネクタ**経由）にのみアクセスできるため、コネクタを作成し、そのコネクタからADを利用可能にする必要があります。これには、GCPネットワーク内のVMに配置するか、Cloud VPNまたはCloud Interconnectを使用します。その後、ディレクトリに対する読み取りアクセス権を持つアカウントの**資格情報**と、**LDAPS**経由で連絡するための**証明書**を提供する必要があります。
- **Azure Entra ID:** これを構成するには、ポップアップで表示されるGoogleによって、Entra IDサブスクリプションに対する読み取りアクセス権を持つユーザーでAzureに**ログインするだけです**。GoogleはEntra IDに対する読み取りアクセス権を持つトークンを保持します。

正しく構成されると、両方のオプションは**Workspaceにユーザーとグループを同期する**ことを可能にしますが、WorkspaceからADまたはEntraIDにユーザーとグループを構成することはできません。

この同期中に許可される他のオプションは次のとおりです：

- 新しいユーザーにログインするためのメールを送信
- 彼らのメールアドレスをWorkspaceで使用されているものに自動的に変更します。したがって、Workspaceが`@hacktricks.xyz`を使用し、EntraIDユーザーが`@carloshacktricks.onmicrosoft.com`を使用している場合、`@hacktricks.xyz`がアカウントに作成されたユーザーに使用されます。
- 同期される**ユーザーを含むグループ**を選択します。
- Workspaceで同期および作成する**グループ**を選択する（またはすべてのグループを同期するように指示する）。

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

ADまたはEntraIDを侵害することに成功すれば、Google Workspaceと同期されるユーザーとグループを完全に制御できます。\
ただし、Workspaceでユーザーが使用している**パスワード**は**同じものである可能性もあれば、そうでない可能性もあります**。

#### ユーザーへの攻撃

同期が行われると、**ADからすべてのユーザーを同期するか、特定のOUからのユーザーのみを同期するか、またはEntraIDの特定のグループのメンバーのみを同期する**可能性があります。これは、同期されたユーザーを攻撃するためには、まずどのユーザーが同期されているかを特定する必要があることを意味します。

- ユーザーは**ADまたはEntraIDからパスワードを再利用している可能性があります**が、これは**ログインするためにユーザーのパスワードを侵害する必要がある**ことを意味します。
- ユーザーの**メール**にアクセスできる場合、既存のユーザーのWorkspaceパスワードを**変更する**か、**新しいユーザーを作成**し、それが同期されるのを待ってアカウントを設定できます。

Workspace内のユーザーにアクセスすると、デフォルトでいくつかの**権限が付与される**可能性があります。

#### グループへの攻撃

最初にどのグループが同期されているかを特定する必要があります。**すべて**のグループが同期されている可能性があります（Workspaceはこれを許可しています）。

> [!NOTE]
> グループとメンバーシップがWorkspaceにインポートされても、**ユーザー同期で同期されていないユーザーは、同期されたグループの中にメンバーであっても作成されません**。

Azureのどのグループが**WorkspaceまたはGCPで権限を割り当てられているか**を知っていれば、侵害されたユーザー（または新しく作成されたユーザー）をそのグループに追加し、その権限を取得できます。

Workspace内の既存の特権グループを悪用する別のオプションがあります。たとえば、グループ`gcp-organization-admins@<workspace.email>`は通常、GCPに対して高い権限を持っています。

たとえば、EntraIDからWorkspaceへの同期が、インポートされたオブジェクトの**ドメインをWorkspaceのメールで置き換える**ように**構成されている場合**、攻撃者はEntraIDに`gcp-organization-admins@<entraid.email>`というグループを作成し、そのグループにユーザーを追加し、すべてのグループの同期が行われるのを待つことができます。\
**ユーザーはグループ`gcp-organization-admins@<workspace.email>`に追加され、GCPでの権限が昇格します。**

### Google Workspace -> AD/EntraID

Workspaceは、ユーザーとグループを同期するためにADまたはEntraIDに対する読み取り専用アクセス権を持つ資格情報を必要とします。したがって、ADまたはEntraIDに変更を加えるためにGoogle Workspaceを悪用することはできません。したがって、**現時点ではこれは不可能です**。

また、GoogleがADの資格情報やEntraIDトークンをどこに保存しているかはわからず、**同期を再構成してもそれらを回復することはできません**（ウェブフォームには表示されず、再度提供する必要があります）。ただし、ウェブからは現在の機能を悪用して**ユーザーとグループをリストする**ことが可能かもしれません。

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