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

pskill跨UAC/权限提升边界的工作原理及所用Windows API探究

PsKill跨权限终止进程的Windows API解析

核心实现逻辑

PsKill能在非特权shell终止同用户会话内的高权限进程,关键在于它精准的权限请求和对Windows特权机制的利用,而非特殊API:

  • 特权启用:
    首先通过以下API链启用当前进程的SE_DEBUG_NAME特权:

    1. OpenProcessToken() 获取当前进程的访问令牌
    2. LookupPrivilegeValue() 查询SE_DEBUG_NAME特权的LUID值
    3. AdjustTokenPrivileges() 启用该特权
      这个特权允许用户操作同一会话内自己名下的所有进程,包括以管理员身份运行的实例,但无法触及Session 0的System服务进程,这和你观察到的现象一致。
  • 进程打开与终止:
    它不会像你的工具那样请求PROCESS_ALL_ACCESS,而是仅请求PROCESS_TERMINATE权限调用OpenProcess(),结合已启用的SE_DEBUG特权,就能成功打开同会话内的高权限目标进程,最后调用TerminateProcess()完成终止。

为什么taskkill/Stop-Process做不到?

这类工具没有主动启用SE_DEBUG_NAME特权,或者在打开进程时的权限请求策略更严格,因此无法绕过同用户会话内的权限限制。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 13:25:23