Files
2025-09-25 03:23:59 +08:00

51 lines
4.5 KiB
Markdown
Raw Permalink 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.
### 说说域内委派
**1. 基础知识:委派的类型**
首先,我们需要理解域内委派的两种主要类型,因为它们的攻击方法截然不同
**a. 非约束性委派**
这是最古老、也最危险的一种委派方式
- **工作原理**:当一个用户访问配置了非约束性委派的服务(比如一个 Web 服务器)时,域控制器会把该用户的**票据授予票据(TGT)**发送给这个服务。这个服务会把用户的 TGT 缓存到内存中,以便后续代表用户去访问其他任何服务
- **渗透利用点**
1. **票据窃取(TGT Stealing**:非约束性委派的关键漏洞在于,服务会**在内存中缓存所有访问过它的用户的 TGT**
2. **伪造身份**:如果一个渗透测试人员能够控制这个服务账户(例如通过弱密码、令牌窃取等),他就可以**从内存中导出所有缓存的 TGT**,包括域管理员的 TGT
3. **万能钥匙**:拿到域管理员的 TGT 后,攻击者就拥有了**完全的域管理员权限**,可以代表该管理员去访问域内任何一台机器或服务,实现了最高级别的权限提升
**攻击思路**
1. **侦察**:使用工具(如 PowerView、SharpHound)枚举所有配置了非约束性委派的机器账户或用户账户。
- **PowerView 命令**`Get-DomainUser -UnconstrainedDelegation``Get-DomainComputer -UnconstrainedDelegation`
2. **等待和诱骗**:找到一个目标后,我们需要等待或诱骗一个高权限用户(如域管理员)来访问这台机器上的服务
3. **票据导出**:一旦高权限用户访问了,我们立即使用 `Mimikatz``Rubeus` 等工具,在被控机器上从内存中导出所有 TGT 票据
4. **票据复用**:拿到域管理员的 TGT 后,我们可以使用 `Mimikatz``kerberos::ptt`Pass The Ticket)功能,将票据注入到当前会话中,然后以域管理员的身份访问域内任何资源,比如 `net use \\DC01\c$ /y`
**b. 约束性委派**
这是为了解决非约束性委派的风险而引入的更安全的委派方式,它**限制了服务可以代表用户访问的范围**。但它依然存在攻击点
- **工作原理**:与非约束性委派不同,约束性委派不会把用户的 TGT 传给服务。它利用 Kerberos 协议的扩展(S4U2Self 和 S4U2Proxy)来完成委派
- **S4U2Self**:服务向 KDCKey Distribution Center)证明它代表用户,并请求一个服务票据(ST)
- **S4U2Proxy**:服务用这个 ST 去请求另一个服务的 ST,但这个过程是**严格受限**的
- **渗透利用点**
1. **滥用 S4U2Proxy**:如果攻击者能够控制一个配置了约束性委派的服务账户,他可以滥用 S4U2Proxy 协议,**冒充域内任何一个普通用户**(甚至不存在的用户)去请求访问被委派的特定服务
2. **横向移动**:这使得攻击者可以**以任意用户的身份**访问特定服务,即使该用户并没有访问权限,从而实现横向移动
**攻击思路**
1. **侦察**:找到配置了约束性委派的账户
- **PowerView 命令**`Get-DomainUser -Properties * | Where {$_.msds-allowedtodelegateto}`
2. **控制服务账户**:通过密码喷洒、弱密码或凭证窃取等方式,获取一个配置了约束性委派的服务账户的权限
3. **执行 S4U2Proxy 攻击**:使用 `Rubeus``Kekeo` 等工具,冒充一个域内用户(如 `Administrator`),向 KDC 请求访问目标服务的票据
- **Rubeus 命令示例**`Rubeus.exe s4u /user:victim-user /rc4:victim-user-hash /impersonateuser:administrator /altservice:HTTP/webservice.contoso.com /dc:DC01.contoso.com /ptt`
4. **票据复用**:成功后,会将伪造的票据注入到当前会话,攻击者即可用管理员身份访问 `webservice.contoso.com`
**c. 基于资源的约束性委派**
这是 Windows Server 2012 引入的更精细的委派方式,它将委派配置在**被访问的资源**上,而不是服务账户上
- **渗透利用点**
1. **ACL 滥用**:如果攻击者控制了一台机器(例如,通过普通用户权限),并且该机器的ACL(访问控制列表)允许某个低权限账户进行委派配置,那么攻击者就可以**将该机器配置为允许某个低权限账户进行委派**
2. **权限提升**:攻击者可以利用这个漏洞,将一个低权限服务账户配置为可以代表任何用户访问这台机器,从而实现权限提升