提升正在运行的进程权限

7

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

我看过漏洞利用文档,这些文档修改进程的凭证结构来实现此目的,但我不确定是否有更合法的方法。

进一步研究发现,没有办法在不安装内核模块(基本上是rootkit)的情况下实现这一点。我想要的东西在这里展示了(链接)


你的问题有点不清楚。你是想要做什么?更改当前正在运行的进程的所有者吗? - kvantour
4个回答

8

不,一个进程的这些属性一旦启动就无法更改。


1
在这篇论文中(https://labs.f-secure.com/assets/BlogFiles/mwri-mmap-exploitation-whitepaper-2017-09-18.pdf),使用了一个易受攻击的内核驱动程序来编辑进程自己的cred结构,以便以超级用户身份执行shell。难道没有合法的方法可以重新创建这个吗? - clubby789

5

注意。提升进程权限的唯一方式是通过 exec 执行一个设置了 setuid 的二进制文件(如 /usr/bin/sudo);您不能对已经在运行的进程执行此操作。

但是,您可以请求 sudo 将一个文件复制到临时路径,使用您自己的特权在临时路径上启动编辑器,然后将结果作为根用户复制回原位置:

sudo -e filename

3
这是可能的,但只能在 Ring 0 下使用 commit_creds(prepare_creds(0)),这将更新与用户空间进程相关联的任务结构,将 UID/GUID 设置为 0。这仅适用于已在 Ring 0 中运行的代码,例如内核模块/Rootkit 或内核漏洞利用。一个如何实现此操作的示例在这里

0

您可以使用sudo启动新进程,但是使用更高权限启动新实例将始终导致创建新进程。 无法向已运行的进程授予额外权限。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接