DACL的利用
概念
随着我们危害拿下越来越多的用户和计算主机,我们发现其中一些主体对其他域对象具有特定权限。 例如,其中一个受损的用户帐户可以在不知道原始密码的情况下直接重置另一个用户的密码。 如果我们故有意地利用它这些权限,我们将危及可以接管更多用户实现域内提权和横向移动。 为了理解这种类型的攻击,让我们介绍一下需要知道 DACL 的概念。 在 Active DirectoryAD 的上下文中,DACL(自由访问控制列表)DACL 是访问控制条目 (ACE) 的列表,它指定允许或拒绝哪些用户或组访问特定资源,例如计算机、SMB 共享或用户帐户 . DACL 作为对象的属性存储,用于对对象实施访问控制。
DACL 中的每个 ACE 指定了授予或拒绝特定用户或组的访问权限以及适用于这些权限的权限。 在我们的例子 Lab 种,med-factory 域中,的用户 svc_sqljason 可以在不知道 Davidjustin 原始当前密码的情况下重置 Davidjustin 的密码。 我们可以在下图中看到 Davidjustin 上的 DACL。
从 DACL 来看,这个 ACE 明确指出 svc_sqljason 可以重置 Davidjustin 的密码。
在 Active DirectoryLab 中还有着其他可利用的 DACL,我们可以通过多种方式利用这些配置不当或者沦陷用户/主机的 ACL,包括:
1:使来扩大我们的访问范围。接下来,我们讨论一些比较经典的 DACL 利用特权帐户修改 DACL:如果特权帐户遭到破坏,例如域管理员帐户,它可以修改目录中的任何对象。
2:缺乏职责分离:如果不同的组或用户被授予对 Active Directory 中不同对象的访问权限,但没有适当的职责分离,攻击者可能会通过访问他们通常不会拥有的对象来提升他们的特权 访问权限。
3:不受限制地访问对象:如果 Active Directory 中的某些对象没有得到充分保护,攻击者可能会在不被发现的情况下访问和修改它们。
4:权限配置错误:如果权限配置不正确,攻击者可能会未经授权访问域中的主体。
我们将分别讨论这个活动目录中一些常见的 DACL 滥用。 为了发现潜在的可利用 DACL,我们主要使用 BloodHound,因为它有一个简单的 GUI。
ForceChangePassword
GenericAll
GenericWrite
AllExtendedRights
其他