如何利用注册表修改技术绕过UAC限制

简介:

如何利用注册表修改技术绕过UAC限制

用户帐户控制(UAC)是一项Windows功能,有助于防止对系统进行未经授权的更改。不过本文将给我们详细展示,攻击者是如何在绕过此安全控制的情况下悄悄执行修改系统的特权操作。UAC自Windows Vista和Windows Server 2008以来就开始出现,其目标是在触发相关系统更改时,引起用户的注意。它的工作方式是显示一个弹出窗口,要求用户进行交互以接受某些请求的系统更改,指定试图执行这些更改的程序名称和发布者。另外,屏幕的其他部分通常会变暗,以使用户更加意识到这个弹出窗口非常重要,应该格外注意。

如何利用注册表修改技术绕过UAC限制

此功能对用户非常有用,用户既可以利用此功能识别他们执行的系统所进行的更改,也可以帮助检测另一个应用程序或恶意软件何时尝试修改系统。因此,绕过UAC是一种最理想的攻击技术,它在MITRE ATT&CK matrix上被归类为防御逃避和特权升级技术。

技术细节

由于UAC是一种安全措施,可以防止恶意软件、不受欢迎的用户或应用程序改变相关的系统配置,因此攻击者一直在寻找绕过UAC的新方法,从而在不提示用户的情况下,以实现特权系统更改。目前有很多种不同的方法绕过UAC,但是本文主要关注如何利用注册表修改技术绕过UAC。

所选择的技术依赖于修改特定系统实用程序应用程序的注册表键值,这些权限是通过设计自动提升的,并且能够执行其他应用程序并赋予它们特权。执行这项技术需要三个参数。其中两个与绕过技术直接相关,最后一个是绕过UAC时使用权限执行的目标命令:

1.将触发目标应用程序的特权应用程序;

2.此特权应用程序读取的注册表键值,应该是将要尝试执行的二进制文件的路径;

3.将通过使用UAC绕过技术,悄悄执行二进制程序的程序路径;

例如,我们将在Windows 7中利用eventvwr.exe应用程序绕过UAC,此特权应用程序的作用类似于微软管理控制台(Microsoft Management Console,MMC)的快捷方式。

当eventvwr.exe启动时,它将检查是否使用特定的二进制文件为事件查看器提供MMC管理单元的功能。为此,它在注册表键值“HKEY_CURRENT_USER\Software\Classes\mscfile\shell\open\command”中查找特定的二进制位置。如果它存在,它将在此路径上执行二进制文件。否则,将加载Windows事件查看器的默认MMC管理单元,此注册表键值的内容是可绕过UAC而用于执行二进制文件的。

由于Windows更新和安全修复程序的关系,对于不同的Windows版本,特权应用程序和注册表键值可能会有所不同。由于在撰写本文时没有一种共享相同特权应用程序和注册表键值的绕过技术,因此我们将只列出对Windows 7有效的参数,这些参数对于Windows 10也有效。现在,让我来演示一下这些技术是如何同时工作的?

Windows 7技术是基于以下参数:

1.自动提升的特权应用程序:eventvwr.exe;

2.具有要执行的路径的注册表键值:HKEY_CURRENT_USER\Software\Classes\mscfile\shell\open\command;

要利用这种技术,第一步就是修改注册表键值,来执行目标应用程序。在这种情况下,我选择的是“C:\Windows\System32\cmd.exe”。

如何利用注册表修改技术绕过UAC限制

现在注册表键值已设置完成,可以通过eventvwr.exe,执行此注册表键值的内容,而不是对其直接进行加载。

如何利用注册表修改技术绕过UAC限制

最后,可以检查新生成的进程是否正在运行高完整性,以允许新进程访问多个特权和受保护的系统资源。

如何利用注册表修改技术绕过UAC限制

另外,Windows 10环境下的绕过技术,也具有相同的参数类型,但具有不同的值:

1.自动提升的特权应用程序:sdclt.exe;

2.进行路径执行的注册表键值:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\App Paths\control.exe;

这样,第一步和Windows 7环境下的绕过技术一样,具有相同的修改注册表键值。现在,我会再次选择“C:\Windows\System32\cmd.exe” 作为目标应用程序。

如何利用注册表修改技术绕过UAC限制

一旦注册表键值设置完成,下一步就是执行“sdclt.exe”。该过程将启动命令行应用程序,而不是直接对其进行加载,这与Windows 7技术中看到的加载方式相同。

如何利用注册表修改技术绕过UAC限制

最后,就像预期的那样,你可以检查新产生的进程的完整性级别非常高。

如何利用注册表修改技术绕过UAC限制

缓解措施

目前,我正在研究是否有能够测试此类绕过技术的工具,以及采取何种安全控制措施来防止此类攻击。例如本文这种情况,或者可以根据需要修改用户提供的注册表键值来入手。总结这些通用场景,就可以开发出基于注册表修改的任何类型的攻击的测试技术。还有许多其他通用场景,例如执行系统命令、修改文件、扫描文件、盗窃网络隐私信息、使用不同的持久性攻击技术等。

由于这两种技术都依赖于相同的原理,所以对它们的缓解措施也是一样的。这与将UAC级别设置为Always Notify属性一样简单。

对于不希望将UAC级别设置为Always Notify的系统环境,可以使用其他的保护方法,但是,从系统的安全角度来讲不建议使用。这些方法包括监控并防止以下注册表键值的注册表更改:

1.HKEY_CURRENT_USER\Software\Classes\mscfile\shell\open\command;

2.HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\App Paths\control.exe;

除这些缓解措施外,还建议在可能的情况下使用非特权帐户。


原文发布时间为:2018-05-31
本文来自云栖社区合作伙伴“ 嘶吼网”,了解相关信息可以关注“ 嘶吼网”。
相关文章
|
11月前
|
开发者
Mac 系统偏好设置 安全性与隐私 没有“任何来源” 选项解决办法
Mac 系统偏好设置 安全性与隐私 没有“任何来源” 选项解决办法
1851 0
|
监控 测试技术
如何利用sdclt.exe绕过UAC?
本文讲的是如何利用sdclt.exe绕过UAC?,Matt Nelson‏ @enigma0x3在最近的文章中公开了一个绕过Win10 UAC的技巧,通过修改HKCU下的注册表键值实现对UAC的绕过
2017 0
如何使用SilentCleanup绕过UAC?
本文讲的是如何使用SilentCleanup绕过UAC?,最近我在James Forshaw‏的博客学到了一个Win10下绕过UAC的技巧,该方法通过脚本实现,并且目前微软还未对该绕过方法进行修复(预计在Win10 RS3修复)。
1762 0
|
Windows
如何使用任务计划程序绕过UAC?
本文讲的是如何使用任务计划程序绕过UAC?,如果用户可以访问图形界面,Windows任务计划程序可能被绕过用户帐户控制(UAC)。这是由于当用户创建新任务时,具有最高权限的安全性选项不需要用户使用管理员帐户进行身份验证。 适用于RDP登录或可访问物理机的情况下。
2228 0