漏洞编号MS14-068的漏洞,将允许任意用户提升到域管理员的权限,补丁编号则是KB3011780
原理分析
在之前提到白银票据攻击的时候,我们仿佛默认了一个用户可以访问任何的服务。但事实上,往往我们需要控制一些账户使他们不能访问一些服务。这时微软引入了PAC的概念,PAC包含了用户的ID,组ID一类的认证信息。进一步的PAC的分析,请期待我之后会发布的Kerberos协议的抓包分析。如果现在就想要进一步了解请看文末的链接,将导向daiker大佬的文章
在这里PAC权限验证机制产生漏洞的原因是,微软在设计PAC的时候规定了加密方式,但又允许了用户自定义加密方式,进而导致了用户可以伪造PAC;但是又由于PAC是放在TGT里面的,所以我们直接将PAC和密匙放在和TGT同结构体的aythenticator内容下。从而使KDC识别到PAC。
(名词解释,TGS其实是KDC下的一个模块,但由于TGS发回的票据没有像TGT一样的具体名称,大家就喜欢把他叫TGS,我在这里为方便区分,叫他ST(server ticket))
总结原理
1.向KDC下的AS发送一个不带PAC的AS_REQ
2.AS返回你一个不带PAC的TGT
3.制作一个管理员组权限的PAC,和TGT一起装在TGS_REQ中发给KDC下的TGS
4.TGS误识别了你伪造的信息,并发给你发给你一个管理员权限的包含PAC的ST
5.server拿到了ST,拆开ST,把其中的PAC发给TGS,TGS验证了权限之后,server向你提供管理员级别的服务
利用过程
pykek
全称是