GPP是指组策略首选项(Group Policy Preference),GPP通过操作组策略对象GPO(Group Policy Object)对域中的资源进行管理。
为什么会产生GPP漏洞?
每台Windows主机有一个内置的Administrator账户以及相关联的密码。大多数组织机构为了安全,可能都会要求更改密码,虽然这种方法的效果并不尽如人意。标准的做法是利用组策略去批量设置工作站的本地Administrator密码。但是这样又会出现另一个问题,那就是所有的电脑都会有相同的本地Administrator密码。也就是说,如果获取了一个系统的Administrator认证凭据,黑客就可以获取他们所有机器的管理权限。
总结:在域中信息的搜集是相当的重要,原因还是因为管理员的操作问题和相应便捷工具带来的安全问题。
密码更改方式一:SYSVOL
SYSVOL是AD(活动目录)里面一个存储域公共文件服务器副本的共享文件夹,所有的认证用户都可以读取。SYSVOL包括登录脚本,组策略数据,以及其他域控所需要的域数据。
默认路径为:
代码语言:javascript复制\<DOMAIN>SYSVOL<DOMAIN>Policies
然后之前的人,常常使用vbs来更改密码,而vbs又是明文密码存储,加上路径域内可随意访问,也就导致了信息漏洞的存在。
密码更改方式二:Group Policy Preferences
在2006年,微软收购了桌面标准的“PolicyMaker”,并重新借此与win2008发布了GPP(组策略偏好)。其中GPP最有用的特性,是在某些场景存储和使用凭据,其中包括:
代码语言:javascript复制映射驱动(Drives.xml)
创建本地用户
数据源(DataSources.xml)
打印机配置(Printers.xml)
创建/更新服务(Services.xml)
计划任务(ScheduledTasks.xml)
更改本地Administrator密码
在Group Policy Preferences,选中你的域。右键选择在这个域中创建GPO并在此处链接
随意设置一个名称
然后依次选择:设置-右键-编辑-用户配置-首选项-控制面板设置-本地用户和组
然后,右键选择新用户,对用户密码进行更改
设置后,可以在详细哪里,看到这次组策略的ID
然后回到之前说的那个路径,加上id\UserPreferencesGroups
得到更改的xml文件。
其中的cpassword项,保存的是加密后的内容,加密方式为AES 256,虽然目前AES 256很难被攻破,但是微软选择公开了该AES 256加密的私钥,地址如下:
借助该私钥,我们就能还原出明文
攻击方法
因为我们知道了,密码是可以被破解的,那么直接拿来破解不久完事了。。。
除了这个之外呢,我们也可以使用powersploit套件里面的Get-GPPPassword.ps1进行域内尝试。
果有密码就会直接显示出来。
防御
关于这个漏洞,微软给出来了相关的补丁KB2962486,安装后则无法输入密码,2012系统默认集成。
参考文章:
https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-gppref/2c15cbf0-f086-4c74-8b70-1f2fa45dd4be?redirectedfrom=MSDN