Electron远程执行漏洞技术简述
0x00简述
Electron 基于 Chromium 和 Node.js, 让开发者可以使用 HTML, CSS 和 JavaScript 构建应用。兼容 Mac, Windows 和 Linux, 它构建的应用可在这三个操作系统上面运行。Electron 已被像微软、 Facebook、 Slack和Docker 等公司用于应用程序的开发,应用非常广泛,国内也有不少厂商使用,如网易云音乐、百度网盘等。最近Electron官方通告了一个远程代码执行漏洞(CVE-2018-1000006),基于存在漏洞的版本进行开发的应用均存在被攻击的风险,攻击者可以远程在用户机器上执行任意程序。
0x01攻击原理
该漏洞主要影响Windows平台,攻击者通过沟通特殊的命令行参数串,通过浏览器解析和传递给存在漏洞的应用程序,达到启动目标程序的目的。这其中,利用了微软在进程启动时命令行传递规则,将原本残缺的参数闭合处理,同时利用Chromium支持启动其他进程的特性,最终实现攻击。
0x02攻击过程和效果
攻击者选取存在漏洞的应用程序,找到其注册的协议处理类型:

构造攻击页面:

当页面通过浏览器被访问时,特殊的调用参数会被传递给存在漏洞的应用程序,“%1”会被替换成页面中对应的内容,最终程序启动的命令行为:

其中后面的参数"--gpu-launcher=calc.exe" 会被存在漏洞的应用程序解析,最终调起攻击者指定的程序:

0x03 360安全卫士防御攻击防护
360安全卫士针对此攻击方式,进行了防护强化,增加了多维度的保护,保护用户电脑安全。

0x04 参考
https://github.com/electron/electron
https://electronjs.org/blog/protocol-handler-fix
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-1000006
---------------------------------------------------------
免责声明:
1.本文援引自互联网,旨在传递更多网络信息,仅代表作者本人观点,与本网站无关。
2.本文仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。