DCCE MAC1000 PLC漏洞测试

admin 2022年3月11日16:22:17评论144 views字数 2159阅读7分11秒阅读模式
DCCE MAC1000 PLC漏洞测试
DCCE MAC1000 PLC漏洞测试

点击上方 蓝字 关注我们



1. PLC 任意端口拒绝服务漏洞


问题名称
PLC任意端口拒绝服务漏洞
检测工具
Python
问题描述
程攻击者可利用此漏洞使得设备无响应,导致拒绝服务,需断电重启PLC后方可恢复正常。
测试步骤描述
1、向PLC开放的任意端口(如21,5900,11000,30000等)发送超长UDP数据包(例如5000个字符A)
2、可发现原来运行中的PLC程序停止,软件中弹出PLC离线提示,同时PLC无法被PING通
3、断电重启后方可恢复运行。
DCCE MAC1000 PLC漏洞测试DCCE MAC1000 PLC漏洞测试
其他说明

DCCE MAC1000 PLC漏洞测试



2. PLC 远程控制启停漏洞


问题名称
PLC远程控制启停漏洞
检测工具
Python发包脚本 wireshark
问题描述
攻击者可远程向PLC 11000端口发送特殊构造的数据包,实现远程控制PLC的启动/停止。
测试步骤描述
通过分析交互协议,实现:
1、远程控制停机:向运行状态的PLC的11000端口发送UDP数据包,内容:0d00661a100019000000f82a03000000,收到响应报文后观察PLC上I/O指示灯熄灭,程序停止运行;
2、远程控制启动:向停止状态的PLC的11000端口发送UDP数据包,内容:0d00913910001a007000f82a0100ffff,收到响应报文后观察PLC上I/O指示灯点亮,程序恢复运行;
其他说明

DCCE MAC1000 PLC漏洞测试



3.  PLC_Config 软件内置弱密码加密漏洞


问题名称
PLC_Config软件存在弱密码加密漏洞
检测工具
IDA
问题描述
PLC软件中的生成统一下载镜像功能,压缩时使用了内置统一的弱密码(DCCE),加密后的镜像文件可被解密还原。弱密码无法提供有效加密保护。
测试步骤描述
1、打开PLC_Config,在左边的控制器图标上单击右键
2. 在弹出菜单中选择生成下载镜像选项,选择加密
3.修改生成的镜像文件后缀为7z,打开后按提示输入密码DCCE即可解压,得到解密后的镜像完整目录结构:
DCCE MAC1000 PLC漏洞测试
5. 通过逆向分析发现,该功能的实现是通过7Z作为压缩工具,IDA反汇编可发现见密码为DCCE。
DCCE MAC1000 PLC漏洞测试
其他说明

DCCE MAC1000 PLC漏洞测试



4. PLC 远程篡改参数导致无法组态编程


问题名称
PLC远程篡改“控制器名称”参数导致无法再次组态编程,重启无效,只能恢复固件
检测工具
基于python脚本
问题描述
PLC未能正确处理字符串截断,构造畸形字符报文修改PLC控制器名称参数,可导致PLC无法再次组态,无法使用软件上传下载编写程序,断电重启无法恢复,只能重新刷固件
测试步骤描述
  1. 1. 查看PLC配置信息,可以看到控制器信息完整。

DCCE MAC1000 PLC漏洞测试
2.向11000端口发送特定畸形数据包(不以0x00结尾),修改PLC的“控制器名称”,例如0x6161616161616161616161616161…”
DCCE MAC1000 PLC漏洞测试
2、读取plc配置信息发现控制器名称已无法显示,虽然plc在线,但无法修改控制器参数及进行组态,断电重启无效,新建工程无法识别PLC,只有重置PLC固件才能恢复使用。
DCCE MAC1000 PLC漏洞测试
DCCE MAC1000 PLC漏洞测试
重新点开的时候,发现程序配置虽然可以读取,但是重复报错,显示不正常,提示写AI工程校准值失败
DCCE MAC1000 PLC漏洞测试
DCCE MAC1000 PLC漏洞测试
其他说明
漏洞成因分析:在处理控制器名称参数的流程中,C语言字符串以0x00表示结束符,如果在发送给PLC修改PLC工程名时不是用x00结尾,导致程序无法正确读取PLC名称,从而导致PLC_Config无法写入正常工程。
DCCE MAC1000 PLC漏洞测试


5. PLC 名称型号标识等明文信息泄露


问题名称
PLC名称、型号、标识等明文信息泄露
检测工具
python
问题描述
通过发送特殊构造数据包,无需认证即可远程获取PLC类型等明文信息,包括控制器类型,控制器标识,控制器名称等。这使得该类型PLC容易被网络扫描发现。
测试步骤描述
1、读取PLC信息向11000端口发送报文:0c00b593100049060000152700000000,返回响应报文如图第二行,可见明文指出了控制器类型为MAC1000,控制器标识0000000000000000158198301010001,控制器名称MAC1000 Programable Controller
DCCE MAC1000 PLC漏洞测试
2、与组态软件中显示信息一致。DCCE MAC1000 PLC漏洞测试
DCCE MAC1000 PLC漏洞测试
其他说明

DCCE MAC1000 PLC漏洞测试



6.  PLC 远程窃取当前运行程序


问题名称
PLC远程窃取当前运行组态程序
检测工具
Python wireshark
问题描述
无加密认证,攻击者可远程向PLC 11000端口发送特殊构造的数据包,可获取PLC当前运行的程序和注释等信息。
测试步骤描述
1、向11000端口发包0c0063fb1000dd1b2627252700003101
2、收到返回报文中,包含了PLC程序和明文的代码注释信息,其中注释中的汉字经过了编码处理,例如汉字对应十六进制字符ce aa。解码后与软件中程序注释比较一致。
DCCE MAC1000 PLC漏洞测试
3、使用wireshark抓取上位机软件上载工程流量包,手动构造报文远程发送,可获取编译完成的程序代码。
DCCE MAC1000 PLC漏洞测试
4、
DCCE MAC1000 PLC漏洞测试

5、可得到16进制形式的报文,对应编译后的程序代码,进行逆向分析,可以得到出来组态程序代码。附图分别为原程序示意图2张及根据报文分析程序图3张。DCCE MAC1000 PLC漏洞测试DCCE MAC1000 PLC漏洞测试

DCCE MAC1000 PLC漏洞测试
DCCE MAC1000 PLC漏洞测试
DCCE MAC1000 PLC漏洞测试
 
6、根据逆向分析出的结果,我们可以对流量进行更改,从而能够编译任意梯形图语句表并下载到任意PLC中,破坏并覆盖其原有程序。
其他说明

 

感谢

阅读

原文始发于微信公众号(山石网科安全技术研究院):DCCE MAC1000 PLC漏洞测试

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年3月11日16:22:17
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   DCCE MAC1000 PLC漏洞测试http://cn-sec.com/archives/826238.html

发表评论

匿名网友 填写信息