### 土豆家族提权原理

一、核心原理：令牌模拟和特权滥用

所有“土豆家族”提权方法都围绕着以下两个关键机制：

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` 账户的认证，并获得 模拟令牌，最终实现提权