Dragon
adminAdmin  2019-04-03 15:51 来源:工匠实验室 隐藏边栏 |   抢沙发  12 
文章评分 0 次,平均分 0.0

漏洞描述

通过漏洞,黑客访问工业控制网络可以拦截目标 PLC 数据,包括向设备发送管理命令所需的会话密钥。一旦获得明文传输的会话密钥,黑客即可重复请求并添加任意命令,包括启动和停止 PLC,更改控制逻辑,以及下载梯形图。

受影响设备型号

  • Modicon 全系列
  • M340
  • M580
  • Premium
  • Quantum
  • (Unity OS 2.6 版以及更高版本)

UMAS 协议

UMAS 表示统一消息传递应用程序服务,它是用于交换应用程序数据的平台独立协议,通信数据使用标准的 Modbus 协议。

Modbus 是 Modicon 公司在 1979 年开发的基于消息结构的协议,最早是为 Modicon 公司的 PLC 中使用,后为施耐德电气公司所有。Modbus 协议是现今使用的最早和应用最广泛的工业控制系统协议之一。Modbus 协议是用于和现场控制器通信的应用层协议。由于它的普及程度,大多数现场控制器都支持 Modbus。然而和大多数协议不同,Modbus 用于控制命令和设备级通信。Modbus 没有定义特定的物理层,这样 Modbus 的实现不局限于某种通信媒介。工程师可以自由选择最适合的物理介质- 租用线路,专线,射频传输或微波等来传输 Modbus 数据包。

和很多控制协议一样,Modbus 没有包括任何加密机制,尽管它有循环冗余校验(CRC , Cyclical Redundancy Checks) 进行完整性检查。CRC 是一种在工业控制系统中常用的验证方法,以检查数据在传输过程中是否有改变。

Modbus 共有三种工作模式:Modbus/ASCII,Modbus/RTU,和 Modbus/TCP。它们在封装方式上有一些微小的差别,随着以太网的普及,Modbus/TCP 越来越被广泛地使用,下图就是 Modbus/TCP 在协议栈中的位置和封装示意图。

UMAS 协议数据格式,如下图所示:

其中 Session Key 是会话使用的 Session 值,如果 Session 值不正确,直接终止通信。FCcode 是 Modbus 协议的功能码,施耐德默认使用 0x5a 即 90 作为通信的功能码。下图是 Modbus 协议标准的功能码。

漏洞分析

通过我们工控安全实验室的实际环境(Sichneider Quantum 系列)截取的数据包如下图所示,可以获取通信的 Seesion 是 0xb8:


利用获取的 Session 通过任意一台电脑可以发送控制 CPU 启停的命令以及程序上下载如下图所示:

使用 Session 发送 Stop 数据包后控制器 Cpu 进入 Stop 状态,如下图所示:

POC 脚本

本文转载自工匠实验室,本文观点不代表lsh4ck's Blog立场,版权归原作者所有,欢迎分享本文,转载请保留出处!

admin
Admin 关注:0    粉丝:1
这个人很懒,什么都没写

发表评论

表情 贴图 链接 私密 格式 签到

切换注册

登录

忘记密码 ?

切换登录

注册

验证码

×

感谢您对admin的支持,么么哒~

支付宝打赏 admin
请扫码随意打赏

打开支付宝扫一扫,即可进行扫码打赏哦

lsh4ck's Blog - Hacking is endless! Focus on network security!

扫一扫二维码分享