原创漏洞-施耐德EcoStruxure Power Desig任意代码执行漏洞分析
日期:2024年11月15日 阅:90
1、摘要
这篇文章旨在介绍施耐德EcoStruxure Power Design Ecodial INT V5.2.0版本的软件在打开工程文件时可以导致任意代码执行的反序列化漏洞。该漏洞会在任意施耐德工程文件打开过程中触发,导致恶意代码执行,在用户主机中按照木马或者后门程序。漏洞是由于施耐德软件在加载工程文件的时候,未对软件的工程文件进行过滤而导致恶意代码被执行。该漏洞是由浙江国利网安科技有限公司工控安全实验室在2024年10月18日对施耐德Power Design软件加载工程进行分析的过程中,通过对工程文件内容的解析流程分析时首次发现的,后续的漏洞修复工作请及时关注我司及施耐德官方公告。
2、漏洞简介
漏洞类型:任意代码执行漏洞
CNNVD漏洞编号:CNNVD-2024-93751238
产品供应商:施耐德
产品名称及版本:EcoStruxure Power Design Ecodial INT V5.2.0
利用效果:能够实现在普通用户权限下的任意代码执行
漏洞危害:攻击者可以利用漏洞,在目标系统上建立持久化的权限,通过执行恶意代码来保持对受害者的持续访问。
利用难度:利用难度高,要在目标计算机拥有普通用户权限。
利用场景:属于ATT&CK框架TA0002执行阶段,T1203客户端执行漏洞利用。攻击者可以诱导用户打开精心构造的工程文件,一旦用户打开该文件随即将执行攻击者构造的恶意命令,最终实现对用户计算机的控制。
3、施耐德EcoStruxure Power Design介绍
Schneider Electric EcoStruxure Power Design是一款强大的电力设计工具,旨在提升设计效率和准确性,助力工程师和设计师创建更安全、可持续的电力解决方案。通过先进的自动化功能和实时数据集成,该软件为电力行业的设计和管理带来了显著的便利。
该工具的主要功能包括以下几个方面:
(1)电气设计工具
提供全面的电气设计功能,包括负载计算、短路分析、保护协调等,适用于各类电力系统设计。
(2)自动化文档生成
自动生成电气图纸和相关文档,减少手动输入,提高工作效率,确保设计的一致性和准确性。
(3)实时数据集成
支持与物联网(IoT)设备和其他系统的集成,实时获取和分析数据,以优化设计过程。
(4)符合国际标准
确保设计符合国际电气标准和当地法规,增强安全性和合规性。
(5)可持续设计支持
促进绿色建筑设计,优化能效,帮助用户降低运营成本。
(6)协作功能
允许团队成员之间的协作,促进信息共享和沟通,提升项目管理效率。
其应用的领域包括:
(1)建筑设计。适用于商业、工业及住宅建筑的电力系统设计。
(2)数据中心。优化数据中心电力分配,确保供电稳定性。
(3)可再生能源。支持太阳能和风能系统的设计与集成。
(4)工业自动化。提高工业设施的电力管理效率和可靠性。
4、BinSerializer类反序列化的漏洞
4.1 漏洞原理介绍
我们在分析施耐德EcoStruxure Power Design – Ecodial INT V5.2.0工程文件的打开流程中发现,软件会去解析工程文件,并根据工程文件中的内容进行一些初始化工作,这其中就涉及到了对类实例的创建,即反射。由此,我们发现了该过程中的一个漏洞点,即通过使系统加载用户精心构造的工程文件来达到任意代码执行的效果。
通过分析可以发现,整个漏洞触发的流程可以用下面的图概况表示:
图 1 EcoStruxure Power Design加载工程时漏洞触发流程
其中,该漏洞触发流程中的调用路径上的具体调用堆栈如下图所示:
LoadProjectFromStream函数的调用情况如下图所示,该函数是从流中加载工程文件。
BinSerializer.Load函数的调用详情如下图所示:
最终的调用链会调用系统的BinaryFor-matter来进行反序列化,从而触发漏洞,其调用详情如下图所示:
4.2 漏洞利用效果
基于以上分析,我们可以构造出fake.eac工程文件,在其中加入运行恶意代码的命令,具体的代码如下面图中所示:
用户在打开该工程文件时将运行恶意软件,反弹shell到攻击者的机器,具体的效果如下图所示:
攻击者获得用户的控制权限,可以远程控制用户的主机,如下图所示:
4.3漏洞利用总结
本漏洞实现了任意代码执行,主要利用了EcoStruxure Power Design在加载工程文件时未对反序列化过程进行过滤,导致了任意代码执行。尽管该漏洞的整个利用过程在用户的本地机器发生,而且需要用户的操作,但是用户误操作打开攻击者构造的工程文件时仍然会触发该漏洞。
4.4 漏洞应用场景
攻击者为了入侵用户的计算机,获取到用户主机的控制权限,可以按照上面漏洞原理介绍的过程构造一个恶意的工程文件。通过其他方式诱导用户打开该恶意工程文件,可以在用户的主机上安装木马或者后门程序,达到控制用户主机的目的。
同时,该恶意的工程文件不是可执行文件格式,更像是一个数据文件,因此,不仅在一定程度上可以躲避杀毒软件的查杀,具有一定的免杀特性,而且更容易使用户放松警惕,打开该工程文件。
参考资料
[1]https://siebene.github.io/2023/03/27/Learning-Exploit-of-NET-Remoting/
[2]https://learn.microsoft.com/en-us/previous-versions/dotnet/netframework-4.0/5dxse167(v=vs.100)
[3]https://malware.news/t/bypassing-low-type-filter-in-net-remoting/34189
[4]https://github.com/Y4er/dotnet-deserialization/blob/c8dac42dfc267d32492e18fe13a3ba5ef717b58c/.NET%20Remoting.md
[5]https://github.com/tyranid/ExploitRemotingService
浙江国利网安科技有限公司坚守“让控制更安全,让用户更放心”的使命,凭借30年的工控技术积累和12年的工控安全研究,已形成了“工控安全试验场”“工控安全盾”等独具特色与优势的攻防核心技术、安全产品与服务体系和水务水利、石油炼化、油气管网、城市燃气、电力能源、轨道交通、智能制造等系列行业解决方案,致力于成为世界一流的关键基础设施安全整体解决方案提供商。