提升 运行 进程的权限

Elevate privileges of running process

有没有办法让一个进程(例如可执行文件或 bash 脚本)提升另一个 运行ning 进程的权限?例如如果我有一个程序 运行ning 作为普通用户 user,另一个进程 运行ning 作为 root 是否可以提升第一个进程的特权,就好像它有最初是 运行 root?

我已经看到 exploits 修改进程的凭证结构来执行此操作,但我不确定是否有更合法的方法来执行此操作。

进一步研究,似乎没有安装内核模块就无法做到这一点;本质上是一个rootkit。我想要的那种东西被演示了here

不,进程的这些属性在启动后无法更改。

不。 提升进程权限的唯一方法是 execing 一个 setuid 二进制文件(例如 /usr/bin/sudo);您不能对已经 运行 的进程执行此操作。

但是,您可以要求 sudo 将文件复制到临时路径,在临时路径上以您自己的权限启动编辑器,然后以 root 身份将结果复制回原处:

sudo -e filename

您可以使用 sudo 启动一个新进程,但启动一个具有更高权限的新实例总是会导致创建一个新进程。 无法向已经 运行 的进程授予额外权限。

这是可能的,但仅在 Ring 0,使用 commit_creds(prepare_creds(0)),这将更新与用户态进程关联的任务结构,将 UID/GUID 设置为 0。这仅适用于代码已经 运行 在环 0 中,例如内核 module/rootkit 或内核漏洞利用。如何做到这一点的一个例子是 here.