内网渗透 | 组策略GPP密码泄露

admin 2023年3月8日22:55:57评论100 views字数 2704阅读9分0秒阅读模式
内网渗透 | 组策略GPP密码泄露

点击上方“蓝字”,关注更多精彩

0x00 前言

这次来说一个简单的漏洞,而且是十分容易被我们忽略的一个漏洞。如果不加防护,在某种情况下,可以轻易地获取到域控的账号以及明文密码。

域组策略中,存在两个共享目录,一个是SYSVOL,另一个是Netlogon

0x01 一些概念

SYSVOL目录概述

1、SYSVOL是活动目录里面的一个用于存储公共文件服务器副本的共享文件夹,在域中的所有域控制器之间进行复制。

2、SYSVOL文件夹是在安装活动目录时自动创建的,主要用来存放登录脚本,组策略数据以及其他域控所需要的域信息等。

3、整个SYSVOL目录在所有的域控中是自动同步和分享的,所有组策略存放在C:windowsSYSVOLdomainpolicies 目录之中。

4、为了保证系统的正常运行,必须为SYSVOL保留足够的空间缓存,而且不能随意删除、改动该文件夹,要不然会出现一些组策略无法启用等报错信息。

内网渗透 | 组策略GPP密码泄露

NETLOGON目录

挂载点:SYSVOLdomainSCRIPTS 主要存放的是一些脚本信息,是AD活动目录安装时候自动创建的,是在sysvol下面的一个子目录文件夹

组策略对象: GPO(Group Policy Object)

实际上就是组策略设置的集合,可以用GPO来存储不同的组策略信息,然后在指定OU或者指定作用范围中发挥作用。

默认安装完AD之后,系统默认会存在两个组策略对象。打开终端输入此命令:gpmc.msc即可打开组策略管理器。

内网渗透 | 组策略GPP密码泄露

或者在服务器管理中打开

内网渗透 | 组策略GPP密码泄露

打开后我们看到有默认两个GPO,这两个GPO是安装完域环境后自带的。每一个GPO都有自己唯一的ID值(UID),但是这两个GPO的ID值是固定的,不管你是在哪里安装的域,都是一样。

内网渗透 | 组策略GPP密码泄露

两个默认GPO路径在C:WindowsSYSVOLdomainPolicies

内网渗透 | 组策略GPP密码泄露

这个文件夹里面都有什么?既然这个文件夹是GPO也就是组策略的集合,那么里面肯定是组策略相关的各种配置文件,其中.xml文件需要我们特别注意下。

0x02 Gpp密码泄露攻击(Exploiting Group Policy Preferences)

漏洞概述

前提:域环境中使用了GPO,并且GPO中创建了某些用户或者计划任务等需要输入账密的功能。

过程:如果被黑客黑入任何一台域成员机器,即可通过SMB服务、注册表来查看域控共享目录SYSVOL中的内容。其中的*.xml文件存放了相关账号密码的信息,账号是明文,密码则是AES加密,自从微软公开了AES秘钥后即可轻易破解。

内网渗透 | 组策略GPP密码泄露
内网渗透 | 组策略GPP密码泄露

破解方法

1、kali自带gpp-decrypt工具

2、python | ruby | powershell 脚本破解

具体如何破解见下文。

环境搭建

可以明确一点,windows 2008如果没有补丁是一定存在这个漏洞的。下面用windows server2012来演示,2012已经存在风险提示了。

域控机器windows server 2012 域成员机器 windows7

域环境搭建比较简单,这里不再赘述。主要看如何才能产生组策略中的*.xml文件。

1、命令行输入gpmc.msc后,在这里点击编辑。

内网渗透 | 组策略GPP密码泄露

2、在控制面板设置下的本地用户和组,按照下图所示操作:

内网渗透 | 组策略GPP密码泄露

3、也可以在计划任务这里,设置运行身份,也会存在有关的账号密码,也会提示有风险,截图这里没有展示哈。我这里输入域控的账号密码。

内网渗透 | 组策略GPP密码泄露

漏洞复现

方式一:终端手动遍历

域成员机器上直接找到对应目录遍历出来就行了。实战环境下可以通过开启3389,或者直接在终端中遍历。

随后使用kali自带的gpp-decrypt工具解密即可。

内网渗透 | 组策略GPP密码泄露
内网渗透 | 组策略GPP密码泄露

或者直接使用下面这个命令,就能快速找到。

#findstr /s /I cpassword \域控机器名SYSVOL域名policies*.xml
findstr /s /I cpassword \DC2012SYSVOLjntm.ngmpolicies*.xml
内网渗透 | 组策略GPP密码泄露

方式二:MSF自带的模块进行遍历和解密

现在假设一台域成员机器已经被MSF上线

search gpp
use 3 
options
set session 2
run
内网渗透 | 组策略GPP密码泄露

gpp.rb 脚本内容浅析

我们可以看一下MSF这个脚本做了哪些操作,脚本路径:/usr/share/metasploit-framework/modules/post/windows/gather/credential/gpp.rb。从脚本可以看到,从445的SMB服务,遍历出下面这些文件的位置并通过正则匹配到AES加密内容。

内网渗透 | 组策略GPP密码泄露
内网渗透 | 组策略GPP密码泄露

有时候域环境中,机器存在脱域等错误情况,导致访问不到网络路径,那么MSF这里的脚本是通过查看注册表缓存,从而找到文件的。

内网渗透 | 组策略GPP密码泄露

综上获取到了域控的账号密码后,后面的渗透就简单了。

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


内网渗透 | 组策略GPP密码泄露


往期推荐

实战经验 | 解决ssh链接VPS掉线问题

内网渗透 | 文件共享服务与ipc横向详解

内网渗透 | JS脚本下载payload与代码分析

内网渗透 | 内网隐藏技术之我见

红队建设 | 入侵痕迹抹除

红队建设 | 网络钓鱼技术

红队建设 |  流量加密

红队建设 | certutil详解

每日技巧05 | VM16安装macOS

Clash RCE漏洞复现与高级利用(配合社工)

CVE-2021-4034 Linux Polkit本地提权漏洞

CVE-2021-31760 Webmin CSRF致使RCE

CVE-2022-22965 Spring core RCE漏洞

            CVE-2020-1472 ZeroLogon漏洞复现利用(Netlogon域提权)

郑重声明该公众号大部分文章来自作者日常工作与学习笔记,也有少数文章是经过原作者授权转载而来,未经授权,严禁转载。如需要,请公众号私信联系作者。

请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与原作者以及本公众号无关。

内网渗透 | 组策略GPP密码泄露
内网渗透 | 组策略GPP密码泄露
扫码关注
人若无名便可潜心练剑
专注渗透测试、工具开发

原文始发于微信公众号(HACK技术沉淀营):内网渗透 | 组策略GPP密码泄露

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年3月8日22:55:57
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   内网渗透 | 组策略GPP密码泄露https://cn-sec.com/archives/1239105.html

发表评论

匿名网友 填写信息