管理员在域中新建一个组策略后,操作系统会自动在SYSVO共享目录中生成一个XML文件,即Groups.xml,该文件中保存了该组策略更新后的密码。

1. 组策略基本介绍

组策略可以控制用户帐户和计算机帐户的工作环境。它提供了操作系统、应用程序和活动目录中用户设置的集中化管理和配置。有本机组策略和域的组策略。本机组策略用于计算机管理员统一管理本机以及所有用户,域内的组策略用于域管统一管理域内的所有计算机以及域用户。 在本文中侧重点讲的是域内的组策略,借机学一下域环境搭建

2. SYSVOL 漏洞(MS14-025)

SYSVOL是活动目录里面的一个用于存储域公共文件服务器副本的共享文件夹,在域中的所有域控制器之间进行复制。SYSVOL 文件夹是在安装活动目录时自动创建的,主要用来存放登录脚本、组策略数据及其他域控制器需要的域信息等。SYSVOL 在所有经过身份验证的域用户或者域信任用户具有读权限的活动目录的域范围内共享。整个SYSvOL 目录在所有的域控制器中是自动同步和共享的,所有的域策略均存放在C:\Windows\SYSVOL\DOMAIN\Policies 目录中。

在一般的域环境中,所有机器都是脚本化批量部署的,数据量通常很大。为了方便地对所有的机器进行操作,网络管理员往往会使用域策略进行统一的配置和管理。大多数组织在创建域环境后,会要求加人域的计算机使用域用户密码进行登录验证。为了保证本地管理员密码的安全性,这些组织的网络管理员往往会修改本地管理员密码。但是当通过组策略统一修改密码,虽然密码强度会有所提高,这就造成了所有机器的本地管理员密码是相同的。攻击者获得了一台机器的本地管理员密码,就相当于获得了整个域中所有机器的本地管理员密码。

在域中,存在一个默认的共享路径:

1
\\<DOMAIN>\SYSVOL\<DOMAIN>\

所有域内主机都能访问,里面保存组策略相关数据,包含登录脚本配置文件等。

例如,测试主机所在域为test.yhy,可访问共享文件夹\\test.yhy\SYSVOL\test.yhy,如下图:

image-20210116111851931

在早期的版本,某些组策略首选项可以存储加密过的密码,加密方式为AES 256,虽然目前AES 256很难被攻破,但是微软选择公开了私钥,地址: https://msdn.microsoft.com/en-us/library/cc422924.aspx。

![image-20210116111342068](/Users/yhy/Library/Application Support/typora-user-images/image-20210116111342068.png)

如下几个组策略首选项文件中会存在可选的密码cpassword 属性:

  • Groups\Groupsx.xml

  • Services\Services.xml

  • ScheduledTasks\ScheduledTasks.xml

  • Printers\Printers.xml

  • Drives\Drives.xml

  • DataSources\DataSources.xml

3. 漏洞复现

3.1 域环境搭建

3.1.1 环境要求

环境:Windows Server 2008R2

网络:NAT模式

image-20210116112955314

更改管理员Administrator 密码为强密码,例如:test.yhy@123

image-20210116114025566

3.1.2 添加域

点击左下角开始按钮旁边的服务器管理器,角色 —> 添加角色

image-20210116112445745

选中 Active Directory 域服务

image-20210116113323735

一直下一步,安装即可

image-20210116113443897

关闭后,打开“服务器管理器”,找到Active Directory安装向导

image-20210116113523528

image-20210116113639168

image-20210116114315069

因为前面没配置静态IP(前面应该配置为静态IP的,不过这个环境无所谓了),这里选择是:

image-20210116114528206

image-20210116114630800

点击是,下一步,设置密码:test.yhy@123

image-20210116114714649

一直下一步,等待安装

image-20210116114816453

image-20210116114855068

完成,重启。

测试一下:net user /domain, ok

image-20210116115925975

3.1.3安装FTP服务

虚拟机不知道为啥装不上VMware Tools,没办法拖文件,这里打开FTP服务,使用FTP上传文件。

还是点击左下角开始按钮旁边的服务器管理器,角色 —> 添加角色

image-20210116120244713

选择Web服务(IIS),下一步,最下边选择FTP服务器

image-20210116120911584

一直下一步,安装

image-20210116120952490

完成后,点击开始按钮,所有程序 —> 管理工具 —> Internet 信息服务(IIS)管理器

image-20210116120424350

右键添加FTP站点

image-20210116122419671

站点名称随意,物理路径,这里选择了C盘下新建文件夹,

image-20210116123005662

image-20210116123140690

image-20210116123215490

然后完成即可, 这时候使用FTP连接工具即可,连不上通过控制面板,关闭防火墙即可

image-20210116123531384

3.2 创建组策略,批量修改域中机器的本地管理员密码

3.2.1创建组策略

Win + R 打开运行 ,输入gpmc.msc ,进入组策略管理。

image-20210116124142601 右击组策略 —> 新建:

image-20210116124834370

右击test(刚刚创建好的组策略对象)–>编辑,来到如下位置:

image-20210116124949983

右击本地用户和组–>新建–>本地用户

image-20210116125418016

其中设置的密码为hackyhy.123

回到组策略管理,设置组策略的对象,添加Domain Computers到组策略组中:

image-20210116125705664

查看组策略对象test的详细信息:

image-20210116125821832

至此,组策略配置完成,域内主机重新登录。

管理员在域中新建一个组策略后,操作系统会自动在SYSVO共享目录中生成一个XML文件,即Groups.xml,该文件中保存了该组策略更新后的密码。

根据test的ID 去访问 \\test.yhy\SYSVOL\test.yhy\Policies 或者本地的C:\Windows\SYSVOL\domain\Policies相对应的策略。

image-20210116130016932

打开,访问\Machine\Preferences\Groups,找到文件Groups.xml

image-20210116130711551

其中的关注点为cpassword: fjomcrwPmyEFuKDFM1WGGDUe8Ap1iGL/RsEuyDABYBI

3.2.2 漏洞利用

介绍两种简单的利用方式

  • Kali 下,将cpassword 字段复制到kali中,使用gpp-decrypt 进行破解

img

  • msf 模块

    使用msf后渗透模块

    run post/windows/gather/credentials/gpp

    当拿到目标的session后(这里直接将msf生成的马,通过ftp上传,并执行)

image-20210116134115737

4. 组策略首选项提权的防御措施

在用于管理组策略的计算机上安装 KB2962486补丁,防止新的凭据被放置在组策略首选项中。微软在2014年修复了组策略首选项提权漏洞,使用的方法就是不再将密码保存在组策略首选项中。

此外,针对Everyone访问权限进行设置,具体如下:

  1. 设置共享文件夹SYSVOL的访问权限
  2. 将包含组策略密码的 XML 文件从 SYSVOL 目录中删除s
  3. 不要把密码放在所有域用户都有权访问的文件中
  4. 如果需要更改域中机器的本地管理员密码,建议使用LAPS