前言
从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示例。
这样就可以绕过了“受控制的文件夹访问”功能,而且windows defender也没有检测到该恶意行为。实际上,avast、eset、malwarebytes premium和mcafee等老牌安全软件的勒索软件保护功能都没有报警。
微软的回应
安全专家已向微软安全响应中心披露了这个漏洞,并提供了可用于绕过“受控制的文件夹访问”功能的概念验证。
不过,微软并不认为这是一个符合赏金计划和需要修复的漏洞。微软的回信中是这么说的:“如果我理解正确的话,这种攻击方式的前提是攻击者已经登录了目标账户,接下来是通过修改注册表来植入dll。由于该账户只能写入hkcu,因此无法影响其他用户。由于登录账户之后就已经获得了相应权限,也不存在提权漏洞等问题。因此该问题关闭且不再跟踪。”
但是安全专家认为勒索软件不需要提权来加密受害者的计算机,恶意软件开发人员可以使用其他漏洞或方法掌控卷影复制服务(vss)。这样以来可以在没有管理员权限的情况下安装恶意软件,并且仍然可以轻松绕过“受控制的文件夹访问”功能。
*参考来源:bleepingcomputer,freddy编译整理,转载请注明来自 freebuf.com。
试用申请