Win10系统下载 Win10数字激活 win10 64位 win10 2004正式版 win10 2009最新版 Win10 21H2
最新Win10系统下载
Win10系统下载排行
当前位置: 首页 > IT资讯 > Win10资讯

通过模拟文件夹和DLL劫持绕过Win10 UAC

时间:2020-08-01 09:03:07来源:Win10专业版官网点击量:N次

8月1日早间消息:一项新技术使用DLL劫持和模拟目录的简化过程来绕过Windows 10的UAC安全功能并运行提升的命令而不会提醒用户。

Windows UACWindows Vista及更高版本中引入的一种保护机制,要求用户在执行前确认是否希望运行高风险应用程序。

通过模拟文件夹和DLL劫持绕过Win10 UAC

Windows UAC提示

来源:BleepingComputer

从Windows 7开始,由于反复要求用户授权合法的过程(可能很快变得烦人),Microsoft在UAC框架内引入了内置的“例外”。

此功能允许C:\ Windows \ System32 \下的受信任系统DLL“自动提升”为更高的特权,而无需显示UAC提示符。

这允许需要提升权限的系统进程来执行DLL和EXE,而无需它们回答UAC提示。

上个月,BleepingComputer报告了安全研究人员Wietze Beukema如何发现300个Windows可执行文件容易受到DLL劫持的攻击,从而使攻击者可以绕过UAC安全功能。

安全研究人员和pentester丹尼尔·基伯特以相同的技术为基础,阐述了如何通过DLL劫持技术和模拟目录的组合也可以绕过Windows 10用户帐户控制(UAC)。

Windows 10模拟目录简介

模拟目录是带有尾随空格的模仿目录。例如,“ C:\ Windows \ System32”是Windows计算机上的合法可信位置,而模拟目录看起来像“ C:\ Windows \ System32”(注意Windows \后的尾随空格)。

创建模拟目录时,有两个限制:

无法在Windows资源管理器UI中直接创建模拟目录,因此您需要一个简单的脚本来完成该任务。

并非所有目录都可以被

模拟:“模拟目录必须包含[子目录]。无法创建'C:\ Windows'。但是可以创建'C:\ Windows \ System32',” Gebert解释说。他的博客文章,

要创建模拟目录,您可以简单地使用PowerShell命令,例如:

New-Item "\\?\C:\Windows \System32" -ItemType Directory

完成后,C:\根文件夹现在将包含两个Windows文件夹,但实际上,第二个文件夹具有尾随空格,如下所示。

通过模拟文件夹和DLL劫持绕过Win10 UAC

Windows 10模拟文件夹

来源:BleepingComputer

导致模拟文件夹如此危险的原因是,在某些情况下,Windows(例如,使用文件资源管理器)会将“ C:\ Windows”和“C:\Windows”视为同一文件夹,如下所示。

通过模拟文件夹和DLL劫持绕过Win10 UAC

File Explorer将模拟文件夹视为常规C:\ Windows文件夹

来源:BleepingComputer

将目录用作模拟文件夹,将其视为实际命名的文件夹。

扭曲的方法

Beukema最初的UAC绕过技术依赖于找到可以成为DLL劫持的理想人选的系统EXE。例如,已知“ winstat.exe”在执行时会在受信任位置中查找一堆DLL(例如“ d3d10.dll”,“ d3d11.dll”等)。

如果攻击者能够使用自己选择的恶意重写其中一个DLL,则“ winstat.exe”将从受信任的目录或模拟目录中加载该恶意DLL,具体取决于“ winstat.exe”的位置。

但是,为了绕过UAC,Beukema的技术至少需要某种形式的重写和重新编译带有攻击者有效负载的现有DLL。

对于许多处理侧载的受信任DLL,没有可供渗透测试者使用的模板。更不用说,该技术也有一些局限性。

在搜索DLL劫持候选对象时,Gebert首先在Web上搜索可信任目录中存在的合法Windows DLL的模板。

在GitHub上发现此类模板后,他编译了一个带有有效负载的模板,以生成提升的命令提示符。

由于他以前在DLL劫持漏洞利用文件中的经验,Gebert为此PoC选择的模板用于“version.dll”。

通过模拟文件夹和DLL劫持绕过Win10 UAC

一个基本的“ version.dll”模板,其中添加了有效负载以启动“ cmd.exe”。

来源:Daniel Gebert的IT博客

编译完这个简单的“ version.dll”后,他将其复制到了模拟目录(C:\Windows \System32)。他还将所有合法的可执行文件(.exe)从真实的C:\ Windows \ System32 \文件夹复制到该模拟目录中。

因此,模拟目录现在具有600个以上的Windows EXE,并且只有DLL文件“ version.dll”。

然后,希望600个EXE文件之一能够侧面加载“ version.dll”,Gebert开始一次启动这些可执行文件,同时密切监视它们。

尽管没有一个EXE都在主动加载“ version.dll”,但某些EXE却一直在模拟目录中寻找“ profapi.dll”文件。

仅仅通过将“ version.dll”重命名为“ profapi.dll”,Gebert就能完成技巧。在他的示例中,启动合法的Windows进程,他的模拟目录中的ComputerDefaults.exe成功启动了存在于同一目录中的更改后的“ profapi.dll”(以前为“ version.dll”)。

通过模拟文件夹和DLL劫持绕过Win10 UAC

在没有UAC提示的情况下启动的高架命令提示符

来源:Daniel Gebert的IT博客

Gebert博客上发布的视频还显示了PoC的作用:

Gebert对该技术的变体展示了一种无需重写现有Windows DLL即可更轻松地实现UAC绕过的方法。

他的博客上提供了Windows可执行文件的完整列表,这些文件可同时加载“ profapi.dll”和“ version.dll”文件,并且可能会被滥用以进行UAC旁路。

在此过程中,Gebert还发现Beukema的方法提到了特定的Windows可执行文件,例如taskmgr.exe,这些可执行文件仅能侧载x86(32位)DLL。

通过模拟文件夹和DLL劫持绕过Win10 UAC

可以旁载x86 DLL的Windows进程

“我尝试了Wietze描述的某些文件,如Taskmgr.exe。但是,使用x86 DLL文件时,我只能成功加载DLL,” Gebert说。

“要在不使用我已经尝试过的文件的情况下进行有效的UAC旁路,我会得到这些结果。请注意,这些文件通常位于“ C:\ Windows \ WinSxS”中,但它们也将在“ C:\ Windows \ System32”中工作“(模拟文件夹)。”他继续说道。

Gebert在他的博客上提到了许多其他示例,描述了如何滥用这种UAC绕过技术,例如绕过软件限制策略(SRP)。

“当涉及到UAC时,许多供应商都没有看到问题。但是,我(已显示)这种类型的漏洞会影响所有(非企业)最终用户。恶意软件可以使用UAC旁路以最高的特权运行,包括。取消激活反病毒产品。使用这么多未打补丁的UAC绕过方法,反病毒软件几乎不可能全部检测到它们。”

Gebert为防止UAC绕过攻击而提出的直接缓解建议是将UAC设置为“始终通知”。这样做将始终在执行高风险应用程序之前向用户显示UAC提示。

Win10专业版官网,国内顶级win10专业版官方网站。
Copyright (C) Win10zjb.com, All Rights Reserved. win10专业版官网 版权所有