漏洞说明

该漏洞可以允许攻击者将未经授权的域用户账户的权限,提权到域管理员的权限

漏洞原理

Kerberos协议中加入了PAC(Privilege Attribute Certificate特权专属证书),PAC中记录了用户信息以及权限信息,KDCServer依据PAC里的权限信息控制用户的访问。服务票据是客户端直接发送给服务器,并请求服务资源的。如果服务器没有向域控DC验证pac的话,那么客户端可以伪造域管的权限来访问服务器

漏洞利用前提

没有打ms14-068的补丁KB3011780
攻击者拿下了一台域内的普通计算机,并获得普通域用户以及密码/hash值,以及用户的SID

实验环境

域控制器(DC) windows 2012 de1ay.com 10.10.10.10
域成员主机 windows 7 10.10.10.201

漏洞复现

首先在域控制器上使用systeminfo查看是否有ms14-068的补丁KB3011780
1.jpg
回到win7使用whoami /all查询此用户的SID
2.jpg
现在查看一下是否有权限访问域控制器
3.jpg
先将系统已经缓存的kerberos票据清除
6.jpg
因为这台主机已经被拿下,所以可以使用hashdump抓取hash密码或者使用mimikatz抓取明文密码,两种密码都可以作为密码使用,这里就使用明文密码
利用ms14-068.exe提权工具生成伪造的kerberos协议认证证书

MS14-068.exe -u <userName>@<domainName> -p <clearPassword> -s <userSid> -d <domainControlerAddr>

4.jpg
这样在当前目录就生成了一个TGT票据
现在利用mimikatz使用Kerberos::ptc C:\Users\MSSQL\Desktop\TGT_MSSQL@de1ay.com.ccache将生成的TGT票据导入
5.jpg
现在就是域管理员权限可以访问域控了
7.jpg
使用copy命令可以上传文件,使用psexec就能获取到域控制器的shell