系统上当前安装的进程是否可以通过知道 root 密码来提升其权限?

系统上当前安装的进程是否可以通过知道 root 密码来提升其权限?

让我们假设一个类 Unix 系统(如 macOs、linux、solaris 等)安装了来自互联网的由恶意行为者开发的程序的场景。

该程序不会在系统上使用任何零日漏洞来提升权限。它只是在常规非管理用户的上下文中运行,并具有所有限制。它会在后台记录所有按键,直到记录用户在终端中输入“su”并随后输入密码。这个程序突然捕获了 root 用户的密码。

我的问题是,捕获此密码后,程序是否可以从 root 用户的上下文中重新启动自身,甚至可以在运行时升级其权限,在当前用户没有注意到的情况下执行所有这些操作?存在哪些实用程序可以允许这样的程序执行这样的操作?我正在谈论一个理想的场景,其中内核中没有任何错误或漏洞被使用。我只是谈论一个程序,它只是按照现有系统实用程序的预期使用方式来使用它们。

答案1

expect这正是该程序(以及类似程序)所针对的情况。您可以su在 下运行expect,检测密码提示,发送密码(您捕获的),然后拥有一个可以向其发送命令的 root shell。

例如

#!/usr/bin/expect --

set mypasswd "imnottellingyou"

spawn "su"
expect "ssword"
send "$mypasswd\n"
expect "#"
interact

答案2

是的。通过执行su.su是一个允许更改用户密码的程序。su具有更改用户的能力,并且只有在您提供正确的密码时才会执行此操作。

然而,做到这一点的唯一方法是启动一个新进程,或者替换现有进程的程序。然后它可以使用新的权限重新启动它自己。

迂腐的注释:进程可以通过 升级其权限su。但程序不能。然而,新程序 ( su) 可以重新启动旧程序。

相关内容