Files
2025-09-27 22:14:17 +08:00

50 lines
4.6 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. `SeImpersonatePrivilege` 滥用**
- **`SeImpersonatePrivilege`** (模拟客户端权限) 允许一个线程模拟另一个用户(客户端)的安全上下文。当一个进程(例如一个服务)接受了一个来自另一个进程的连接并验证了其身份后,它可以暂时切换到该连接客户端的身份来执行操作
- 在土豆攻击中,一个低权限用户(拥有该权限)首先会诱导一个**高权限服务进程**(通常运行为 `SYSTEM``NETWORK SERVICE`)向攻击者控制的 **本地** 服务发起认证请求(例如 NTLM 认证)
- 攻击者截获这个高权限的 **NTLM 认证** 流量,并利用 Windows API 中的 **`ImpersonateNamedPipeClient`** 或 **DCOM/RPCSS** 相关的函数,**获取** 一个代表该高权限账户(如 `NETWORK SERVICE``SYSTEM`)的 **模拟令牌**Impersonation Token
- 然而,一个模拟令牌不足以创建一个新进程,它只能用于线程级的操作。要实现完全提权,需要将模拟令牌**升级**为一个 **主令牌**Primary Token
**2. 令牌升级**
- 获得 **模拟令牌** 后,攻击者需要将其转换为一个可以启动新进程的 **主令牌**
- 通常会利用 Windows API 中的 **`CreateProcessWithTokenW`** 或其他相关函数,通过将模拟令牌传递给它,尝试创建一个以 **`SYSTEM`** 身份运行的新进程(如一个新的 `cmd.exe` 命令行)
- 对于像 **Rotten Potato** 这样的技术,利用了 **DCOM****RPC** 的特定设计缺陷,来强制获取一个高权限的 **模拟令牌** 并进行升级
**二、经典土豆家族提权技术详解**
**1. Rotten Potato (烂土豆)**
这是土豆家族的鼻祖,利用了 **Windows DCOM/RPC** 的一个缺陷
- **目标账户:** 通常从 **`SERVICE`** 或拥有 `SeImpersonatePrivilege` 的账户开始
- **核心步骤:**
1. 攻击者作为低权限用户(拥有 `SeImpersonatePrivilege`)创建一个 **本地 RPC 服务器**(通常是通过命名管道实现)
2. 攻击者通过 **DCOM/COM** 机制(尤其是利用 **`BITS`** 服务中的特定 COM 对象,如 **`IBackgroundCopyQMgr`**),强制一个 **`NT AUTHORITY\SYSTEM`** 身份的服务进程连接并认证到攻击者创建的本地 RPC 服务器
3. 在这个认证过程中,攻击者截获了来自 `SYSTEM` 服务的 **NTLM Challenge/Response** 流量
4. 最关键的一步,攻击者利用 **RPCSS 服务**(通常运行为 `SYSTEM`)的一个漏洞,在本地 RPC 连接上调用 **`ImpersonateNamedPipeClient`** API,成功获取一个 **`SYSTEM`** 用户的 **模拟令牌**
5. 最后,攻击者利用 **`CreateProcessAsUser`** 或类似函数,使用这个 `SYSTEM` 模拟令牌启动一个新的、拥有 **`SYSTEM` 主令牌** 的进程
**2. Juicy Potato (多汁土豆)**
Rotten Potato 在 Windows 新版本中受到限制,Juicy Potato 是其改进版
- **目标账户:** 同样是从拥有 `SeImpersonatePrivilege` 的账户开始
- **核心改进:** Juicy Potato 放弃了依赖特定的 BITS COM 对象,而是利用了 **DCOM 本地激活** 的灵活性。它允许攻击者指定任何一个可以被 `NETWORK SERVICE``SYSTEM` 账户激活的 **COM 对象**(通过其 **CLSID**),并强制该对象触发到攻击者控制的 **本地 TCP 监听器****命名管道** 的 NTLM 认证
- 攻击者可以通过查找机器上可用的 **CLSID** 列表,找到一个能够在低权限下触发高权限认证的 COM 对象,绕过了 Rotten Potato 对 BITS 服务的限制
- **提权机制** 的核心仍是 **DCOM 强制认证****获取 SYSTEM 模拟令牌****升级为 SYSTEM 主令牌**
**3. RoguePotato (流氓土豆)**
随着 Windows 补丁(如 2018 年对 DCOM 本地激活的限制),Juicy Potato 逐渐失效。RoguePotato 引入了 **Oxid Resolver** 滥用
- **核心改进:** RoguePotato 侧重于滥用 **DCOM 的远程协议**MS-DCOM/MS-RPC)中的 **OXID 解析器**Oxid Resolver)机制
- 它强制一个高权限 COM 服务器(运行为 `SYSTEM`)去连接一个由攻击者控制的 **虚假/恶意 OXID 解析器**
- 通过精巧地构造 **RPC 绑定字符串**,攻击者可以使高权限进程在进行远程 OXID 解析时,被迫回退到 **本地****命名管道**Named Pipe)认证
- 通过这种方式,攻击者可以再次捕获 `SYSTEM` 账户的认证,并获得 **模拟令牌**,最终实现提权