【安全通报】Zoho企业管理产品曝出高危漏洞

22.jpg

近日,有安全研究人员在Twitter上发布了Zoho企业产品Zoho ManageEngine Desktop Central中的高危漏洞,可导致未经身份验证的攻击者在设备上以root权限直接执行命令,接管设备。

aa.png

根据Zoho网站的说法,这款产品是一种端点管理解决方案,客户可用它管理网络中的设备,例如:Android智能手机,Linux服务器以及Windows工作站等。它往往充当公司内部的中央服务器,帮助系统管理员推送更新,远程控制系统,锁定设备,控制访问权限等。

攻击者一旦完全控制该设备,即会对公司内部的设备群产生极大安全威胁,实施勒索攻击等一系列恶意操作。

概况

根据目前FOFA系统最新数据(一年内数据),显示全球范围内(title="ManageEngine Desktop")共有2966个相关服务对外开放。美国使用数量最多,共有1191个,英国第二,共有266个,德国第三,共有156个,加拿大第四,共有122个,澳大利亚第五,共有89个。

全球范围内分布情况如下(仅为分布情况,非漏洞影响情况)

222.png

中国大陆地区上海市使用数量最多,共有10个,北京市第二,共有7个,江苏省第三,共有5个,天津市第四,共有5个,浙江省第五,共有4个。

bbb.png

危害等级

严重

漏洞原理

在web.xml文件中,可以看到默认的可用servlet之一有CewolfServlet

<servlet>
<servlet-name>CewolfServlet</servlet-name>
<servlet-class>de.laures.cewolf.CewolfRenderer</servlet-class>

<init-param>
    <param-name>debug</param-name>
    <param-value>false</param-value>
</init-param>
<init-param>
    <param-name>overliburl</param-name>
    <param-value>/js/overlib.js</param-value>
</init-param>
<init-param>
    <param-name>storage</param-name>
    <param-value>de.laures.cewolf.storage.FileStorage</param-value>
</init-param>

<load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
<servlet-name>CewolfServlet</servlet-name>
<url-pattern>/cewolf/*</url-pattern>
</servlet-mapping>

其中包含的部分代码如下,会通过GET参数img来设置imgKey变量,随后再调用storage.getChartImage方法。

String imgKey = request.getParameter("img");                                // 1
if (imgKey == null) {
        logAndRenderException(new ServletException("no 'img' parameter provided for Cewolf servlet."), response,
                width, height);
        return;
    }
 Storage storage = config.getStorage();
 ChartImage chartImage = storage.getChartImage(imgKey, request);   

而storage实例作为初始化参数映射到web.xml文件中的servlet代码:

<init-param>
    <param-name>storage</param-name>
    <param-value>de.laures.cewolf.storage.FileStorage</param-value>
</init-param>



ois = new ob jectInputStream(new FileInputStream(getFileName(id)));     
res = (ChartImage) ois.readob ject();                           
ois.close();

最后代码会通过攻击者控制的id参数调用getFileName,它会直接返回文件路径(basePath)。而这个字段和servlet的init 有关。同时代码通过FileInputStream利用提供的文件路径创建一个新的objectInputStream实例。

最重要的一点是,代码会使用文件内容去调用 readobject

漏洞影响

10.0.479之前的版本均有可能受到影响

CVE编号

CVE-2020-10189

修复建议

目前官网已发布安全更新,请管理员及时下载安装:https://www.manageengine.com/products/desktop-central/remote-code-execution-vulnerability.html

参考

[1] https://www.zdnet.com/article/zoho-zero-day-published-on-twitter/#ftag=RSSbaffb68

[2] https://srcincite.io/advisories/src-2020-0011/

[3] https://twitter.com/steventseeley/status/1235635108498948096

白帽汇从事信息安全,专注于安全大数据、企业威胁情报。

公司产品:FOFA-网络空间安全搜索引擎、FOEYE-网络空间检索系统、NOSEC-安全讯息平台。

为您提供:网络空间测绘、企业资产收集、企业威胁情报、应急响应服务。

免责声明:文章内容不代表本站立场,本站不对其内容的真实性、完整性、准确性给予任何担保、暗示和承诺,仅供读者参考,文章版权归原作者所有。如本文内容影响到您的合法权益(内容、图片等),请及时联系本站,我们会及时删除处理。查看原文

为您推荐