Hardie 在线博客

  • 实用技巧
  • 未来科技
  • 企业级应用
  • 漫谈安全
  • 生活日志
  • 关于我
Hardie 在线博客
这是一个有节操的网站,用知识捍卫自己的节操
  1. 首页
  2. 漫谈安全
  3. 正文

寻找SYSVOL里的密码和攻击GPP(组策略偏好)

2016年1月6日 0人点赞 0条评论

在2015年的黑帽大会和DEFCON上,我曾谈过黑客会如何从域用户提权到域管理。

密码的难题

每台Windows主机有一个内置的Administrator账户以及相关联的密码。大多数组织机构为了安全,可能都会要求更改密码,虽然这种方法的效果并不尽如人意。标准的做法是利用组策略去批量设置工作站的本地Administrator密码。但是这样又会出现另一个问题,那就是所有的电脑都会有相同的本地Administrator密码。也就是说,如果获取了一个系统的Administrator认证凭据,黑客就可以获取他们所有机器的管理权限。

SYSVOL

解决办法之一是为认证数据采取SYSVOL,SYSVOL是AD(活动目录)里面一个存储域公共文件服务器副本的共享文件夹,所有的认证用户都可以读取。SYSVOL包括登录脚本,组策略数据,以及其他域控所需要的域数据,这是因为SYSVOL能在所有域控里进行自动同步和共享。

所有的域组策略存储在:

\\<DOMAIN>\SYSVOL\<DOMAIN>\Policies\

SYSVOL里的认证

在windows电脑中,管理需要花心思去保证本地Administrator账户(RID 500)。传统的做法(除了购买安全产品),是使用一个自定义的脚本去更改本地Administrator的密码。这样就会出现一个问题,密码肯定会明文存储在SYSVOL的脚本里(比如vbs文件)。比如黑客需要搜寻用来更改本地Administrator密码的VBS脚本,该vbs脚本在Microsoft TechNet gallery上,密码为可见的。这个脚本存在SYSVOL里,每个域用户都有读的权限,且该密码是每台电脑组策略应用的本地Administrator密码。

请不要用这个脚本修改本地Administrator密码。

组策略偏好GPP

在2006年,微软收购了桌面标准的“PolicyMaker”,并重新借此与win2008发布了GPP(组策略偏好)。其中GPP最有用的特性,是在某些场景存储和使用凭据,其中包括:

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

这对管理员非常有用,因为GPP提供了一个自动化机制,可以作为急需的解决方案(比如脚本)给他们。它提供了有效的方法,利用显式凭据结合组策略部署了计划任务,一次性批量更改了电脑的本地管理的密码,也许这就是最受欢迎的利用场景吧。

GPP中存储的凭据

然而现在有个问题,凭据数据应该怎样保护?

当管理创建了一个新的GPP时,SYSVOL里有一个XML文件提供了相关配置数据。如果里面提供了密码的话,那应该就是AES-256加密,看起来这加密似乎是够强力了。

然而除了在2012年前的某些点外,微软在MSDN上发布了AES的私钥,它可以用来解密这种密码。因为认证用户(所有域用户或者信任域里的用户)对SYSVOL拥有读权限。在域里的任何用户可以搜索SYSVOL共享中的带有cpassword字样的XML文件,里面包含了AES加密的密码。

攻击GPP

当黑客可以访问XML文件时,他能利用AES私钥解密GPP密码。PowerSploit函数Get-GPPPassword对GPP解密会很有帮助。下面的截图,则展示了一个简单的PowerShell函数解密GPP密码的命令(从上述的XML文件里找到的)。

据我所知,GPP凭据问题最早由Emilien Gauralt在他2012年1月的文章《Exploiting Windows 2008 Group Policy Preferences》提出。悲催的是,现在文章链接挂了,里面的内容也没了。在2012年5月,Chris Campbell又写了篇文章《GPP Password Retrieval with PowerShell》,并在里面提出了攻击该密码漏洞的第一段PowerShell代码。并且Chris后来还更新了这段代码,将Get-GPPPassword加入PowerSploit。在2012年6月,Rewt dance写了一篇文《a GPP exploitation expanded reference》,而现在链接已经挂了,这里提供一下Google缓存。此外我还找到篇Alexandre Herzog在2012年4月写的文章《Exploit credentials stored in Windows Group Policy Preferences》。

我已经在文章里讨论过关于GPP凭据的问题和GPP补丁(KB2962486)。

让我们继续在SYSVOL里的组策略XML文件翻找管理凭据(包括域管理凭证),特别是在管理账户环境下运行的计划任务。

GPP凭证补丁(KB2962486)

2014年5月13日,微软发布了MS14-025的补丁KB2962486,即那个GPP导致的权限提升漏洞。这个补丁需要安装在所有使用了RSAT的系统上,防止管理将密码数据放进GPP里。

注意,现在带密码的那些GPP文件还没有从SYSVOL里移除。

GPP利用检查

XML权限拒绝检查:

把新的xml文件放到SYSVOL里,设置拒绝Everyone。
审计访问拒绝错误
如果相关的GPO不存在,那就没有访问的合法原因。

GPP问题的缓解

在每台用于管理GPO的电脑上安装KB2962486补丁,这样会避免新的凭据放进GPP里。
删除现有的GPP里包含密码的xml文件。

微软本地Administrator密码解决方案(LAPS)

微软提供的最好的更改本地Administrator密码的方法,就是本地Administrator密码解决方案(LAPS)。

标签: 暂无
最后更新:2016年1月6日

Hardie

打赏 点赞
下一篇:[收藏]社会工程学三部曲

相关文章

  • 升级到Windows11后聊天软件崩溃的问题
  • 你会滚铁环吗
  • 你得学会几招保护自己-现在还有隐私吗

文章评论

取消回复

最新 热点 随机
最新 热点 随机
关于学习的方法论 实用技巧-文件管理之道 快速搭建WSL开发环境 升级到Windows11后聊天软件崩溃的问题 通勤的改变会给我们的生活带来什么 解浏览器-Edge使用技巧
多少人跳过橡皮筋 【专题】一步一步实施itop项目之用户手册(4.配置管理) 儿时捅过马蜂窝吧 【专题】一步一步实施ITOP(手册)-用户门户 快速搭建WSL开发环境 转发一篇文章[远离你身边低层次的圈子]
最近评论
yongyu 发布于 4 年前(01月02日) 请问一下怎更改登录机制,让用户登录的时候默认登录到前台而非后台。
yzzz 发布于 4 年前(11月26日) 为啥我是管理员用户,登录直接就进后台了,如何切换前台查看工单呀
lois 发布于 4 年前(11月26日) 请问工单可以自动分配么
Mirror 发布于 4 年前(10月25日) 请问我使用的是Itop 2.7版本登录门户用户就报错Nowhere to go?麻烦帮忙看下啥问题可...
liu 发布于 4 年前(09月26日) service desk agent 和support agent角色区别是什么啊
           

  • Hardie在线 All rights reserved
  • 首页
  • ITOP专题
  • 更新日志
  • 留言板
  • 关于我
  • 本站由[阿里云]提供ECS
粤ICP备16042250号-1