提升 运行 进程的权限
Elevate privileges of running process
有没有办法让一个进程(例如可执行文件或 bash 脚本)提升另一个 运行ning 进程的权限?例如如果我有一个程序 运行ning 作为普通用户 user
,另一个进程 运行ning 作为 root
是否可以提升第一个进程的特权,就好像它有最初是 运行 root?
我已经看到 exploits 修改进程的凭证结构来执行此操作,但我不确定是否有更合法的方法来执行此操作。
进一步研究,似乎没有安装内核模块就无法做到这一点;本质上是一个rootkit。我想要的那种东西被演示了here。
不,进程的这些属性在启动后无法更改。
不。 提升进程权限的唯一方法是 exec
ing 一个 setuid 二进制文件(例如 /usr/bin/sudo
);您不能对已经 运行 的进程执行此操作。
但是,您可以要求 sudo 将文件复制到临时路径,在临时路径上以您自己的权限启动编辑器,然后以 root 身份将结果复制回原处:
sudo -e filename
您可以使用 sudo
启动一个新进程,但启动一个具有更高权限的新实例总是会导致创建一个新进程。
无法向已经 运行 的进程授予额外权限。
这是可能的,但仅在 Ring 0,使用 commit_creds(prepare_creds(0))
,这将更新与用户态进程关联的任务结构,将 UID/GUID 设置为 0。这仅适用于代码已经 运行 在环 0 中,例如内核 module/rootkit 或内核漏洞利用。如何做到这一点的一个例子是 here.
有没有办法让一个进程(例如可执行文件或 bash 脚本)提升另一个 运行ning 进程的权限?例如如果我有一个程序 运行ning 作为普通用户 user
,另一个进程 运行ning 作为 root
是否可以提升第一个进程的特权,就好像它有最初是 运行 root?
我已经看到 exploits 修改进程的凭证结构来执行此操作,但我不确定是否有更合法的方法来执行此操作。
进一步研究,似乎没有安装内核模块就无法做到这一点;本质上是一个rootkit。我想要的那种东西被演示了here。
不,进程的这些属性在启动后无法更改。
不。 提升进程权限的唯一方法是 exec
ing 一个 setuid 二进制文件(例如 /usr/bin/sudo
);您不能对已经 运行 的进程执行此操作。
但是,您可以要求 sudo 将文件复制到临时路径,在临时路径上以您自己的权限启动编辑器,然后以 root 身份将结果复制回原处:
sudo -e filename
您可以使用 sudo
启动一个新进程,但启动一个具有更高权限的新实例总是会导致创建一个新进程。
无法向已经 运行 的进程授予额外权限。
这是可能的,但仅在 Ring 0,使用 commit_creds(prepare_creds(0))
,这将更新与用户态进程关联的任务结构,将 UID/GUID 设置为 0。这仅适用于代码已经 运行 在环 0 中,例如内核 module/rootkit 或内核漏洞利用。如何做到这一点的一个例子是 here.