2021年7月8日, 亚信安全应急响应中心(CERT)监测Windows Defender远程代码执行漏洞(CVE-2021-31985)的POC被公开,Google Project Zero也发布了该漏洞的细节信息,攻击者有可能据此很快开发出EXP。攻击者利用该漏洞可以在非交互状态下,以系统最高权限执行任意恶意代码。由于Windows Defender默认内置于所有常用Windows系统中,一旦该漏洞被利用,危害极大。
该漏洞与CVE-2021-1647相类似,漏洞点依然存在于Windows Defender对ASProtect保护的PE文件的处理过程中。
ASProtect是功能非常完善的加壳、加密保护工具。能够在对软件加壳的同时进行各种保护,如:反调试跟踪、自校验及用密钥加密保护等;还有多种限制使用措施,如:使用天数限制、次数限制及对应的注册提醒信息等。另外,该软件还具有密钥生成功能。
ASProtect在加密的过程中,会在程序中生成一些字节码,并打包一个自带虚拟机的DLL文件,当加密后的程序在运行时会调用DLL动态解释程序中的字节码。Windows Defender在解密ASProtect加密的PE格式可执行文件时,会解密对应的DLL文件,并将运行时DLL的代码添加到模拟器虚拟文件系统。
在代码CEmbededDLLDumper::GenerateDLL,重建嵌入文件的DLL中的IMAGE_SECTION_HEADER结构,并没有校验DLL指定的RelativeVirtualAddress,从而允许ImageBase读取和写入任意偏移量,导致内存结构破坏、引发远程代码执行风险。
Windows Defender < 1.1.18200.3
2021年6月8日,微软官方在6月当月安全更新中发布了补丁,修复了该漏洞,我们建议启动Windows Defender的用户应立即更新至1.1.18200.3及其之后的版本。打开 Windows 安全程序。例如,在搜索栏中键入安全,然后选择 Windows 安全程序。
在导航窗口中,选择病毒和威胁防护。
在主窗口的病毒和威胁防护更新下,选择检查更新。
再次选择检查更新。
在导航窗口中,选择设置,然后选择关于。
检查引擎版本号。如果恶意软件防护引擎版本号或签名包版本号匹配或超过您尝试验证为已安装的版本号,则更新安装成功。
https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-31985https://packetstormsecurity.com/files/163443/MpEngine-ASProtect-Embedded-Runtime-DLL-Memory-Corruption.html