原创漏洞 – 西门子博途19日志解析模块反序列化漏洞分析

原创漏洞 - 西门子博途19日志解析模块反序列化漏洞分析



原创漏洞

原创漏洞 - 西门子博途19日志解析模块反序列化漏洞分析

// 摘要

      这篇文章旨在介绍西门子博途19可以导致任意代码执行的反序列化漏洞,该漏洞会在任意博途工程打开过程中触发,导致执行恶意代码。漏洞是由于博途软件在加载工程文件时,在对博途工程文件中的Logs目录下的xml文件进行解析时,没有对icon标签下的数据进行过滤,导致恶意代码被执行。该漏洞由浙江国利网安科技有限公司工控安全实验室在对博途软件加载工程进行分析的过程中,通过对Logs目录下的xml文件内容的解析流程进行分析时首次发现的,后续的漏洞修复工作请及时关注我司及西门子官方公告。


//漏洞简介

漏洞类型:任意代码执行漏洞

CNNVD编号:CNNVD-2024-98973936

产品供应商:西门子

产品名称及版本:博途19

利用效果:能够实现任意代码执行。

漏洞危害:攻击者可以利用漏洞,在目标系统上建立持久化的权限,通过执行恶意代码来保持对受害者的持续访问。

利用难度:利用难度高,需在目标计算机拥有普通用户权限。

利用场景:属于ATT&CK框架TA0002命令执行阶段,T1203利用漏洞执行命令。攻击者通过在博途工程文件的Logs目录下准备好精心构造的包含了xml的zip文件,在用户打开该工程时,点击公共数据下的日志菜单的时候,会触发该漏洞,执行xml文件中的icon标签下的命令。


// 西门子博途19介绍

      TIA博途是全集成自动化软件TIA Portal的简称,是西门子工业自动化集团发布的一款全新的全集成自动化软件。它是业内首个采用统一的工程组态和软件项目环境的自动化软件,几乎适用于所有自动化任务。借助该全新的工程技术软件平台,用户能够快速、直观地开发和调试自动化系统。


      TIA博途的核心优势在于其统一化的工程组态环境,它集成了西门子的多个自动化软件组件,如SIMATIC Step 7(用于控制器和分布式设备的组态和编程)和SIMATIC WinCC(用于人机界面的组态)等。这些组件在TIA博途平台上可以共享数据和管理,从而简化了自动化项目的开发过程。


      此外,TIA博途还提供了丰富的功能,如仿真工具、能源管理功能、多用户管理以及支持云解决方案等,这些功能有助于进一步提高工厂的生产力,优化质量管理,缩短产品上市时间,并提供了更大的灵活性。


      TIA博途的设计基于面向对象和集中数据管理,实现了数据的一致性和无缝集成。它还引入了项目范围的交叉索引系统,使用户能够在整个自动化项目内轻松查找数据和程序块,从而极大地缩短了软件项目的故障诊断和调试时间。


// 西门子博途19任意代码执行漏洞

漏洞原理介绍


      我们在分析博途19系统对日志目录下的文件进行解析的过程中发现,Siemens. Automation.CommonServices.PersistentLog ging.Impl.dll中的ReadableLog函数在解析日志目录下的文件时,对其中的icon数据会进行反序列化,因此,如果通过精心构造相应的数据包并放置到Logs目录下,便可以实现在反序列化过程中的任意代码执行,代码如下图所示。


原创漏洞 - 西门子博途19日志解析模块反序列化漏洞分析

图 1 反序列化icon标签中的数据


      攻击者可以通过在博途工程文件的Logs目录下放置精心构造好的包含icon标签数据的zip文件达到任意代码执行的效果。整个漏洞的触发流程如下图所示。


原创漏洞 - 西门子博途19日志解析模块反序列化漏洞分析

图 2  博途19反序列化漏洞触发流程时序图


漏洞复现过程


     我们在复现该漏洞的时候,以执行calc.exe计算器程序为例,通过该漏洞,可以在用户打开任意博途工程并点击公共数据下的日志菜单时,执行Logs目录下的xml中的命令。


原创漏洞 - 西门子博途19日志解析模块反序列化漏洞分析

图 3  生成zip文件的代码


      通过上面的代码,在构造zip文件以及该zip中包含的xml文件时,该文件的名称需要满足上图中的格式要求,日期和时间以及后面的数字位数。


      我们利用博途19创建任意一个工程,使用默认配置即可,如下图所示。


原创漏洞 - 西门子博途19日志解析模块反序列化漏洞分析

图 4  创建新的工程


      在创建完成工程后,将构造的zip文件放到工程的Logs目录下,如下图所示。


原创漏洞 - 西门子博途19日志解析模块反序列化漏洞分析

图 5  Logs目录


原创漏洞 - 西门子博途19日志解析模块反序列化漏洞分析

图 6  构造的zip文件放入Logs目录中


      将文件放置后,打开博途19,并切换到项目视图,在该视图下导航到公共模块下的日志菜单,双击打开日志菜单的时候会触发漏洞,运行计算器程序。


原创漏洞 - 西门子博途19日志解析模块反序列化漏洞分析

图 7  项目视图


原创漏洞 - 西门子博途19日志解析模块反序列化漏洞分析

图 8  触发该漏洞


漏洞利用总结


      本漏洞实现了从普通用户权限到管理员权限的提升。主要利用了博途19在解析Logs日志中的icon数据标签时存在反序列化操作,而且未对反序列化的数据进行有效过滤,从而导致可以执行任意代码。整个利用链较为清晰简洁,可以总结为三个步骤:


(1)构造并序列化xml文件中的icon标签数据;


(2)将构造好的xml压缩为zip文件,文件名参考格式[2024-07-16 01.01.01.001][5686]. zip,其中日期可以改变,但格式要以此为模板。将该文件放到博途工程文件的Logs目录下;


(3)用户在打开博途工程并在项目视图下导航到公共数据下的日志菜单时,双击日志菜单即可触发漏洞。


原创漏洞 - 西门子博途19日志解析模块反序列化漏洞分析

公司简介

 Company Profile 


       浙江国利网安科技有限公司坚守“让控制更安全,让用户更放心”的使命,凭借30年的工控技术积累和十余年的工控安全研究,已形成了“工控安全试验场”“工控安全盾”等独具特色与优势的攻防核心技术、安全产品与服务体系,以及完整的行业解决方案,在水务水利、石油炼化、油气管网、城市燃气、电力能源、轨道交通、智能制造等行业拥有众多客户,致力于成为世界一流的关键基础设施安全整体解决方案提供商。


原创漏洞 - 西门子博途19日志解析模块反序列化漏洞分析

原文始发于微信公众号(国利网安):原创漏洞 – 西门子博途19日志解析模块反序列化漏洞分析

版权声明:admin 发表于 2024年9月20日 下午4:49。
转载请注明:原创漏洞 – 西门子博途19日志解析模块反序列化漏洞分析 | CTF导航

相关文章