使用“以不同的用户身份运行”的 Windows 进程的安全性

信息安全 视窗 恶意软件
2021-08-31 02:02:30

我一直在努力寻找有关此主题的大量信息。我感兴趣的是以下内容:

场景
用户作为标准非管理帐户登录到 Windows(7、8.1 等)工作站。然后,他们使用 Shift-Right Click 方法以提升帐户(例如域管理员、本地管理员等)的身份启动另一个进程

问题
如果该工作站感染了恶意软件,该恶意软件有可能利用什么级别的权限?它是否仅限于登录的非管理帐户,或者是否有可能还利用任何可用的提升进程?这与标准 UAC 操作有何不同?

该问题的目的是确定以非管理员身份运行同时仍提升多个进程以抵御恶意软件的效率如何?

2个回答

这个问题有很多变数,但我会提供一些场景。

场景 1:用户计算机已被“virus.exe”感染,该“virus.exe”在非管理员帐户的用户上下文“TokinRing”下执行。您决定以管理员帐户运行应用程序“cool.exe”。“virus.exe”的默认 Windows 安全性不会阻止对“cool.exe”使用任何 API,例如 OpenProcess、SendMessage 等,因为它是在更高权限下执行的。

但是,如果“cool.exe”正在使用,缓冲区溢出可能会受到非管理帐户的影响。因此,假设“cool.exe”读取任何用户都可以写入的文件。如果“virus.exe”创建一个文件导致缓冲区溢出并执行shellcode以在更高权限的进程下执行任何操作。

场景2:用户机器被一个在管理员/系统上下文下执行的“virus.exe”感染,该病毒可以在系统中的任何进程中执行,并且可以冒充任何本地用户。

如果你能让你的问题更具体,我很乐意给你更深入的答案。

这在很大程度上取决于用于执行漏洞利用的过程。如果正在使用提升权限的进程,那么注入逻辑地址空间的任何 shellcode 都将具有管理员权限。

因此,如果普通用户以管理员身份启动 Firefox,并使用驱动下载捕获恶意软件,则该漏洞利用将具有 ring 0 访问权限。这也是为什么以管理员身份运行任何不必要的东西几乎总是一个坏主意的原因。