点击上方“蓝字”,关注更多精彩
0x00 前言
这次来说一个简单的漏洞,而且是十分容易被我们忽略的一个漏洞。如果不加防护,在某种情况下,可以轻易地获取到域控的账号以及明文密码。
域组策略中,存在两个共享目录,一个是SYSVOL
,另一个是Netlogon
。
0x01 一些概念
SYSVOL目录概述
1、SYSVOL
是活动目录里面的一个用于存储公共文件服务器副本的共享文件夹,在域中的所有域控制器之间进行复制。
2、SYSVOL
文件夹是在安装活动目录时自动创建的,主要用来存放登录脚本,组策略数据以及其他域控所需要的域信息等。
3、整个SYSVOL
目录在所有的域控中是自动同步和分享的,所有组策略存放在C:windowsSYSVOLdomainpolicies
目录之中。
4、为了保证系统的正常运行,必须为SYSVOL
保留足够的空间缓存,而且不能随意删除、改动该文件夹,要不然会出现一些组策略无法启用等报错信息。
NETLOGON目录
挂载点:SYSVOLdomainSCRIPTS
主要存放的是一些脚本信息,是AD
活动目录安装时候自动创建的,是在sysvol
下面的一个子目录文件夹
组策略对象: GPO(Group Policy Object)
实际上就是组策略设置的集合,可以用GPO
来存储不同的组策略信息,然后在指定OU
或者指定作用范围中发挥作用。
默认安装完AD之后,系统默认会存在两个组策略对象。打开终端输入此命令:gpmc.msc
即可打开组策略管理器。
或者在服务器管理中打开
打开后我们看到有默认两个GPO,这两个GPO是安装完域环境后自带的。每一个GPO都有自己唯一的ID值(UID),但是这两个GPO的ID值是固定的,不管你是在哪里安装的域,都是一样。
两个默认GPO路径在C:WindowsSYSVOLdomainPolicies
下
这个文件夹里面都有什么?既然这个文件夹是GPO也就是组策略的集合,那么里面肯定是组策略相关的各种配置文件,其中.xml
文件需要我们特别注意下。
0x02 Gpp密码泄露攻击(Exploiting Group Policy Preferences)
漏洞概述
前提:域环境中使用了GPO,并且GPO中创建了某些用户或者计划任务等需要输入账密的功能。
过程:如果被黑客黑入任何一台域成员机器,即可通过SMB服务、注册表来查看域控共享目录SYSVOL
中的内容。其中的*.xml
文件存放了相关账号密码的信息,账号是明文,密码则是AES加密,自从微软公开了AES秘钥后即可轻易破解。
破解方法
1、kali自带gpp-decrypt
工具
2、python | ruby | powershell 脚本破解
具体如何破解见下文。
环境搭建
可以明确一点,windows 2008如果没有补丁是一定存在这个漏洞的。下面用windows server2012来演示,2012已经存在风险提示了。
域控机器windows server 2012 域成员机器 windows7
域环境搭建比较简单,这里不再赘述。主要看如何才能产生组策略中的*.xml
文件。
1、命令行输入gpmc.msc
后,在这里点击编辑。
2、在控制面板设置下的本地用户和组,按照下图所示操作:
3、也可以在计划任务这里,设置运行身份,也会存在有关的账号密码,也会提示有风险,截图这里没有展示哈。我这里输入域控的账号密码。
漏洞复现
方式一:终端手动遍历
域成员机器上直接找到对应目录遍历出来就行了。实战环境下可以通过开启3389,或者直接在终端中遍历。
随后使用kali自带的gpp-decrypt
工具解密即可。
或者直接使用下面这个命令,就能快速找到。
#findstr /s /I cpassword \域控机器名SYSVOL域名policies*.xml
findstr /s /I cpassword \DC2012SYSVOLjntm.ngmpolicies*.xml
方式二:MSF自带的模块进行遍历和解密
现在假设一台域成员机器已经被MSF上线
search gpp
use 3
options
set session 2
run
gpp.rb 脚本内容浅析
我们可以看一下MSF这个脚本做了哪些操作,脚本路径:/usr/share/metasploit-framework/modules/post/windows/gather/credential/gpp.rb
。从脚本可以看到,从445的SMB服务,遍历出下面这些文件的位置并通过正则匹配到AES加密内容。
有时候域环境中,机器存在脱域等错误情况,导致访问不到网络路径,那么MSF这里的脚本是通过查看注册表缓存,从而找到文件的。
综上获取到了域控的账号密码后,后面的渗透就简单了。
0x03 对于针对组策略首选项提权的防御:
1.安装KB2962486补丁,使用的方法是不将密码保存在组策略首选项中
2.设置共享文件夹SYSVOL的访问权限
3.将包含在组策略密码的XML文件从SYSVOL文件中删除
4.建议使用LAPS修改域机器中本地管理员密码
0x04 References
https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-gppref/2c15cbf0-f086-4c74-8b70-1f2fa45dd4be?redirectedfrom=MSDN#endNote2
https://www.secpulse.com/archives/42175.html
往期推荐
CVE-2021-4034 Linux Polkit本地提权漏洞
CVE-2021-31760 Webmin CSRF致使RCE
CVE-2022-22965 Spring core RCE漏洞
CVE-2020-1472 ZeroLogon漏洞复现利用(Netlogon域提权)
郑重声明:该公众号大部分文章来自作者日常工作与学习笔记,也有少数文章是经过原作者授权转载而来,未经授权,严禁转载。如需要,请公众号私信联系作者。
请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与原作者以及本公众号无关。
原文始发于微信公众号(HACK技术沉淀营):内网渗透 | 组策略GPP密码泄露
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论