### 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 没有任何区别