浅谈域渗透中的组策略及gpp运用
字数 1657 2025-08-05 11:39:40

域渗透中的组策略及GPP运用深度解析

0x00 前言

组策略(Group Policy)是Windows域环境中重要的管理工具,同时也是渗透测试中极具价值的攻击面。本文将全面剖析组策略在域渗透中的应用,特别是组策略首选项(GPP)的安全问题及其利用方法。

0x01 组策略基础认知

1.1 组策略定义与作用

组策略是微软Windows NT家族操作系统的特性,用于集中管理用户和计算机的工作环境。主要功能包括:

  • 控制操作系统、应用程序和活动目录中的用户设置
  • 实现配置的集中化管理
  • 批量应用策略设置到多台计算机

1.2 组策略分类

1.2.1 本地组策略(LGP)

  • 面向独立非域计算机
  • 从Windows Vista开始支持对单个用户和组的管理
  • 可通过"GPO Packs"在独立计算机间备份、导入和导出策略

1.2.2 域组策略

  • 通过组策略管理控制台统一管理域内机器和用户
  • 默认包含两个组策略对象:
    • Default Domain Policy:设置密码过期等安全策略
    • Default Domain Controllers Policy:管理域控制器

1.3 关键目录结构

SYSVOL目录

  • 域中共用的共享文件夹,存放组策略数据、脚本和配置文件
  • 路径:\\<domain>\SYSVOL\<domain>\Policies\
  • 所有域用户默认具有读取权限

NETLOGON目录

  • SYSVOL的子目录,主要存放脚本信息
  • 路径:SYSVOL\domain\SCRIPTS

0x02 组策略首选项(GPP)安全风险

2.1 GPP功能概述

GPP提供自动化机制管理以下配置:

  • 映射驱动(Drives.xml)
  • 创建本地用户
  • 数据源(DataSources.xml)
  • 打印机配置(Printers.xml)
  • 创建/更新服务(Services.xml)
  • 计划任务(ScheduledTasks.xml)
  • 更改本地Administrator密码

2.2 GPP凭据存储漏洞

  • 漏洞本质:GPP将密码以AES-256加密存储在XML文件中,但微软公开了加密密钥
  • 影响范围:Windows Server 2008未打补丁版本
  • 关键文件:包含cpassword属性的XML文件

2.3 漏洞利用方法

2.3.1 手动查找与解密

  1. 搜索包含cpassword的XML文件:

    dir /s /a \\DC\SYSVOL\*.xml
    
  2. 使用解密工具:

    • Ruby脚本gppdecrypt.rb
    • Python脚本Gpprefdecrypt.py

2.3.2 自动化工具利用

使用PowerShell脚本Get-GPPPassword.ps1

powershell-import Get-GPPPassword.ps1
powershell Get-GPPPassword

0x03 组策略渗透实战

3.1 本地组策略后门

  1. 执行gpedit.msc打开本地组策略编辑器
  2. 路径:计算机配置 > Windows设置 > 脚本(启动/关机)
  3. 将后门程序放入:
    C:\Windows\System32\GroupPolicy\Machine\Scripts\Startup
    
  4. 重启后以SYSTEM权限执行

3.2 域组策略利用

3.2.1 密码脚本收集

  • 搜索SYSVOL下的脚本文件:
    for /r \\dc\sysvol %i in (*.vbs) do @echo %i
    for /r \\dc\sysvol %i in (*.bat) do @echo %i
    

3.2.2 针对性GPP搜索

使用PowerView收集信息:

# 查看域内共享
Get-DomainComputer | Get-Netshare

# 查看域用户信息
Get-DomainUser -identity username

# 查看OU组信息
Get-DomainOU -identity OUName

3.2.3 组策略后门植入

  1. 直接方式

    • 在组策略的启动/关闭脚本中直接放置木马
    • 链接到目标OU实现定向打击
  2. 计划任务方式

    • 使用New-GPOImmediateTask.ps1脚本
    New-GPOImmediateTask -TaskName Debugging -GPODisplayName TestGPO -SysPath '\\dc\sysvol\test1.local' -CommandArguments '-c "123 | Out-File C:\test\debug.txt"'
    
    • 强制更新组策略:
    Invoke-GPUpdate -Computer "TEST\COMPUTER-01"
    
    • 清理痕迹:
    Remove-GPO -Name TestGPO
    

0x04 防御建议

  1. 修复GPP漏洞

    • 安装KB2962486补丁
    • 删除SYSVOL中包含密码的XML文件
  2. 替代方案

    • 使用LAPS(本地管理员密码解决方案)管理本地管理员密码
  3. 权限控制

    • 限制对SYSVOL目录的访问权限
    • 避免在脚本中存储明文密码
  4. 监控措施

    • 监控组策略的异常修改
    • 审计计划任务的创建和修改

0x05 总结

组策略和GPP在域渗透中提供了多种攻击途径,特别是:

  1. 通过SYSVOL共享获取敏感信息
  2. 利用GPP凭据存储漏洞解密密码
  3. 通过组策略部署后门实现持久化

渗透测试人员应熟练掌握这些技术,而防御方则需要采取相应措施消除这些安全隐患。

域渗透中的组策略及GPP运用深度解析 0x00 前言 组策略(Group Policy)是Windows域环境中重要的管理工具,同时也是渗透测试中极具价值的攻击面。本文将全面剖析组策略在域渗透中的应用,特别是组策略首选项(GPP)的安全问题及其利用方法。 0x01 组策略基础认知 1.1 组策略定义与作用 组策略是微软Windows NT家族操作系统的特性,用于集中管理用户和计算机的工作环境。主要功能包括: 控制操作系统、应用程序和活动目录中的用户设置 实现配置的集中化管理 批量应用策略设置到多台计算机 1.2 组策略分类 1.2.1 本地组策略(LGP) 面向独立非域计算机 从Windows Vista开始支持对单个用户和组的管理 可通过"GPO Packs"在独立计算机间备份、导入和导出策略 1.2.2 域组策略 通过组策略管理控制台统一管理域内机器和用户 默认包含两个组策略对象: Default Domain Policy:设置密码过期等安全策略 Default Domain Controllers Policy:管理域控制器 1.3 关键目录结构 SYSVOL目录 域中共用的共享文件夹,存放组策略数据、脚本和配置文件 路径: \\<domain>\SYSVOL\<domain>\Policies\ 所有域用户默认具有读取权限 NETLOGON目录 SYSVOL的子目录,主要存放脚本信息 路径: SYSVOL\domain\SCRIPTS 0x02 组策略首选项(GPP)安全风险 2.1 GPP功能概述 GPP提供自动化机制管理以下配置: 映射驱动(Drives.xml) 创建本地用户 数据源(DataSources.xml) 打印机配置(Printers.xml) 创建/更新服务(Services.xml) 计划任务(ScheduledTasks.xml) 更改本地Administrator密码 2.2 GPP凭据存储漏洞 漏洞本质 :GPP将密码以AES-256加密存储在XML文件中,但微软公开了加密密钥 影响范围 :Windows Server 2008未打补丁版本 关键文件 :包含 cpassword 属性的XML文件 2.3 漏洞利用方法 2.3.1 手动查找与解密 搜索包含 cpassword 的XML文件: 使用解密工具: Ruby脚本 gppdecrypt.rb Python脚本 Gpprefdecrypt.py 2.3.2 自动化工具利用 使用PowerShell脚本 Get-GPPPassword.ps1 : 0x03 组策略渗透实战 3.1 本地组策略后门 执行 gpedit.msc 打开本地组策略编辑器 路径: 计算机配置 > Windows设置 > 脚本(启动/关机) 将后门程序放入: 重启后以SYSTEM权限执行 3.2 域组策略利用 3.2.1 密码脚本收集 搜索SYSVOL下的脚本文件: 3.2.2 针对性GPP搜索 使用PowerView收集信息: 3.2.3 组策略后门植入 直接方式 : 在组策略的启动/关闭脚本中直接放置木马 链接到目标OU实现定向打击 计划任务方式 : 使用 New-GPOImmediateTask.ps1 脚本 强制更新组策略: 清理痕迹: 0x04 防御建议 修复GPP漏洞 : 安装KB2962486补丁 删除SYSVOL中包含密码的XML文件 替代方案 : 使用LAPS(本地管理员密码解决方案)管理本地管理员密码 权限控制 : 限制对SYSVOL目录的访问权限 避免在脚本中存储明文密码 监控措施 : 监控组策略的异常修改 审计计划任务的创建和修改 0x05 总结 组策略和GPP在域渗透中提供了多种攻击途径,特别是: 通过SYSVOL共享获取敏感信息 利用GPP凭据存储漏洞解密密码 通过组策略部署后门实现持久化 渗透测试人员应熟练掌握这些技术,而防御方则需要采取相应措施消除这些安全隐患。