CVE-2020-10189/Zoho ManageEngine Desktop Central 10反序列化远程代码执行
字数 1774 2025-08-26 22:12:03
Zoho ManageEngine Desktop Central 10 反序列化远程代码执行漏洞分析 (CVE-2020-10189)
漏洞概述
2020年3月6日,安全研究人员steventseeley公开了Zoho ManageEngine Desktop Central中的反序列化远程代码执行漏洞。该漏洞允许攻击者直接控制安装该产品的服务器。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中可找到一个名为CewolfServlet的servlet - 该servlet对应的class为
de.laures.cewolf.CewolfRenderer,位于DesktopCentral_Server/lib/cewolf-1.2.4.jar - 该类中的
get方法通过img参数接收imgKey的值 imgKey会被Storage类中的getChartImage方法调用- 在
FileStorage类(实现Storage接口)中存在getChartImage方法,该方法直接使用ObjectInputStream执行readObject操作,形成反序列化漏洞点
2. 寻找文件上传点
- 在
web.xml中找到一个具有上传功能的servlet - 该servlet对应
DesktopCentral_Server/lib/AdventNetDesktopCentral.jar中的com.me.mdm.agent.servlets.file.MDMFileUploaderServlet Post方法中udid和filename为可控参数filename有后缀名限制(只允许log|txt|zip|7z)security-mdm-agent.xml中有进一步限制(只允许logger.txt|logger.zip|mdmlogs.zip|managedprofile_mdmlogs.zip)- 尽管有这些限制,仍可上传恶意序列化文件
3. 寻找可用的gadgets
- 在
DesktopCentral_Server\lib目录下发现存在漏洞的库:commons-collections.jar(版本3.1)commons-beanutils-1.8.0.jar
- 可利用的gadgets:
CommonsBeanutils1CommonsCollections3- JDK的
JDK7U21和JRE8U20
- 使用
ysoserial构建序列化文件时需要注意:- 默认依赖版本(1.9.2)与目标系统(1.8.0)不同会导致UID不匹配
- 需要修改
ysoserial的pom.xml中commons-beanutils为1.8系列并重新打包
漏洞利用流程
- 构造恶意序列化payload(使用适配的
ysoserial) - 通过文件上传接口上传恶意文件
- 触发
CewolfServlet的反序列化操作 - 实现远程代码执行
修复建议
升级至Zoho ManageEngine Desktop Central 10.0.479或更高版本
参考链接
- 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
注意事项
- 实际利用时需要注意
commons-beanutils版本匹配问题 - 文件上传路径和名称需要符合系统限制
- 反序列化点触发需要构造特定的请求参数