Files
Sec-Interview/Chapter15/15-20.md
T
2025-09-25 03:56:33 +08:00

23 lines
2.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
### 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**
- **步骤二:伪造 SIDSID Splicing)** 这是攻击的核心。攻击者在本地伪造一个身份信息,其中包含了普通用户的 SID,但同时还偷偷插入了一个**伪造的域管理员组 SID**(通常是 `S-1-5-21-XXX-519`,也就是 `Domain Admins` 的组 SID
- **步骤三:绕过签名验证** 攻击者将伪造的身份信息打包成一个伪造的 Kerberos 请求。由于域控制器的签名验证机制存在缺陷,它不会正确地校验票据的完整性。当它收到这个请求时,它会**错误地认为**这个请求是合法的
- **步骤四:生成高权限 TGT** 域控制器被成功欺骗,它会根据伪造的请求,生成一个**错误的 TGT**。这个 TGT 包含的权限信息是伪造的,即它会**错误地授予用户域管理员组的权限**。最重要的是,这个错误的 TGT 会被用**域控制器自身的密钥**签名
- **步骤五:权限提升** 攻击者拿到这个被域控制器“官方认证”的、拥有域管理员权限的 TGT 后,就可以用它**自由地访问域内任何资源**。这个伪造的 TGT 和真正的域管理员的 TGT 没有任何区别