AD(Active Directory) 第三部分-组策略

admin 2022年6月27日08:27:01安全文章评论5 views4427字阅读14分45秒阅读模式
# 1、概述

在本节中,我们将讨论 Active Directory 中的组策略,它是 AD 的重要元素之一。我们将介绍以下概念:

  • 什么是 Active Directory 中的组策略

  • 为什么需要组策略

  • 使用组策略可以实现什么

  • 如何枚举和破坏组策略

创建组策略是为了集中管理整个Active Directory域中的操作系统、用户和计算机。这些策略允许我们从GPMC(Group Policy Management Console)集中式控制台管理用户和计算机设置。

在运行中输入gpmc.msc可以打开GPMC

<img src="https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202204021531958.png" alt="image-20220402153139847" style="zoom:50%;" />

# 2、组策略对象(Group Policy Objects)

GPO(组策略对象)包含组策略设置和与文件系统和 Active Directory 中的策略设置相关的文件描述。如上图所示,组策略对象容器下只有两个GPO。这两个是在创建域时自动创建的核心GPO

# Default Domain Policy(默认域策略)

此默认策略根据密码策略、Kerberos策略和帐户锁定策略为域中的所有用户和计算机定义了一组基本设置。

AD(Active Directory) 第三部分-组策略

# Default Domain Controllers Policy(默认域控制器策略)

默认域控制器策略为域中的所有域控制器定义一组基本安全和审核设置。

AD(Active Directory) 第三部分-组策略


组策略对象是一组组合在一起并应用于计算机或用户对象的策略。

AD(Active Directory) 第三部分-组策略

# 3、Group Policy Management Editor(组策略管理编辑器)

在运行中输入gpedit.msc可以打开组策略管理编辑器。可以用它编辑组策略。如你所见,策略设置分为两类:计算机配置和用户配置。

# 计算机配置

如果在计算机配置下指定了GPO的设置,并将其应用于特定的计算机对象,则该计算机对象将具有指定的安全设置、系统行为、应用程序设置以及计算机启动和关闭时执行的脚本,而与登录到应用了GPO的计算机的用户无关。

# 用户配置

在用户配置下定义的策略定义了用户特定的系统行为、应用程序设置、安全设置、分配和发布的应用程序、用户登录和注销脚本以及文件夹重定向。如果为特定用户定义了策略,则该策略将适用于该用户登录的任何系统。

**注意:**在计算机配置下定义的策略会覆盖在用户配置下定义的策略。

创建 GPO 后,需要将其链接到一个或多个 AD 容器,如链接到整个域或某个特定的 OU(组织单位)才能生效。例如,如果要创建组策略以授予数据库管理员团队的所有成员访问SQL所需的共享文件夹的权限,则此GPO必须仅链接到DBAdmins OU

# 4、常见的GPO

一些常见类型的组策略,用于启用不同类型的任务,如一些配置:

  • 安全策略(例如禁用 NTLM 身份验证)和自定义策略(例如限制普通用户对命令提示符的访问)

  • IT策略,如限制对USB驱动器的访问、配置登录banner向用户显示法律通知等。

  • 审计和合规性策略,例如启用高级 Windows 审计策略以启用对重要对象的审计以及在事件查看器中记录建议的重要 Windows 事件 ID 等。

  • 域中复杂的密码策略,用于应对密码喷射攻击。

  • 自动化策略,如在多台计算机/服务器上部署标准工具、映射网络驱动器、自动执行登录/注销任务等。

# 5、组策略刷新间隔

刷新间隔定义了特定域计算机或服务器从域控制器请求组策略更新的时间,以确保复制任何组策略中的更改。默认刷新间隔为 90 分钟,并为每台计算机/服务器添加了一个随机偏移间隔,以防止所有域计算机同时从 DC 请求组策略更新。将在本系列的后面部分讨论有关 GPO 的更多信息。

# 6、SYSVOL

SYSVOLAD中最重要的网络共享之一,因为它存储组策略模板并默认在域控制器上共享。所有域计算机都访问此共享以检查域策略。它的默认位置是域控制器中的 %SYSTEMROOT%SYSVOLsysvol。网络上的位置是 \<domain_name>SYSVOL

AD(Active Directory) 第三部分-组策略

一个sysvol文件夹由以下部分组成:

  • 脚本(即 GPO 中引用的启动脚本和文件,如 .bat、vbs 等)

  • 组策略文件夹和模板(在整个域中复制)

  • 连接点(类似快捷方式。一个目录可以指向不同的目录)

AD(Active Directory) 第三部分-组策略

# SYSVOL Policies folder(SYSVOL策略文件夹)

SYSVOL 策略文件夹包含所有 GPO。每个 GPO 的文件夹名称与该 GPO 的GUID相同。

AD(Active Directory) 第三部分-组策略

以下是 SYSVOL 中 Policy 文件夹的组成:

  • Machine 存储GPO的计算机特定配置

  • User 存储GPO的用户特定配置

  • GPT.INI 存储GPO配置

AD(Active Directory) 第三部分-组策略

DFSR(分布式文件系统复制)是SYSVOL文件夹复制的默认复制机制,SYSVOL复制由DFSR完成。

# 7、组策略首选项

微软引入了一项称为“组策略首选项”的重要功能,可帮助在创建计划任务、更改所有工作站上的本地管理员密码等场景中存储和使用凭据。这对管理员非常有帮助,因为它提供了一种自动化机制(而不是借助脚本来完成),其中密码不会像脚本那样以明文形式保存,而是以 AES-256 位加密的形式存储在SYSVOL 目录的xml 文件中。但后来微软在他们的 MSDN 门户上发布了私钥,允许解密存储在这样创建的 xml 文件中的任何密码。

AD(Active Directory) 第三部分-组策略

由于域中每个人都具有对SYSVOL的读访问权限,因此只需在XML文件中找到cpassword并解密密码即可。

PowerSploit 的 GPP-Password 工具可以在 sysvol 策略目录中的xml中搜索 cpassword 字段,并使用 Microsoft 之前发布的密钥对其进行解密。

PowerSploit项目:https://github.com/PowerShellMafia/PowerSploit

AD(Active Directory) 第三部分-组策略


尽管微软后来发布了补丁,并禁用了像这样输入密码的选项,但如果管理员不删除XML文件,这个问题仍然存在,而且密码在很多时候都有效,所以这是一个有效个攻击方法。

后来,微软使用 LAPS(本地管理员密码解决方案)来更改本地管理员密码。

最佳实践:

  • 对于系统管理员来说,删除SYSVOL文件夹中有密码的现有GPP XML文件,并确保那里没有这样的文件。

  • 对于渗透测试者,最佳实践是枚举 SYSVOL 策略文件夹以寻找包含 cpassword 的 xml 文件。

  • 防御者的最佳做法是创建 AD 诱饵并在其中包含带有密码的 xml 文件,并启用审核策略以在有人访问未链接到实际 GPO 的文件夹时收到警报。这个会在后续文章中详细介绍。

# 8、在域中查找GPO

要检查域中的所有 GPO,可以使用以下命令:

PS C:UsersAdministrator> Get-GPO -All | Select DisplayName
DisplayName-----------Default Domain PolicyDefault Domain Controllers Policy
# 查看GPO的设置
Get-GPOReport -Name "<GPO Name>" -Path <Path With File Name> -ReportType "<HTML|XML>"

AD(Active Directory) 第三部分-组策略

可以看到XML格式的策略定义,比如GPO在启用防火墙规则或运行脚本等情况下会做什么:

<Computer>    <VersionDirectory>1</VersionDirectory>    <VersionSysvol>1</VersionSysvol>    <Enabled>true</Enabled>    <ExtensionData>      <Extension xmlns:q1="http://www.microsoft.com/GroupPolicy/Settings/WindowsFirewall" xsi:type="q1:WindowsFirewallSettings">        <q1:GlobalSettings>          <q1:PolicyVersion>            <q1:Value>541</q1:Value>          </q1:PolicyVersion>        </q1:GlobalSettings>        <q1:InboundFirewallRules>          <q1:Version>2.29</q1:Version>          <q1:Action>Allow</q1:Action>          <q1:Name>Allow WinRM port 5985 </q1:Name>          <q1:Dir>In</q1:Dir>          <q1:LPort>5985</q1:LPort>          <q1:Protocol>6</q1:Protocol>          <q1:Active>true</q1:Active>        </q1:InboundFirewallRules>      </Extension>      <Name>Windows Firewall</Name>    </ExtensionData>    <ExtensionData>      <Extension xmlns:q2="http://www.microsoft.com/GroupPolicy/Settings/Registry" xsi:type="q2:RegistrySettings">        <q2:Blocked>false</q2:Blocked>      </Extension>      <Name>Registry</Name>    </ExtensionData>  </Computer>  <User>    <VersionDirectory>1</VersionDirectory>    <VersionSysvol>1</VersionSysvol>    <Enabled>true</Enabled>  </User></GPO>

在上面的配置中,我们可以看到它启用了Windows防火墙中的一条规则。

# 查找配置错误的组策略

为了验证,首先创建了一个 GPO 并配置允许Ghost 用户可以编辑 GPO

AD(Active Directory) 第三部分-组策略

然后,我们获取GPO 的 cn

AD(Active Directory) 第三部分-组策略

并在此GPO上执行ACL检查,查看用户Ghost具有我们配置的权限。

AD(Active Directory) 第三部分-组策略

这就是配置错误的组策略对象的例子。由于用户 ghost 具有编辑 GPO 的权限,因此可以在没有域管理员权限的情况下从该 GPO 编辑设置和完成一些其他任务。

# 9、说明

本文由笔者在原文上编译

原文出处:Active Directory Fundamentals (Part 3)- Group Policies


原创稿件征集

征集原创技术文章中,欢迎投递

投稿邮箱:[email protected]

文章类型:黑客极客技术、信息安全热点安全研究分析安全相关

通过审核并发布能收获200-800元不等的稿酬。


更多详情,点我查看!

AD(Active Directory) 第三部分-组策略
靶场实操,戳“阅读原文“

原文始发于微信公众号(合天网安实验室):AD(Active Directory) 第三部分-组策略

特别标注: 本站(CN-SEC.COM)所有文章仅供技术研究,若将其信息做其他用途,由用户承担全部法律及连带责任,本站不承担任何法律及连带责任,请遵守中华人民共和国安全法.
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年6月27日08:27:01
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                  AD(Active Directory) 第三部分-组策略 http://cn-sec.com/archives/1141614.html

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: