导语:Controlled Folder Access是win10中加入的新的勒索软件保护功能,在上周举行的DerbyCon安全会议上,安全研究人员展示了“勒索软件用DLL注入来绕过Controlled Folder Access的勒索软件保护功能”。

微软在Windows 10操作系统中加入了一个新的勒索软件保护功能——Controlled Folder Access(受控文件夹访问),该功能可用于预防受保护的文件夹中的文件被未知的程序修改。

在上周举行的DerbyCon安全会议上,安全研究人员展示了“勒索软件用DLL注入来绕过Controlled Folder Access的勒索软件保护功能”。

用DLL注入绕过Controlled Folder Access

Controlled Folder Access是win10引入的保护文件夹和文件不被白名单外的应用修改的特征。白名单指用户指定或微软默认的一些应用程序列表。

explorer.exe程序就在Controlled Folder Access的白名单列表中,安全研究人员Soya Aoyama找出一种将恶意DLL注入Explorer来绕过Controlled Folder Access的方式。因为Explorer在白名单里,所以当DLL注入后,Explorer启动时就可以绕过勒索软件保护功能。

当explorer.exe启动时,会加载HKEY_CLASSES_ROOT\*\shellex\ContextMenuHandlers注册表中的DLL,如下图所示:

 

图片.png

HKEY_CLASSES_ROOT树是HKEY_LOCAL_MACHINE和HKEY_CURRENT_USER中的注册表信息的合集。在执行合并时,Windows会给出HKCU树中的优先级。

也就是说,如果有key存在HKCU中,其优先级就高于HKLM中的相同key,也会最终合并到HKEY_CLASSES_ROOT树中。关于合并的更多说明可参见https://docs.microsoft.com/en-us/windows/desktop/sysinfo/hkey-classes-root-key

默认情况下,explorer启动时会从HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{90AA3A4E-1CBA-4233-B8BB-535773D48449}\InProcServer32 key中加载Shell.dll。为了将恶意DLL加载到explorer.exe中,研究人员创建了一个HKCU\Software\Classes\CLSID\{90AA3A4E-1CBA-4233-B8BB-535773D48449}\InProcServer32 key,然后将其默认值修改为恶意DLL。

当Explorer.exe进程被kill掉和重启时,恶意DLL就会加载到explorer.exe中。下图是DLL注入到explorer.exe的示例:

图片.png

问题的关键是上述动作不仅绕过了Controlled Folder Access,还绕过了Windows defender。根据研究人员的测试,Avast, ESET, Malwarebytes Premium, McAfee的勒索软件保护都没有检测到上述行为。

微软响应

研究人员Aoyama已将该漏洞报告和可以绕过Controlled Folder Access的POC通报给了微软SRC。但微软并不觉得这是一个需要修复的漏洞,具体回应为:

图片.png

如果说你的发现是正确的话,该报告预测攻击者已经拥有了目标账户的访问权限,然后通过修改注册表注入DLL。如果只有写入HKCU的权限,是不能影响其他用户的。因此,这不属于权限提升,因为修改注册表注入后和注入前对目标设备和系统的访问权限是相同的。

但勒索软件加密受害者计算机时并不需要进行权限提升。唯一需要的是清除Volume Shadow Copy(卷影拷贝),恶意软考开发者可以用其他的漏洞和方法来执行vssadmin(卷影复制服务,用于卷影复制服务的命令行接口)。

通过绕过Controlled Folder Access的勒索软件保护功能,恶意软件可以在没有管理员权限的情况下安装。这可能正是危险和攻击的开始。

源链接

Hacking more

...