CVE-2020-10189 Zoho ManageEngine反序列化远程代码执行

阅读量790092

|评论2

|

发布时间 : 2020-03-19 12:00:31

 

漏洞描述

2020年3月6日,有安全研究人员steventseeley在Twitter上发布了Zoho企业产品Zoho ManageEngine Desktop Central中的反序列化远程代码执行漏洞.利用该漏洞可直接控制安装该产品的服务器,该产品为Windows系统上运行的一种端点管理解决方案,客户可用它管理网络中的设备,例如:Android手机,Unix服务器以及Windows工作站等.它往往充当公司内部的中央服务器,帮助系统管理员推送更新,远程控制系统,锁定设备,控制访问权限等。

 

影响版本

Zoho ManageEngine Desktop Central < 10.0.479

 

漏洞编号

CVE-2020-10189

 

威胁等级

高危

 

漏洞分析

1.寻找反序列化点

我们进入DesktopCentral_Server/webapps/DesktopCentral/WEB-INF/目录提取web.xml,可以看到一个名为CewolfServletservlet.

servlet对应的classde.laures.cewolf.CewolfRenderer,该类存在于DesktopCentral_Server/lib/cewolf-1.2.4.jar
该类中的get方法使用img参数接受imgKey的值

imgKey将会被Storage类中的getChartImage方法调用

在该jar包中存在一个FileStorage类基于Storage类实现接口的类.在其内部存在一个storeChartImage方法,该方法直接将接收到的文件流存储在本地.该方法内部调用一个getFileName类用于拼接base路径.

在查看storeChartImage方法的同时,我注意到还有一个获取文件的方法 getChartImage.

清晰可见的是它执行了一个非常危险的操作,直接让ObjectInputStream执行了readObject方法.可见这就是漏洞的触发点.那么问题来了,有了反序列化的点,序列化文件的点从哪里来?

2.寻找文件上传点

于是我再次检索web.xml,发现了一个具有上传功能的servlet.

servlet对应DesktopCentral_Server/lib/AdventNetDesktopCentral.jar中的com.me.mdm.agent.servlets.file.MDMFileUploaderServlet.

在该类中存在Post方法,可见udidfilename为可控点,我们完全可以自己传值控制.当然udid其实也做了三种安全检查,但并不影响目录穿越的产生.

filename被做了后缀名限制,只允许为log|txt|zip|7z其中一种

其实在security-mdm-agent.xml做了进一步限制

只允许完整文件名称为logger.txt|logger.zip|mdmlogs.zip|managedprofile_mdmlogs.zip.不过这丝毫不影响我们上传恶意的序列化文件.

3.寻找序列化可用的gadgets

我们进入DesktopCentral_Serverlib目录,寻找有漏洞的jar.

可见我们发现了commons-collections.jarcommons-beanutils-1.8.0.jar

commons-collections.jar不确定具体版本,我们查看一下版本

太完美了它是commons-collections:3.1.可见我们可以利用CommonsBeanutils1CommonsCollections3两条gagdets.当然还有jdk的两条gagdets,JDK7U21JRE8U20.

我们请出反序列化文件构建神器——ysoserial.

我们使用ysoserial中的两条gadgets构建序列化文件即可.但是这里我们需要注意的是如果直接使用可能会反序列化失败,

这是由于我们在打包ysoserial时默认的依赖版本是1.9.2,而Zoho ManageEngine Desktop Central自带的是commons-beanutils-1.8.0,这将导致UID不同,从而造成反序列化失败.我们只需要修改ysoserialpom.xml中的commons-beanutils为1.8系列即可

4.效果演示

为了满足漏洞管理条例,本文不直接放出payload,可自行参考文末的公开payload

Reference

https://nosec.org/home/detail/4211.html
https://srcincite.io/pocs/src-2020-0011.py.txt
https://nvd.nist.gov/vuln/detail/CVE-2020-10189

本文由清水川崎原创发布

转载,请参考转载声明,注明出处: https://www.anquanke.com/post/id/200474

安全客 - 有思想的安全新媒体

分享到:微信
+10赞
收藏
清水川崎
分享到:微信

发表评论

内容需知
  • 投稿须知
  • 转载须知
  • 官网QQ群8:819797106
  • 官网QQ群3:830462644(已满)
  • 官网QQ群2:814450983(已满)
  • 官网QQ群1:702511263(已满)
合作单位
  • 安全客
  • 安全客
Copyright © 北京奇虎科技有限公司 360网络攻防实验室 安全客 All Rights Reserved 京ICP备08010314号-66