导语:在本篇博文中,我将回顾GPO(组策略对象)执行的工作原理以及如何使用BloodHound查找基于GPO控制的攻击路径,并解释执行这些攻击的几种方法。

介绍

活动目录是由用户,计算机和用户组组成的庞大而复杂的环境,并且在这之间存在着复杂的交织权限和特权将它们连接起来。BloodHound的最初发布侧重于衍生本地管理的概念,然后BloodHound 1.3引入了基于ACL的攻击路径。现在,随着BloodHound 1.5发布,测试人员和红军团队可以轻松找到包括滥用组策略控制的攻击路径以及这些组策略有效应用的对象。

在本篇博文中,我将回顾GPO(组策略对象)执行的工作原理以及如何使用BloodHound查找基于GPO控制的攻击路径,并解释执行这些攻击的几种方法。

之前所做的一些工作

Lucas BouillotEmmanuel Gras在他们的开创性工作“Chemins decontrôleen environnement Active Directory”中包含了GPO控制和OU结构。他们使用攻击图来映射哪些主体可以控制GPO,以及哪些OU应用到这些GPO,然后将这些GP溯源到受这些GPO影响的对象。我们从Lucas和Emannuel的白皮书(法语)学到了很多,我强烈建议你阅读它。

有几位重要的作者和资源在我们研究GPO的工作方式时需要提及:微软组策略团队在TechNet上的文章,Sean Metcalfadsecurity.org的一些研究工作,荣获过14次微软MVP的“GPO Guy“ Darren Mar-Elia,微软的组策略功能规范,最后但也是最重要的,Will Schroeder关于滥用GPO权限的开创性博客文章。特别感谢Darren Mar-Elia回答了许多关于组策略的问题。其他资源和引用链接可以在这篇博文的底部找到。

组策略中的活动部分

没有两种方式:GPO执法是一个复杂的野兽,有很多活动部分。有了这些说明,我们先从基本知识和其他文章中使用的词汇开始,然后逐步解释这些活动部分是如何相互影响的:

GPO:组策略对象。首次创建Active Directory域时,还会创建两个GPO:“默认域策略”和“默认域控制器”。GPO包含一组影响计算机和用户的策略。例如,你可以使用GPO策略来控制计算机上的Windows桌面背景。GPO在组策略管理GUI中是可见的:

image.png

上图所示:我们的测试域中的GPO列表。

从技术上讲,“默认域控制器策略”是GPO 的显示名称,而GPO的名称是一个GPO花括号“GUID”。我把“GUID”放在引号中,因为这个标识符实际上并不是全局唯一的。每个Active Directory域中的“默认域控制器策略”将具有相同的“名称”(读作:花括号GUID):{6AC1786C-016F-11D2-945F-00C04fB984F9}。出于这个原因,GPO有一个名为objectguid的附加参数,它实际上是全局唯一的。任何给定GPO的策略文件都位于域中的SYSVOL中策略的gpcfilesyspath中(例如:\\contoso.local\sysvol\contoso.local\Policies\{6AC1786C-016F-11D2-945F-00C04fB984F9})。

image.png

上图:“默认域控制器策略”GPO的相关属性以及SYSVOL中的GPO策略文件位置。

OU:组织单位。根据微软的TechNet文章,OU是“可用于将大多数其他对象和类出于管理目的组合在一起的通用容器”。基本上,OU是你将主体(用户,组和计算机)放入的一个容器。组织通常会使用OU来组织基于部门和/或地理位置的实体。此外,OU当然可以嵌套在其他OU中。这通常会导致域内相对复杂的OU树结构,如果不先熟悉树,则很难进行导航。你可以在ADUC(Active Directory用户和计算机)的GUI中看到OU。在下面的屏幕截图中,“ContosoUsers”是CONTOSO.LOCAL域的子OU,“帮助台”是“ContosoUsers”OU中的子OU,“Alice Admin”是“Helpdesk”OU的子用户:

image.png

上图:OU树中的Alice Admin用户。

GpLink:一个组策略链接。GPO可以“链接”到域,站点和OU。默认情况下,链接到OU的GPO将应用于该OU的子对象。例如,默认情况下,“默认域策略”GPO链接到域对象,而默认情况下,“默认域控制器策略”链接到域控制器OU。在下面的屏幕截图中,你可以看到,如果我们展开“contoso.local”域和“域控制器”OU,则链接到这些对象的GPO则会显示在其下方:

image.png

上图:“默认域策略”链接到域“contoso.local”。“默认域控制器”策略链接到“域控制器”OU。

GpLinks存储在GPO链接的对象上,名为“gplink”。“gplink”属性值的格式是[<GPO的专有名称>;如果链接未强制执行,则为<0,如果强制执行链接则为1]。你可以使用PowerView轻松枚举这些链接,如下图所示:

image.png

上图:“默认域控制器策略”GPO链接到“域控制器”OU,并未执行。

这三个部分 – GPO,OU和GpLinks – 构成了我们正在处理的主要活动部分。在理解GPO执行逻辑和如何使用BloodHound查找攻击路径之前,了解这三个概念很重要,因此在继续之前,请确保你对这些攻击有信心。最后一个注意事项:GPO也可以链接到站点,但由于站点成员资格和收集挑战的复杂性,我们在本文将不包括这些内容。

GPO执行逻辑

现在你知道基本的活动部分,让我们仔细看看它们是如何连接的。很简单,GPO执行逻辑的工作原理如下:

· GpLinks可以执行,或不执行。

· OU可以阻止继承,也可以不阻止。

· 如果强制执行GpLink,则关联的GPO将应用于链接的OU和所有子对象,而不管该树中的任何OU是否阻止继承。

· 如果未强制执行GpLink,则关联的GPO将应用于链接的OU和所有子对象,除非该树中的任何OU阻止继承。

最重要的还有更多的复杂问题,我们稍后会介绍。首先,我们来看看上述规则中关于GpLink强制和OU阻止继承的内容。回想一下,我有一个用户在HelpDesk OU中叫做Alice Admin。然而,我们不要在ADUC中看到这一点,而是开始考虑下面这个图表:

image.png

上图:域/ OU树中的Alice Admin。

域对象Contoso.Local是一个容器对象。它包含名为ContosoUsers的OU。OU ContosoUsers包含OU帮助台。最后,OU HelpDesk包含用户Alice Admin。

现在,将我们的默认域策略GPO添加到组合中。回想一下,在我的测试域中,该GPO链接到域对象:

image.png

上图:“默认域策略”GPO链接到域对象。

现在,在默认情况下,你可以简单地从左至右阅读,以确定默认域策略将应用于用户Alice Admin。这里的“默认情况”是GpLink关系没有被执行,并且这个路径中的容器都没有阻止继承。让我们将这些信息添加到上面的图表中:

image.png

在这种情况下,没有强制执行GpLink边缘,因为没有任何OU阻止继承。在我们的测试域中,我们在ContosoUsers下有另一个名为“Accounting”的OU,在该OU中有一个用户:Bob User。举例来说,我们会认为Accounting OU会阻止继承。让我们将其添加到我们现有的图表中:

image.png

同样,我们可以看到默认域策略GPO链接到域对象,Bob用户包含在域对象下的OU树中; 但是,由于“Accounting”这个OU会阻止继承,并且由于未强制实施GpLink边缘,所以默认域策略将不适用于Bob用户。

还能跟上我的节奏吗?

让我们在混合中添加另一个GPO并将其链接到域对象,这次我们将强制执行GpLink:

image.png

我们称为“自定义密码策略”的新GPO链接到域对象,该对象又包含它下面的整个OU树。现在,因为GPLink被强制执行,所以此策略将应用于OU树中的所有子对象,而不管这些OU中的任何一个是否阻止继承。这意味着尽管“Accounting”这个OU阻止继承,“自定义密码策略”GPO将同时应用于“Alice管理员” 和“Bob用户” 。

根据我们的经验,这些信息将涵盖你在真实企业网络中遇到的95%以上的情况; 但是,还有三件事需要了解,这可能会影响你在渗透测试和红队评估过程中滥用GPO控制路径:WMI筛选,安全筛选和组策略链接顺序和优先级。

· WMI筛选允许管理员根据某个WMI查询是返回True还是False来进一步限制GPO将应用于哪些计算机和用户。例如,当计算机正在处理组策略时,它可以运行WMI查询来检查操作系统是否为Windows 7,并且只有在该查询返回true时才应用组策略。请参阅Darren Mar-Elia的优秀博客文章以了解更多详情。

· 安全筛选允许管理员进一步限制GPO将应用哪些主体。管理员可以限制GPO应用于特定的计算机,用户或特定安全组的成员。默认情况下,每个GPO都应用于“Authenticated Users”这个主体,其中包括任何成功通过域身份验证的主体。有关更多详细信息,请参阅TechGenix站点上的这篇文章

· 组策略链接顺序决定了在出现冲突的非合并策略时哪个组策略“获胜”。假设你有两个“密码策略”GPO:一个要求用户每30天更改密码,另一个要求用户每60天更改一次密码。无论优先顺序中哪一项策略更高,都是“赢”的策略。组策略客户端通过以相反的优先顺序处理策略来强制执行此“获胜”条件,因此最高优先级策略最后处理,并且“胜出”。幸运的是,对于几乎所有的滥用原语来说,你都不必担心这一点。有关更多信息,请查看此博客文章

就像我上面所说的,我们的经验是,在真实的企业网络中,你不必担心在遇到95%或更多的情况下的WMI过滤、安全过滤或GpLink顺序,但我会提及它们。如果你的滥用行为无效,请了解从何处开始进行疑难解答。我们可能会尝试将这三个项目在未来推入BloodHound界面。同时,确保你的目标计算机和用户对象不会被WMI或安全过滤器过滤掉,或者尝试推送将被更高优先级策略推翻的恶意组策略。

源链接

Hacking more

...