我将为您提供您正在谈论的漏洞利用的技术细节,然后让您自己决定是否应该担心。
bypassUAC 漏洞利用了 Windows 操作系统的一个错误(或者更确切地说是一项功能),其中由 Microsoft 代码签名证书签名的进程在将其权限提升到 SYSTEM 时不会提示用户。这在 Microsoft 文本中被称为特权提升。Leo Davidson最先发现了这个问题早在 2009 年。如果您查看此漏洞的目标,您会发现 Windows 7 是易受攻击的,即使在 Windows 7 之前出现的 Windows Vista 并不易受攻击。原因是微软故意淡化 Windows 7 的安全性,以提供更好的用户体验。任何 Vista 用户每次执行任务时都会告诉您无限数量的 UAC 提示。为了最大限度地减少这些提示,微软决定所有那些微软使用其代码签名证书签名的应用程序都应该被信任以自动提升权限,因此这个漏洞诞生了。
该漏洞的利用方式是在C:\Windows\System32\sysprep\目录中有一个exe文件,名为sysprep.exe,它加载了一个DLL文件CRYPTOBASE.DLL。由于 sysprep.exe 不使用完整路径加载此 DLL,因此您可以将名为 CRYPTOBASE.DLL 的恶意 DLL 放在 C:\Windows\System32\sysprep 目录中,此时 sysprep.exe 将加载恶意 DLL 文件执行。这种技术被称为DLL 劫持. 假设恶意DLL启动由微软代码签名证书签名的notepad.exe,在其中注入另一个DLL如metsrv.dll,这是Meterpreter dll文件,然后请求权限提升,该进程将在没有任何UAC的情况下静默获得SYSTEM权限提示,因为这就是它在 Windows 7 上的默认状态下的设计方式。此漏洞也存在于 Windows 8 中(尽管不存在于 sysprep.exe 可执行文件中)。
现在,如果您担心这种攻击媒介,您可以采取一些步骤来确保绕过 UAC 不起作用。您可以做的第一件事是不要使用管理员用户。这将保护您,因为在另一个进程中注入恶意 DLL(或任何其他代码)需要对该进程具有调试权限。管理员可以对任何进程拥有调试权限,这就是绕过 UAC 需要管理员权限的原因。此外,控制面板中 UAC 的图形控制台中有四个 UAC 保护级别。如果您将保护设置为Always Notify,则没有进程可以静默提升其权限。就像在 Vista 中一样,您将始终收到 UAC 提示,绕过 UAC 漏洞利用将失败(除非您单击允许)。
现在您决定是否应该担心这个漏洞。在大多数情况下,如果恶意用户已经获得了管理员权限的代码执行,那么它已经为你结束了。将它提升到 SYSTEM 现在只是一个象征性的游戏。