Delta Industrial Automation COMMGR缓冲区溢出漏洞:CVE-2018-10594复现

Delta Industrial Automation COMMGR缓冲区溢出漏洞:CVE-2018-10594复现

时间:2022-05-12 作者:安帝科技 VulEye-Snail

​台达电子(DeltaElectronics)成立于1971年4月,总部设于台湾台北市,原以生产电视线圈和电子零组件,以及制造绕线式磁性元件起家,为全球磁性及散热元件重要供应商。至1975年8月20日改组为股份有限公司,台达电子为市场占有率世界第一的交换式电源供应器与直流风扇产品的领导厂商,包括电源管理的整体解决方案、视讯显像系统、工业自动化、网络通讯产品、太阳能、LED照明与电动车控制系统及整车动力系统等可再生能源与各种节能及新能源科技。营运据点、生产据点及研发中心遍布欧、亚、美、非洲。
DeltaIndustrial Automation COMMGR是台达电子公司的一套通信管理软件,其主要的功能在于扮演台达软件与硬件之间的通讯桥梁,通过COMMGR的管理,使联机的工作更为便利也更有效率。

Part1 漏洞状态

Part2 漏洞描述

Delta Industrial Automation COMMGR 1.08及之前版本中存在缓冲区溢出漏洞,原因为COMMGR.exe在调用recv时没有判断字符串长度,直接向栈中写入超过原本长度限制的数据,其结果可导致远程攻击者可利用该漏洞执行任意代码或造成应用程序拒绝服务。

Part3 漏洞复现

1. 实验环境
渗透主机:win10 (192.168.33.1)
靶机环境:win xp sp3(192.168.33.220)
软件版本:COMMGR 1.08
2.涉及工具
OllyDbg
Python3
3.漏洞复现
1)构造POC,其中shellcode为弹出计算器脚本,如下图所示:

2)靶机环境搭建
打开 Delta Industrial Automation COMMGR 1.08,如下图所示:

双击,托盘图标,点击开启,确认502端口开启,如下图所示:

3)攻击者通过渗透主机执行命令:python3 .\COMMGR_dos_2.py。
4)查看结果,发现成功执行shellcode弹出计算器,如下图所示:

Part4 漏洞分析

OllyDbg查找调用recv的地方,发现只有一处调用在0x66437B,在该位置下断点,发现可以断下来。

然后发现接收数据包的地址0x12ECF0 在堆栈上,数据长度就是我们发送的长度。

返回到调用这个流程的函数。

我们返回到0x4108A8的位置,也就是上一句 0x4108A3 调用的接收数据,查看堆栈上数据。

发现就是我们发送的测试数据。
总结:通过分析发现漏洞产生的具体原因为COMMGR.exe在调用recv时没有判断字字符串长度,直接将接收到的字符串复制到4208字符的栈空间中,导致溢出。

Part5 修复建议

据厂商提供的信息,COMMGR v1.09 (或以上)版本已修复缺陷,建议用户下载使用:
http://www.delta-china.com.cn/services/DownloadCenter2.aspx?secID=8&pid=2&tid=0&CID=06&itemID=060301&typeID=1&downloadID=,&title=–%20%E8%AB%8B%E9%81%B8%E6%93%87%20–&dataType=8;&check=1&hl=zh-CN

————————————————————
获取更多情报
联系我们,获取更多漏洞情报详情及处置建议,让企业远离漏洞威胁。
电话:18511745601
邮箱:shiliangang@andisec.com