Translated ['src/pentesting-cloud/workspace-security/gws-workspace-sync-

This commit is contained in:
Translator
2025-05-20 06:04:59 +00:00
parent cae6f7ee54
commit 81cdcdbea9

View File

@@ -1,57 +1,57 @@
# GWS - Admin Directory Sync
# GWS - 管理员目录同步
{{#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) 管理。
这种与 GCDS 同步用户的方式主要区别在于GCDS 是通过一些需要下载和运行的二进制文件手动完成的,而 **管理员目录同步是无服务器的**,由 Google 在 [https://admin.google.com/ac/sync/externaldirectories](https://admin.google.com/ac/sync/externaldirectories) 管理。
在撰写本文时,该服务处于测试阶段,支持两种类型的同步:来自 **Active Directory****Azure Entra ID**
- **Active Directory** 为了设置此功能,您需要给予 **Google 访问您的 Active Directory 环境**。由于 Google 仅能访问 GCP 网络(通过 **VPC 连接器**),您需要创建一个连接器,然后通过在 GCP 网络中的虚拟机或使用 Cloud VPN 或 Cloud Interconnect使您的 AD 从该连接器可用。然后,您还需要提供具有目录读取权限的帐户的 **凭据****证书** 以通过 **LDAPS** 进行联系
- **Azure Entra ID** 配置此功能只需在 Google 显示的弹出窗口中 **使用具有读取权限的用户登录 Azure**Google 将保留对 Entra ID 的读取权限令牌。
- **Active Directory** 设置此功能,您需要**授予 Google 访问您的 Active Directory 环境**。由于 Google 仅能访问 GCP 网络(通过 **VPC 连接器**),您需要创建一个连接器,然后通过在 GCP 网络中的虚拟机或使用 Cloud VPN 或 Cloud Interconnect 使您的 AD 可用。然后,您还需要提供具有读取目录权限的帐户的 **凭据**通过 **LDAPS** 联系的 **证书**
- **Azure Entra ID** 配置此功能只需在 Google 显示的弹出窗口中**使用具有读取权限的用户登录 Azure**Google 将保留对 Entra ID 的读取权限令牌。
一旦正确配置,这两种选项都将允许 **将用户和组同步到 Workspace**,但不允许从 Workspace 配置用户和组到 AD 或 EntraID。
一旦正确配置,这两种选项都将允许**将用户和组同步到 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 中可能使用的 **密码** **可能是相同的,也可能不**
但是,请注意,用户在 Workspace 中可能使用的 **密码** **可能是相同的,也可能不**
#### 攻击用户
当同步发生时,它可能会同步 **来自 AD 的所有用户或仅来自特定 OU 的用户**,或仅 **EntraID 中特定组的成员用户**。这意味着要攻击一个已同步的用户(或创建一个新的被同步的用户),您需要首先弄清楚哪些用户正在被同步。
当同步发生时,它可能会同步 **来自 AD 的所有用户或仅来自特定 OU 的用户**,或仅同步 **EntraID 中特定组的成员用户**。这意味着要攻击一个已同步的用户(或创建一个新的被同步的用户),您需要首先弄清楚哪些用户正在被同步。
- 用户可能 **重用来自 AD 或 EntraID 的密码**,但这意味着您需要 **攻陷用户的密码以登录**
- 如果您可以访问用户的 **邮件**,您可以 **更改现有用户的 Workspace 密码**,或 **创建一个新用户**,等待其被同步并设置帐户。
- 用户可能 AD 或 EntraID 中**重用密码,也可能不重用**,但这意味着您需要**攻陷用户的密码以登录**。
- 如果您可以访问用户的 **邮件**,您可以**更改现有用户的 Workspace 密码**,或**创建一个新用户**,等待其被同步并设置帐户。
一旦您访问了 Workspace 中的用户,可能会默认予一些 **权限**
一旦您访问了 Workspace 中的用户,可能会默认予一些 **权限**
#### 攻击组
您还需要首先弄清楚哪些组正在被同步。尽管有可能 **所有** 组都在同步(因为 Workspace 允许这样做)。
您还需要首先弄清楚哪些组正在被同步。尽管有可能**所有**组都在同步(因为 Workspace 允许这样做)。
> [!NOTE]
> 请注意,即使组和成员资格被导入到 Workspace**在用户同步中未同步的用户在组同步期间不会被创建**,即使他们是任何已同步组的成员。
如果您知道 Azure 中哪些组被 **分配了 Workspace 或 GCP 中权限**,您可以将一个被攻陷的用户(或新创建的用户)添加到该组中并获得这些权限。
如果您知道哪些来自 Azure 的组在 **Workspace 或 GCP 中被分配权限**,您可以将一个被攻陷的用户(或新创建的用户)添加到该组中并获得这些权限。
还有另一种方法可以滥用 Workspace 中现有的特权组。例如,组 `gcp-organization-admins@<workspace.email>` 通常在 GCP 中具有高权限。
如果从 EntraID 到 Workspace 的同步 **配置为用 Workspace 的电子邮件替换导入对象的域**,攻击者将能够在 EntraID 中创建组 `gcp-organization-admins@<entraid.email>`,将用户添加到该组,并等待所有组的同步发生。\
如果从 EntraID 到 Workspace 的同步**配置为用 Workspace 的电子邮件替换导入对象的域**,攻击者将能够在 EntraID 中创建组 `gcp-organization-admins@<entraid.email>`,将用户添加到该组,并等待所有组的同步发生。\
**该用户将被添加到组 `gcp-organization-admins@<workspace.email>` 中,从而在 GCP 中提升权限。**
### 从 Google Workspace -> AD/EntraID
请注意Workspace 需要具有对 AD 或 EntraID 的只读访问权限的凭据以同步用户和组。因此,无法滥用 Google Workspace 对 AD 或 EntraID 进行任何更改。因此 **此时不可**
请注意Workspace 需要具有对 AD 或 EntraID 的只读访问权限的凭据以同步用户和组。因此,目前无法滥用 Google Workspace 对 AD 或 EntraID 进行任何更改。**因此,这在此时不可能的**。
我也不知道 Google 将 AD 凭据或 EntraID 令牌存储在哪里,您 **无法通过重新配置同步来恢复它们**(它们不会出现在网页表单中,您需要再次提供)。但是,从网页上可能可以滥用当前功能来 **列出用户和组**
我也不知道 Google 将 AD 凭据或 EntraID 令牌存储在哪里,您**无法通过重新配置同步来恢复它们**(它们不会出现在网页表单中,您需要再次提供)。但是,从网页上可能可以滥用当前功能来**列出用户和组**。
{{#include ../../../banners/hacktricks-training.md}}