Microsoft恶意软件防护引擎远程执行代码漏洞(CVE-2017-0290)

华盟原创文章投稿奖励计划

1

漏洞编号:CVE-2017-0290

漏洞发现者:Google Project Zero的 Natalie Silvanovich和Tavis Ormandy

漏洞等级:严重

漏洞危害:成功利用此漏洞的攻击者可在LocalSystem账户下执行任意代码,并控制系统。攻击者可以安装程序; 查看,更改或删除数据; 以及创建具有完整用户权限的新帐户。

漏洞概述


当Microsoft恶意软件保护引擎未正确扫描攻击者精心构造的文件导致内存损坏时,触发远程执行代码漏洞。成功利用此漏洞的攻击者可在LocalSystem账户下执行任意代码,并控制系统。攻击者可以安装程序; 查看,更改或删除数据; 甚至创建具有完整用户权限的新帐户。

要利用此漏洞,必须由受影响的Microsoft恶意软件防护引擎扫描特制的文件。攻击者可以通过多种方法将特制文件放置在Microsoft恶意软件防护引擎扫描的位置。例如,攻击者可以使用网站将特制文件传送到受害者的系统,当用户查看该网站的时候,这个特制的文件就会被Microsoft恶意软件防护引擎扫描。攻击者还可以通过电子邮件或在打开文件时扫描Instant Messenger消息中的特制文件。此外,攻击者可以利用提供托管用户内容的网站,将特制文件上传到由托管服务器上,Microsoft恶意软件保护引擎就会在托管服务器上扫描攻击者提供的特制文件。

如果受影响的反恶意软件启用了实时保护,则Microsoft恶意软件保护引擎将自动扫描文件,从而在扫描特制文件时导致利用该漏洞。如果未启用实时扫描,则攻击者将需要等待直到发生计划扫描才能利用该漏洞。

影响范围:

很多微软的反恶意程序产品都在使用微软恶意程序防护引擎。鉴于其中包含Windows 7/8/8.1/10/Server 2016中就默认安装的反恶意程序产品,该漏洞应该是非常严重。微软在其安全公告页面中列出了受影响产品,包括:

1

漏洞详情:

具体来说,MsMpEng是恶意程序防护服务,Windows 8/8.1/10/Server 2012等都默认启用。MSE(Microsoft Security Essentials)、系统中心终端防护和微软的各种安全产品都采用此核心引擎。

MsMpEng以AUTHORITY\SYSTEM权限运行,无沙盒,通过Windows服务(如Exchange、IIS等)在无需身份认证的情况下可远程访问。

对于工作站而言,攻击者给用户发送邮件(甚至不需要阅读邮件或打开附件)、在浏览器中访问链接、使用即时通讯等,就能访问mpengine(MsMpEng用于扫描和分析的核心组件)。因为MsMpEng采用文件系统minifilter来拦截以及检查所有的文件系统活动,所以给硬盘的任意位置写入相应内容就能实现mpengine中函数的访问。

鉴于其高权限、可访问及普遍存在性,MsMpEng中的这个漏洞还是极为严重的。

不难发现mpengine本身就是个很大的攻击面,其中包含很多专门的文件格式、可执行封装包、cryptor、完整系统模拟器的Handler,还有各种架构和语言的解释器。所有这些代码,远程攻击者都是可以访问的。

其中NScript是mpengine的一个组件,这个组件用于评估任意看起来像是JS的文件系统或网络活动。值得一提的是,这是个无沙盒环境、高权限的JavaScript interpreter——用于评估不受信任的代码。

谷歌的研究人员写了个工具,通过代码shell访问NScript。发现函数JsDelegateObject_Error::toString()会从中读取“message”属性,但在传递给JsRuntimeState::triggerShortStrEvent()之前未能验证属性类型。其默认假定message是个字符串,但实际上可以是任意类型。这就能够让攻击者传递其它任意对象。

更多详情可参见Chromium。其中也提供了漏洞再现的方法。

若要再现该漏洞,可点击这里下载:https://bugs.chromium.org/p/project-zero/issues/attachment?aid=283405 。访问包含下述代码的网站后,

1

捕捉到的debug会话:

1

1

1

值得一提的是,在执行JS之前,mpengine采用各种启发式方案来决定是否有必要作评估。其中一个启发式方案会评估文件熵——不过研究人员发现其实只要附加上足够多的注释,也就能够触发所谓的“评估”过程了。

修复建议


检查是否安装更新,对于受影响的软件,请验证Microsoft恶意软件防护引擎版本是否为1.1.10701.0或更高版本。

如果必要的话,请安装更新。企业反恶意软件部署的管理员应确保其更新管理软件被配置为自动更新和部署,该更新会在48小时内生效。有关如何手动更新Microsoft恶意软件防护引擎和恶意软件定义的详细信息,请参阅Microsoft知识库文章2510781

更多漏洞详细细节:

https://bugs.chromium.org/p/project-zero/issues/detail?id=1252&desc=5

本文原创,作者:congtou,其版权均为华盟网所有。如需转载,请注明出处:https://www.77169.net/html/60655.html

发表评论