使用DLL注入方式绕过Windows 10勒索软件保护机制

Track-SSG   ·   发表于 2018-10-16 09:34:47   ·   漏洞文章

前言

从Windows 10 1709秋季创意者更新开始,微软为Windows 10安全中心添加了一个名为“受控制的文件夹访问”的全新勒索软件防护功能,可用于防止未知程序修改受保护文件夹中的文件。 

在上周举行的DerbyCon安全大会上,安全专家展示了一种利用DLL注入方式来绕过该勒索软件保护功能的方式。

页首配图

使用DLL注入绕过“受控制的文件夹访问”功能

“受控制的文件夹访问”可协助用户保护文件夹以及内部文件,简而言之就是只允许列入白名单的应用程序访问和修改该文件夹,白名单涵盖用户指定和Microsoft默认列入白名单的应用程序。

这个方式的突破口是已经列入了上述白名单的explorer.exe进程,安全展架可在系统启动时将恶意DLL注入资源管理器,从而绕过保护。

主要步骤为:

当explorer.exe启动时,它将加载在下面显示的HKEY_CLASSES_ROOT \ * \ shellex \ ContextMenuHandlers注册表项下找到的DLL。

注册表

HKEY_CLASSES_ROOT树是HKEY_LOCAL_MACHINE和HKEY_CURRENT_USER中注册表信息的合集。执行合并时,Windows会以HKCU树中的数据为优先级。

这就是说如果HKCU中存在键值,它的优先级将比HKLM中相同键值的高,并且是合并到HKEY_CLASSES_ROOT树中的数据。

默认情况下,当资源管理器启动时,它会从HKEY_LOCAL_MACHINE \ SOFTWARE \ Classes \ CLSID \ {90AA3A4E-1CBA-4233-B8BB-535773D48449} \ InProcServer32键值加载Shell.dll。要将恶意DLL加载到explorer.exe中,只需创建一个HKCU \ Software \ Classes \ CLSID \ {90AA3A4E-1CBA-4233-B8BB-535773D48449} \ InProcServer32键值并将其默认值设为恶意DLL即可。 

当Explorer.exe被结束和重启时,explorer.exe会启动恶意DLL而不是正常的Shell.dll。下图是注入explorer.exe的DLL示例。

注入explorer.exe的DLL示例

这样就可以绕过了“受控制的文件夹访问”功能,而且Windows Defender也没有检测到该恶意行为。实际上,Avast、ESET、Malwarebytes Premium和McAfee等老牌安全软件的勒索软件保护功能都没有报警。

微软的回应

安全专家已向微软安全响应中心披露了这个漏洞,并提供了可用于绕过“受控制的文件夹访问”功能的概念验证。

披露漏洞

不过,微软并不认为这是一个符合赏金计划和需要修复的漏洞。微软的回信中是这么说的:“如果我理解正确的话,这种攻击方式的前提是攻击者已经登录了目标账户,接下来是通过修改注册表来植入DLL。由于该账户只能写入HKCU,因此无法影响其他用户。由于登录账户之后就已经获得了相应权限,也不存在提权漏洞等问题。因此该问题关闭且不再跟踪。”

微软的回信

但是安全专家认为勒索软件不需要提权来加密受害者的计算机,恶意软件开发人员可以使用其他漏洞或方法掌控卷影复制服务(VSS)。这样以来可以在没有管理员权限的情况下安装恶意软件,并且仍然可以轻松绕过“受控制的文件夹访问”功能。


*参考来源:bleepingcomputer,Freddy编译整理,转载来自 FreeBuf.COM。


打赏我,让我更有动力~

0 条回复   |  直到 2018-10-16 | 1530 次浏览
登录后才可发表内容
返回顶部 投诉反馈

© 2016 - 2024 掌控者 All Rights Reserved.