51 lines
4.5 KiB
Markdown
51 lines
4.5 KiB
Markdown
### 说说域内委派
|
||
|
||
**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**:服务向 KDC(Key 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. **权限提升**:攻击者可以利用这个漏洞,将一个低权限服务账户配置为可以代表任何用户访问这台机器,从而实现权限提升 |