### MS14-068 原理 **1. MS14-068 漏洞的本质** 这个漏洞发生在域控制器(Domain Controller)处理 Kerberos TGT 请求的环节。它的根源是 **Kerberos 的一个签名验证绕过漏洞** 在一个正常的 Kerberos 认证流程中: 1. 用户使用自己的凭证(密码哈希)向域控制器请求 TGT 2. 域控制器验证用户的凭证,并生成一个 TGT。这个 TGT 内部包含了用户的身份信息、权限组等数据,并且会用**域控制器自身的密钥**进行签名,以确保其完整性 3. 用户拿到 TGT 后,可以用它向域控制器请求其他服务的票据,从而访问域内资源 而 MS14-068 的漏洞就出在第2步:**域控制器对 TGT 签名的验证逻辑存在缺陷** **2. 详细原理:利用过程** MS14-068 的攻击利用过程可以分解为以下几个关键步骤: - **步骤一:收集信息** 攻击者需要一个**普通域用户账户**的凭证(用户名、密码哈希或 AES 密钥)。这个账户不需要任何特殊权限。同时,攻击者还需要知道域控制器的**域 SID** - **步骤二:伪造 SID(SID Splicing)** 这是攻击的核心。攻击者在本地伪造一个身份信息,其中包含了普通用户的 SID,但同时还偷偷插入了一个**伪造的域管理员组 SID**(通常是 `S-1-5-21-XXX-519`,也就是 `Domain Admins` 的组 SID) - **步骤三:绕过签名验证** 攻击者将伪造的身份信息打包成一个伪造的 Kerberos 请求。由于域控制器的签名验证机制存在缺陷,它不会正确地校验票据的完整性。当它收到这个请求时,它会**错误地认为**这个请求是合法的 - **步骤四:生成高权限 TGT** 域控制器被成功欺骗,它会根据伪造的请求,生成一个**错误的 TGT**。这个 TGT 包含的权限信息是伪造的,即它会**错误地授予用户域管理员组的权限**。最重要的是,这个错误的 TGT 会被用**域控制器自身的密钥**签名 - **步骤五:权限提升** 攻击者拿到这个被域控制器“官方认证”的、拥有域管理员权限的 TGT 后,就可以用它**自由地访问域内任何资源**。这个伪造的 TGT 和真正的域管理员的 TGT 没有任何区别