漏洞细节 |
漏洞POC |
漏洞EXP |
在野利用 |
有 |
有 |
有 | 无 |
漏洞名称 |
Schneider Electric Modbus Serial Driver 基于栈的缓冲区溢出漏洞 |
CVE编号 |
CVE-2013-0662 |
漏洞类型 |
远程代码执行 |
漏洞等级 | 9.3 高危(Critical) |
公开状态 | 公开 |
漏洞描述 |
Schneider Electric Modbus Serial Driver是法国施耐德电气(Schneider Electric)公司的一款串行驱动。 |
Version: 1.10 – 3.2
系统环境:
Windows xp sp3
软件:
Schneider Electric Modbus Serial Driver 3.2
安装软件:
软件路径:
C:WINDOWSsystem32ModbusDrv.exe
监控 27700 端口
Python运行脚本:
进程退出,弹出计算器
首先在这里接收7个字节的数据
会有数据校验,这块数据必须是 0xFFFF
再次接收数据:
这些就是研究者在poc中构建的数据
这里有数据校验,必须是0x0064 否则不会走正常函数流程
这个函数就是漏洞触发的关键函数,步入查看细节
Esp 是 0x00F2F308 返回地址是 0x409983
这一块就是 漏洞触发的点,因为没有自己校验长度,把用户数据当接收长度,导致栈上数据被覆盖。
这是这段循环前,返回值堆栈附近的情况。
循环执行之后,堆栈已经完全被研究者构造的数据覆盖了。
执行到返回
看这里返回地方的堆栈。
返回地址是:
Jmp esp xp中常用的动态定位shell code的方法
堆栈中划线的是 0x90 nop指令
单步返回,然后再单步一次,程序就直接跑到 shellcode位置。
放开程序运行
弹出计算器,退出进程。
1. 把软件升级到最新版本。
2. 不要把软件监听的端口27700暴露在外网。
3. 内网维护人员设置可信IP访问。
4. 安全维护人员进行主机加固,如安装杀毒软件,主机卫士等。
联系我们,获取更多漏洞情报详情及处置建议,让企业远离漏洞威胁。
电话:18511745601
安帝科技丨ANDISEC
北京安帝科技有限公司是新兴的工业网络安全能力供应商,专注于网络化、数字化、智能化背景下的工业网络安全技术、产品、服务的探索和实践,创新应用网络空间行为学及工业网络行为验证,构建了工业大数据深度分析、威胁情报共享、威胁感知和协同响应等核心能力优势,为电力、石油石化、煤炭、烟草、轨道交通、智能制造等关键信息基础设施行业提供安全产品、服务和综合解决方案,工业网络安全态势感知平台已部署4000余家电厂。
点击“在看”鼓励一下吧
原文始发于微信公众号(安帝Andisec):CVE-2013-0662:施耐德 ModBus串行驱动远程代码执行漏洞分析