让我们假设一个类 Unix 系统(如 macOs、linux、solaris 等)从互联网上安装了一个由恶意行为者开发的程序的场景。
该程序不使用系统上的任何零日漏洞来提升权限。它只是在常规非管理用户的上下文中运行,并具有所有限制。它会在后台记录所有按键,直到记录用户在终端“su”中键入密码,然后再输入密码。这个程序突然捕获了 root 用户的密码。
我的问题是,捕获此密码后,程序是否可以从 root 用户的上下文中重新启动,甚至在仍在运行时升级其权限,在当前用户没有注意到的情况下执行所有这些操作?确实存在哪些实用程序可以允许这样的程序做这样的事情?我说的是一个理想的场景,其中不使用内核中的任何错误或漏洞。我只是在谈论一个程序,它只是以已经打算使用的方式使用现有的系统实用程序。
这正是
expect
程序(和类似程序)设计的那种情况。您可以在su
下运行expect
,检测密码提示,发送密码(您已捕获),然后拥有可以向其发送命令的 root shell。例如
是的。通过执行
su
.su
是一个允许使用密码更改用户的程序。su
具有更改用户的能力,并且只有在您提供正确的密码时才会这样做。但是,唯一的方法是启动一个新进程,或者替换现有进程的程序。然后它可以使用新的特权重新启动它自己。
学究式注释:进程可以通过
su
. 但是一个程序不能。但是,新程序 (su
) 可以重新启动旧程序。