浅谈域渗透中的组策略及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 手动查找与解密
-
搜索包含
cpassword的XML文件:dir /s /a \\DC\SYSVOL\*.xml -
使用解密工具:
- Ruby脚本
gppdecrypt.rb - Python脚本
Gpprefdecrypt.py
- Ruby脚本
2.3.2 自动化工具利用
使用PowerShell脚本Get-GPPPassword.ps1:
powershell-import Get-GPPPassword.ps1
powershell Get-GPPPassword
0x03 组策略渗透实战
3.1 本地组策略后门
- 执行
gpedit.msc打开本地组策略编辑器 - 路径:
计算机配置 > Windows设置 > 脚本(启动/关机) - 将后门程序放入:
C:\Windows\System32\GroupPolicy\Machine\Scripts\Startup - 重启后以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 组策略后门植入
-
直接方式:
- 在组策略的启动/关闭脚本中直接放置木马
- 链接到目标OU实现定向打击
-
计划任务方式:
- 使用
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 防御建议
-
修复GPP漏洞:
- 安装KB2962486补丁
- 删除SYSVOL中包含密码的XML文件
-
替代方案:
- 使用LAPS(本地管理员密码解决方案)管理本地管理员密码
-
权限控制:
- 限制对SYSVOL目录的访问权限
- 避免在脚本中存储明文密码
-
监控措施:
- 监控组策略的异常修改
- 审计计划任务的创建和修改
0x05 总结
组策略和GPP在域渗透中提供了多种攻击途径,特别是:
- 通过SYSVOL共享获取敏感信息
- 利用GPP凭据存储漏洞解密密码
- 通过组策略部署后门实现持久化
渗透测试人员应熟练掌握这些技术,而防御方则需要采取相应措施消除这些安全隐患。