CVE-2020-7475:施耐德PLC下游组件Dll注入导致的远程代码执行漏洞研究

CVE-2020-7475:施耐德PLC下游组件Dll注入导致的远程代码执行漏洞研究

时间:2022-11-08 作者:安帝科技


Schneider Electric EcoStruxure Control Expert(前称Unity Pro)是法国施耐德电气(Schneider Electric)公司的一套用于Schneider Electric逻辑控制器产品的编程软件。

Part1 漏洞状态

Part2 漏洞描述

EcoStruxure Control Expert上的 PLC 中没有完整性检查的代码下载,劫持组件DLL后向PLC注入代码可导致远程代码执行。

复现环境:
Windows 10
Schneider Electric EcoStruxure Control Expert v14.1

Part3 漏洞复现

– 安装Schneider Electric EcoStruxure Control Expert v14.1
由于没有施耐德实体PLC,这里使用PLC仿真器进行漏洞复现,基本原理一样。
启动Control Expert 14.1

新建项目(这里选择 BMX P34 2000 型号仿真器):

新建一个变量:

新建一个程序段:


写入一段ST赋值代码:

使用 xdbg附加 ControlExpert 并在编译函数处下断点:

连接PLC,然后将项目传输到PLC:

Xdbg 暂停在断点处,单步执行一次:

搜索特征码:

双击过去反汇编查看:

可以看到对应测试者写的ST代码的汇编代码。
这里替换字节码为测试者的测试代码后,让程序运行。
提示上载信息完好:

启动PLC仿真器:

弹出计算器,PLC仿真器异常:

复现成功!

Part4 漏洞细节

通过逆向手段,定位到编译PLC程序到PLC仿真器可执行的字节码的函数,再执行之后,修改原本编译好的字节码,程序会把测试字节码传输到PLC仿真器中,当操作PLC仿真器执行任务的时候,就会执行到测试代码。

Part5 修复缓解建议

1. 软件升级至最新版本v15.2。
2. PLC固件及时升级到最新版本。
3. 监控网络流量,查看是否有恶意代码的流量特征。
4. 安装主机卫士,设置IP白名单。

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