施耐德 PLC 仿真器远程代码执行漏洞CVE-2020-7559研究
时间:2022-05-05 作者:安帝科技 VulEye-小菜逼
Part1 漏洞状态
Part2 漏洞描述
该漏洞源于当通过Modbus协议收到一个手动构造的恶意请求时,会导致EcoStruxure Control Expert软件中的PLC仿真器程序崩溃或远程代码执行。
Part3 影响范围
Schneider Electric EcoStruxure Control Expert version <= v14.1
Part4 复现环境
Windows 10
Schneider Electric EcoStruxure Control Expert v14.1
Part5 漏洞复现
– 安装Schneider Electric EcoStruxure Control Expert v14.1
– 软件路径
C:\Program Files (x86)\Schneider Electric\ControlExpert 14.1\PLC_Simulator
– 启动sim仿真器程序
– 查看启动端口502开放,程序启动成功!
– 运行测试脚本
强制关闭远程连接,进程退出,复现成功!
Part6 漏洞细节
· Xdbg加载sim.exe 在tcp/ip模块中下断点。
· 然后运行test.py测试脚本。
程序断下,单步运行,查看接收buffer位置数据。
是我们发送的测试数据。
在接收数据位置下硬件访问断点。
· 运行程序。
程序断到这里,返回一层。
可以看到是 exec.dll 模块中调用memcpy 时产生的栈溢出,
再返回一层。
发现接收网络发包的位置是ebp-0x8004,
可以推算网络发包数据超过0x8000就可以造成栈溢出,
然后构造恶意数据包,利用栈溢出造成远程代码执行。
如果要达到远程代码执行的目的,需要绕过栈Cookie校验,SafeSEH检测和DEP保护三道防护才可以。
Part7 修复和缓解建议
· 升级软件到最新版本。
· 如果不能升级到最新版,可以使用流量检测设备监控Modbus协议MBAP中data_length字段,数值超过 0x8000 大小(10进制32768)即可报警。
· 安装主机卫生设置通讯白名单。
———————————————-
获取更多情报
联系我们,获取更多漏洞情报详情及处置建议,让企业远离漏洞威胁。
电话:18511745601
邮箱:shiliangang@andisec.com