GPP基础知识
组策略首选项
GPP 是 “Group Policy Preference”(组策略首选项)的缩写。组策略首选项是微软Windows操作系统中的一种功能,它允许管理员为用户和计算机定义和管理配置设置,这些设置可以通过组策略在域环境中进行集中管理。
组策略首选项包括以下几类设置:
- 软件设置:允许管理员指定软件安装的配置,包括强制安装、可用安装和更新。
- 桌面设置:管理用户的桌面环境,如屏幕保护程序、壁纸、任务栏设置等。
- 网络设置:配置网络相关的设置,例如网络驱动器映射、网络路径等。
- 安全设置:定义安全策略,如密码策略、账户锁定策略、Kerberos策略等。
- 用户配置文件设置:管理用户配置文件的属性,如漫游配置文件、本地配置文件等。
- 注册表设置:允许管理员通过组策略修改注册表项。
SYSVOL文件夹
SYSVOL是AD域中一个用于存储域中公共文件服务器副本的共享文件夹,在域中的所有域控制器之间进行备份。SYSVOL文件夹在安装Activi Directory时自动创建的。主要用于存储与域相关的数据,包括但不限于组策略设置、登录脚本等。以下是关于SYSVOL文件夹的一些关键点:
- 共享设置存储:SYSVOL文件夹包含了共享的设置,例如DNS配置、域安全策略等 。
- 组策略对象(GPO):存放用于控制用户和计算机行为的组策略对象 。
- 脚本存储:SYSVOL还存储了可以用于自动执行任务的脚本 。
- 域控制器间复制:如果域内部署了多台域控制器,它们之间通过文件复制服务(FRS)或分布式文件系统复制(DFS-R)服务相互复制SYSVOL文件夹中的数据 。
- 结构组成:SYSVOL文件夹包含
Domain
文件夹,用于存储策略实体、策略和脚本;以及Staging
交换区域,用于临时存放多台域控制器之间需要同步的数据。 - 重要性:SYSVOL文件夹对于Active Directory的正常运作至关重要,它确保了域策略和登录脚本在所有域控制器上的一致性
GPP提权技术思路
GPP权限提升漏洞原因
GPP提权的场景在于,在正常的工作场景下,域环境下登录域需要使用域用户,域管理为了本地机器的安全就需要对本地管理员用户设置强口令,域管理员又不可能对每一台电脑手动设置本地管理员密码,所以通常会采用域策略的方式设置统一的本地管理员密码,而下发到每台电脑就需要通过SYSVOL共享文件夹,又由于所有机器对该文件夹都有读权限,这样攻击者拿到一台机器后就可以读取SYSVOL文件夹下对应的策略文件,在SYSVOL文件夹下找到包含cpassword的XML文件,该文件中记录了AES-256加密后的密码,不过在2012年微软公布了密钥,这就导致了XML文件中的密码安全性极大降低。
GPP权限提升漏洞利用方式
使用PowerSploit提供的Get-GPPPassword.ps1脚本获取cpassword。
使用MSF中post/windows/gather/credentials/gpp模块可以获取cpassword。
使用Empire中privesc/gpp查找cpassword
除了Groups.xml,还有几个组策略首选项文件中有可选的cpassword熟悉:
- Services\Services.xml
- ScheduledTasks\ScheduledTasks.xml
- Printers\Printers.xml
- Drives\Drives.xml
- DataSources\DataSources.xml
GPP权限提升漏洞及防范
在用于管理组策略的计算机上安装KB2962486补丁
限制SYSVOL文件夹访问权限
把包含组策略密码的XML文件从SYSVOL文件夹中删除
需要管理本地管理员密码时使用LASP