在用户之后,组是 Active Directory 中的另一个重要对象。他们可以将相似的用户放在一起并批量分配权限和访问权限。组是攻击者和渗透测试人员的另一个关键目标,因为他们赋予其成员的权利可能并不明显,但可能会授予过多(甚至是无意的)特权,如果设置不正确,可能会被滥用。Active Directory 中有许多内置组built-in groups,大多数组织还创建自己的组来定义权限和特权,从而进一步管理域内的访问。AD 环境中的组数量可能会滚雪球并变得笨拙,如果不加以控制,可能会导致意外访问。了解使用不同组类型的影响以及任何组织定期审核其域中存在哪些组、这些组授予其成员的权限以及检查超出用户执行要求的过多组成员身份至关重要他们的日常工作。接下来,我们将讨论存在的不同类型的组以及它们可以分配到的范围。
经常出现的一个问题是组和组织单位 (OU) 之间的区别。如本模块前面所述,OU 可用于对用户、组和计算机进行分组,以简化管理并将组策略设置部署到域中的特定对象。组主要用于分配访问资源的权限。 OU 还可用于将管理任务委派给用户,例如重置密码或解锁用户帐户,而无需授予他们可能通过组成员身份继承的额外管理权限。

Types of Groups

简而言之,组用于将用户、计算机和联系人对象放入管理单元中,这些管理单元提供了对权限的轻松管理,并促进了诸如打印机和文件共享访问等资源的分配。例如,如果管理员需要为部门的 50 名成员分配对新共享驱动器的访问权限,则单独添加每个用户的帐户会很耗时。以这种方式授予权限也会使审核谁有权访问资源变得更加困难,并且难以清理/撤销权限。
相反,系统管理员可以使用现有组或创建新组并授予该特定组对资源的权限。从这里开始,组中的每个用户都将根据他们在组中的成员身份继承权限。如果需要修改或撤销一个或多个用户的权限,只需将其从组中删除,其他用户不受影响,权限不变。
Active Directory 中的组有两个基本特征:类型和范围。组类型定义组的用途,而组范围显示如何在域或林中使用组。创建新组时,我们必须选择组类型。有两种主要类型:安全和通讯组。

image.png

安全组类型主要是为了便于将权限和权限分配给一组用户,而不是一次一个。在为给定资源分配权限和权限时,它们简化了管理并减少了开销。添加到安全组的所有用户都将继承分配给该组的任何权限,从而更容易将用户移入和移出组,同时保持组的权限不变。
电子邮件应用程序(例如 Microsoft Exchange)使用通讯组类型将邮件分发给组成员。它们的功能很像邮件列表,并允许在 Microsoft Outlook 中创建电子邮件时在“收件人”字段中自动添加电子邮件。这种类型的组不能用于为域环境中的资源分配权限。

Group Scopes

创建新组时可以分配三种不同的组范围。

  1. Domain Local Group
  2. Global Group
  3. Universal Group

    Domain Local Group

域本地组只能用于管理对创建它的域中的域资源的权限。本地组不能在其他域中使用,但可以包含来自 OTHER 域的用户。本地组可以嵌套到(包含在)其他本地组中,但不能嵌套在全局组中。

Global Group

全局组可用于授予对另一个域中资源的访问权限。全局组只能包含来自创建它的域的帐户。全局组可以添加到其他全局组和本地组。

Universal Group

通用组范围可用于管理分布在多个域的资源,并可对同一森林内的任何对象赋予权限。它们对一个组织内的所有域都可用,可以包含来自任何域的用户。与域的本地组和全局组不同,通用组存储在全局目录(GC)中,从通用组中添加或删除对象会触发整个森林的复制。建议管理员维护其他组(如全局组)作为通用组的成员,因为通用组内的全局组成员资格比全局组内的个人用户成员资格更不可能改变。只有当一个用户从全局组中被删除时,才会在单个域层面上触发复制。如果单个用户和计算机(而不是全局组)被维护在通用组内,那么每次改变都会触发全林的复制。这可能会产生大量的网络开销和潜在的问题。下面是AD中的组及其范围设置的一个例子。请注意一些关键的组和它们的范围。( 例如,企业和模式管理员与域管理员相比。)

AD 组范围示例

  1. PS C:\htb> Get-ADGroup -Filter * |select samaccountname,groupscope
  2. samaccountname groupscope
  3. -------------- ----------
  4. Administrators DomainLocal
  5. Users DomainLocal
  6. Guests DomainLocal
  7. Print Operators DomainLocal
  8. Backup Operators DomainLocal
  9. Replicator DomainLocal
  10. Remote Desktop Users DomainLocal
  11. Network Configuration Operators DomainLocal
  12. Distributed COM Users DomainLocal
  13. IIS_IUSRS DomainLocal
  14. Cryptographic Operators DomainLocal
  15. Event Log Readers DomainLocal
  16. Certificate Service DCOM Access DomainLocal
  17. RDS Remote Access Servers DomainLocal
  18. RDS Endpoint Servers DomainLocal
  19. RDS Management Servers DomainLocal
  20. Hyper-V Administrators DomainLocal
  21. Access Control Assistance Operators DomainLocal
  22. Remote Management Users DomainLocal
  23. Storage Replica Administrators DomainLocal
  24. Domain Computers Global
  25. Domain Controllers Global
  26. Schema Admins Universal
  27. Enterprise Admins Universal
  28. Cert Publishers DomainLocal
  29. Domain Admins Global
  30. Domain Users Global
  31. Domain Guests Global
  32. <SNIP>

组范围可以更改,但有一些注意事项:

只有不属于另一个全局组的全局组才能转换为通用组。
如果域本地组不包含任何其他域本地组作为成员,则域本地组只能转换为通用组。
通用组可以无任何限制地转换为域本地组。
只有不包含任何其他通用组作为成员的通用组才能转换为全局组。

内置组与自定义组

创建域时,会使用域本地组范围创建多个内置安全组。这些组用于特定的管理目的,下一节将详细讨论。需要注意的是,只有用户帐户才能添加到这些内置组中,因为它们不允许组嵌套(组中的组)。内置组的一些示例包括域管理员,它是一个全局安全组,只能包含来自其自己域的帐户。如果组织希望允许域 B 中的帐户在域 A 中的域控制器上执行管理功能,则必须将该帐户添加到内置的管理员组,这是一个域本地组。尽管 Active Directory 预装了许多组,但大多数组织通常会为自己的目的创建额外的组(包括安全组和分发组)。对 AD 环境的更改/添加也可以触发其他组的创建。例如,将 Microsoft Exchange 添加到域时,它会向域中添加各种不同的安全组,其中一些具有高特权,如果管理不当,可用于在域内获得特权访问。

嵌套组成员资格

嵌套组成员资格是 AD 中的一个重要概念。如前所述,域本地组可以是同一域中另一个域本地组的成员。通过这种成员资格,用户可以继承未直接分配给他们的帐户甚至他们直接所属的组的权限,而是他们的组所属的组。这有时会导致授予用户的意外权限,如果没有对域进行深入评估,很难发现这些权限。 BloodHound 等工具在揭示用户可能通过一个或多个组嵌套继承的权限方面特别有用。这是渗透测试人员发现细微错误配置的关键工具,对于系统管理员等深入了解(视觉)其域的安全状况也非常强大。

下面是通过嵌套组成员资格继承的特权示例。尽管 DCorner 不是 Helpdesk Level 1 的直接成员,但他们在 Help Desk 中的成员资格授予他们与 Helpdesk Level 1 的任何成员相同的特权。在这种情况下,该权限将允许他们将成员添加到第 1 层管理员组 (GenericWrite)。如果该组在域中授予任何提升的权限,它可能会成为渗透测试人员的关键目标。在这里,我们可以将我们的用户添加到该组并获得授予第 1 层管理员组成员的权限,例如本地管理员访问一个或多个可用于进一步访问的主机。
image.png

重要的组属性

与用户一样,组也有许多属性。一些最重要的组属性包括:

  • cn:cn 或 Common-Name 是 Active Directory 域服务中组的名称。
  • member:哪些用户、组和联系人对象是组的成员。
  • groupType:指定组类型和范围的整数。
  • memberOf:包含该组作为成员的任何组的列表(嵌套组成员资格)。
  • objectSid:这是组的安全标识符或 SID,它是用于将组标识为安全主体的唯一值。

组是 AD 中的基本对象,可用于将其他对象组合在一起并促进权限和访问的管理。花时间研究组类型和范围之间的差异。这些知识对于管理 AD 以及了解相同和不同域中的组之间的关系以及在渗透测试的侦察阶段可以枚举哪些信息很有用。了解如何利用不同的组类型在单个域中和跨信任边界执行攻击是一个很好的知识。我们在本节中深入研究了组,现在让我们来看看权利和特权之间的区别。