You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何RPCSS进程拥有归属SYSTEM的Token类型句柄?兼询进程与句柄关联

进程与句柄的关联关系
  • 进程是操作系统中运行的程序实例,拥有独立的地址空间和专属资源集合,是系统分配资源的基本单位。
  • 句柄是操作系统返回给进程的抽象引用标识符,作用是让进程安全地间接访问内核对象(比如Token、文件、线程、其他进程等)——内核对象由系统内核统一管理,进程无法直接访问内核内存,必须通过句柄发起操作请求。
  • 每个进程都维护自己的句柄表,表中存储着该进程持有的所有句柄与对应内核对象的映射关系。只有持有句柄的进程,在具备对应权限的前提下,才能对目标内核对象执行操作(比如复制Token、读写文件)。
  • 句柄支持跨进程复制(通过DuplicateHandle() API实现),但要求调用者能同时打开源进程和目标进程,且拥有足够权限完成复制操作。
为什么rpcss进程会持有SYSTEM权限的Token句柄

rpcss(Remote Procedure Call Service)是Windows系统的核心服务,负责管理进程间、跨机器的RPC通信,绝大多数系统组件和服务都依赖它完成交互。它持有SYSTEM Token句柄的原因主要有以下几点:

  • 服务自身的启动身份:rpcss默认以SYSTEM账户启动,其主进程的Token本身就是SYSTEM权限。除此之外,它还会因业务需求持有额外的SYSTEM Token句柄。
  • 处理SYSTEM级RPC请求:当其他SYSTEM权限的进程或服务通过RPC与rpcss交互时,rpcss可能会获取到对方的Token句柄,用于身份验证、权限检查或模拟对方身份执行操作。
  • 系统级操作的需求:rpcss需要执行一些受保护的系统操作(比如创建系统级内核对象、访问敏感系统资源),这时它会创建或复制SYSTEM Token来满足权限要求。
  • 内核对象的共享与继承:作为核心系统服务,rpcss会与其他系统组件协同工作,部分SYSTEM级内核对象的句柄可能会被继承或共享给它,以支持跨组件的功能调用。

而Token劫持技术盯上rpcss的核心原因是:它是运行在SYSTEM上下文的高权限进程,同时低权限进程往往有机会打开它的进程句柄并复制其持有的SYSTEM Token——拿到这些Token后,就能通过CreateProcessAsUser()或CreateProcessWithToken() API启动拥有SYSTEM权限的新进程。

内容的提问来源于stack exchange,提问作者ilich262

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 18:45:11