文章总结: 文章揭示施耐德电气浮动许可证管理器存在CVE-2024-2658漏洞,源于FlexNetPublisher组件路径校验缺失,允许本地用户构造恶意配置文件,在服务重启后加载DLL,实现从普通用户到SYSTEM的权限提升,威胁工业网络。建议升级FLM至3.0.0.0及以上版本修复。 综合评分: 75 文章分类: 漏洞分析
工控安全不能只盯PLC,别漏了许可证管理这个隐形缺口
白帽子
2026年7月3日 07:21 广东
在小说阅读器读本章
去阅读
以下文章来源于黑鸟 ,作者黑鸟
黑鸟 .
一介草民,深耕威胁情报领域多年,自封威胁分析师,APT狩猎者,战略忽悠分析师。 专注推送一切前沿高科技/人工智能、网络安全分析、敌我战略分析、数据挖掘、情报扩线、网络武器分析、社会工程学、一切开源情报、军事分析忽悠等。
在工业自动化场景里,PLC 编程软件、SCADA 监控系统这类核心工具向来是防护重点,但很少有人会留意负责管理软件授权的许可证服务。
最近卡巴斯基安全团队发布的技术分析显示,施耐德电气旗下的浮动许可证管理器存在编号为 CVE-2024-2658 的漏洞,普通本地用户仅靠构造一个配置文件,就有机会拿到系统最高权限,风险甚至能蔓延到整个工业网络。
由于这类设备在很多工业网络中购入即不更新系统,因此风险会一直存在。
CVE-2024-2658 发现于 2024 年,出现在 Schneider Electric Floating License Manager 也就是施耐德电气浮动许可证管理器中,这套软件负责全系列工业自动化产品的授权管理,覆盖从单台 PLC 编程工具到整厂中央控制室系统的各类场景。
浮动授权(Floating authorization)是一种基于服务器验证的软件授权机制,可通过返还和重新发放操作在不同计算机间转移使用权,同时确保激活总数不超过预设上限。 该机制分为局域网和广域网两种类型,支持硬件指纹绑定(CPU、主板、硬盘等)并通过授权管理平台追踪激活记录。
漏洞归类为 不受控搜索路径元素问题。简单来说就是程序调用外部配置文件时,使用了一段硬编码的文件路径,又没有对路径所属目录做严格的权限校验,给低权限用户留下了篡改配置、注入恶意代码的空间。
问题的核心来自软件集成的第三方组件 FlexNet Publisher。这是 Flexera Software 推出的商业授权管理库,大量行业软件都会内嵌它处理许可证逻辑。在 11.19.6.0 及更早的版本中,FlexNet Publisher 没有限制低权限用户修改替换 openssl.cnf 配置文件,最终演变成了完整的权限提升风险。
风险根源:一个本不存在的配置路径
要理解攻击的原理,得先理清这套许可证服务的运行机制。
施耐德电气 FLM 的核心是名为 lmadmin.exe 的 32 位后台程序,安装后会自动注册为 lmadminSchneider 系统服务,默认开机自启,运行在 NT AUTHORITY\LOCAL SERVICE 账号下。这个服务负责响应 PLC、HMI、SCADA 等各类设备的许可证请求,是整个授权体系的中枢。
服务运行时需要调用 OpenSSL 相关功能,而程序代码里硬编码了一个 openssl.cnf 配置文件的地址,路径中还包含 MS-DOS 8.3 格式的短文件名。整个路径指向 C 盘下一串 cygwin 相关的目录,而这里藏着两个致命的设计缺陷。
第一个缺陷是路径默认不存在。干净的默认安装流程根本不会创建这个目录,程序每次启动都会去一个空地址寻找配置文件。第二个缺陷是权限门槛极低,Windows 系统默认规则下,所有经过身份验证的普通用户,都有权在 C 盘根目录创建新文件夹,也能按照短文件名规则构造出完全匹配的目录结构。
这就相当于程序每次启动都会去一个原本不存在的地址找配置说明书,而任何能登录系统的普通用户,都可以手动搭出一模一样的路径,再放一份自己编写的假说明书进去。程序不会验证文件来源是否可信,只要路径对得上就会直接读取执行。
除了核心服务和配置文件,还有两个组件共同放大了风险。
一个是 FlexNet Publisher 授权库本身,它负责解析 openssl.cnf 里的 [engine] 字段,只要字段中定义了 dynamic_path 参数,就会不加校验地加载对应路径的 DLL 文件。另一个是内嵌在 lmadmin.exe 进程中的 web 管理门户,分为无需认证的仪表盘页面和需要密码的管理后台,因为门户和服务共享同一块进程内存,一旦服务被注入恶意代码,攻击者可以直接截获管理后台的账号密码。
完整攻击链:从普通用户到系统最高权限
整个利用过程不需要复杂的零日工具,只要攻击者能以普通用户身份登录安装了 FLM 的机器,就能一步步完成权限突破。
第一步是构造恶意配置。攻击者按照程序硬编码的路径逐层创建目录,最后放入一份篡改过的 openssl.cnf,在配置的引擎段指定 dynamic_path 参数,指向一个提前准备好的恶意 DLL,文件可以放在 C:\Users\Public 这类所有用户都有写入权限的公共目录。
第二步是等待服务重启。要让新配置生效需要重启 lmadminSchneider 服务,普通用户默认没有重启服务的权限,但只要主机正常重启,服务就会自动重新加载配置。对于运维场景的服务器来说,补丁更新、例行维护重启都是常见操作,攻击者只需要等待时机。
服务重启后,FlexNet Publisher 初始化 OpenSSL 时会读取攻击者放置的配置文件,找到 dynamic_path 参数后直接把恶意 DLL 加载进 lmadmin.exe 的进程空间。这时候恶意代码就会继承服务的运行身份,以 NT AUTHORITY\LOCAL SERVICE 账号的权限执行操作。
到这一步还远没有结束。LOCAL SERVICE 账号本身权限受限,但默认配置下这个服务进程拥有 SeImpersonatePrivilege 模拟特权。这个权限允许进程在认证完成后模拟客户端的安全上下文执行操作,攻击者可以通过 RPC、COM 或者命名管道等交互场景,配合 Potato 系列成熟的权限提升工具,进一步把权限提升到 NT AUTHORITY\SYSTEM,也就是 Windows 系统的最高权限等级。
拿到 SYSTEM 权限之后,攻击者可以完全控制主机上的所有配置文件、敏感数据和本地凭证。结合窃取到的许可证管理后台密码,攻击者还能根据网络拓扑向其他工程师工作站横向移动。哪怕不做横向渗透,仅仅关停许可证服务,也会直接导致工业设计和运维软件失效,打断正常的生产维护流程。
解决方案:把施耐德电气 FLM 升级到 3.0.0.0 及以上版本,对应修复 FlexNet Publisher 组件的路径校验逻辑,从代码层面彻底堵住漏洞。
CVE-2024-2658 是非常典型的第三方组件安全案例。许可证管理模块在整个工业软件体系里存在感很低,往往不会成为防护重点,但因为底层依赖的组件缺少路径校验,再结合 Windows 系统的默认权限配置,最终串联成了完整的本地权限提升链路。
工业安全的风险往往藏在容易被忽略的角落,从授权组件到底层运行库再到系统默认配置,任何一个环节的小问题,都可能变成攻破整个生产网络的入口。
往期:
AI 凭空编出的假域名,正在成为软件供应链的新陷阱
当大模型学会逆向拆解EDR,终端安全的天平正在倾斜
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:白帽子 《工控安全不能只盯PLC,别漏了许可证管理这个隐形缺口》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论