DCCE MAC1000 PLC漏洞测试总结二

admin 2025年2月8日00:58:50评论16 views字数 2204阅读7分20秒阅读模式
1. PLC指令可被利用发起蠕虫传播
问题名称
PLC“自由通讯指令”可被利用发起蠕虫传播
检测工具
Arpspoof  Python PLC_Config
问题描述
通过劫持PLC_Config下载程序流程,篡改PLC下载程序内容,导致PLC向局域网设备发送任一带功能报文(例:发送停止指令),从而导致其他局域网内PLC设备停机,实现类似PLC感染病毒功能
测试步骤描述
1、自由通讯指令中的UDP_AFC,可以向其他PLC发送任意UDP数据,若构造恶意控制指令(如启停),将造成网络内其他设备宕机。可通过编程,实现plc自动向内网发送udp报文。
DCCE MAC1000 PLC漏洞测试总结二
2.UDP报文内容可使局域网内其他plc设备停止的命令,可以使其他内网中plc设备停止。
DCCE MAC1000 PLC漏洞测试总结二
其他说明
此方法也可结合其他攻击方法,实现更多功能,例如重写其他plc设备中某些内存值或者IO输出值
其他说明

2.    PLC远程控制任意I/O读写

问题名称
PLC远程控制任意I/O读写
检测工具
Python发包脚本 wireshark
问题描述
EPA协议可以实现PLC内部参数配置、程序上下载和变量监控,由于没有认证,攻击者可远程向PLC发送特殊构造的数据包实现这些操作的远程操纵。
测试步骤描述
1、可利用EPA变量读写报文访问各变量区,通过0c读操作码实现对控制器的监控。通过0d写操作码可以对各种位变量、单字双字多字变量修改
2、
3、
其他说明

3.    PLC软件多种配置文件易篡改

问题名称
PLC编程软件多种配置文件易被篡改
检测工具
Notepad
问题描述
软件安装目录C:Program FilesDCCEPLC_Config下存在7个扩展名为.cfg的配置文件,明文存储,虽然文件中提示了请勿手工编辑此文档,但恶意篡改此类配置文件中的参数,将导致软件使用异常,逻辑功能错误,编写PLC程序时会产生安全风险,具体文件列表请见截图中打开的TXT窗口标题:
测试步骤描述
DCCE MAC1000 PLC漏洞测试总结二
1、打开软件安装目录C:Program FilesDCCEPLC_Config
2、可见目录下存在7个扩展名为.cfg的配置文件
3、以打开编辑nc.cfg文件为例,包含了opcode操作码明文,如果随意更改操作码,将导致编写出的组态程序无法实现正确操作,在生产环境中可能造成高速运转的刀具碰撞等严重问题。
DCCE MAC1000 PLC漏洞测试总结二
其他说明

4.    PLC软件卸载不全导致敏感信息泄露

问题名称
PLC软件卸载不全导致敏感信息泄露 
检测工具
软件目录下uninst.exe
问题描述
卸载时处理不完全,残留的文件中记录了工程文件打开列表,若包含敏感信息,存在泄密风险;
测试步骤描述
1、运行软件目录下uninst.exe卸载
2、在询问保留工程文件夹时选择否(论选是否,原软件安装目录下都会有残留,且重启也不会消失)
3、卸载完成后,原软件安装目录下仍有残留文件,包括最近使用工程列表,最近打开文件,软件配置等文件。
DCCE MAC1000 PLC漏洞测试总结二
4、打开残留的ProjSave.txt后,可以看到之前使用过的工程文件名称,若包含涉密信息,则存在敏感信息泄露安全风险。如图该文件,可见绝密-核电反应堆冷却塔项目绝密-歼10航空发动机零件生产项目等记录,存在情报安全隐患。DCCE MAC1000 PLC漏洞测试总结二
其他说明

5.    PLC软件存在未加固等安全问题

问题名称
PLC软件存在未加固和DLL劫持风险
检测工具
IDA Pro
问题描述
PLC没有对PLC编程软件做加固,可轻易逆向其软件结构,甚至可以通过逆向PLC编程软件DLL库,可以发现关键加密函数、编译函数等敏感函数、明文保存密码、口令。
测试步骤描述
1、逆向分析plc_config.exe可以找到明文保存的用户名密码:admin/123456 user1/123456 user2/123456,疑为内置账户。如图:
DCCE MAC1000 PLC漏洞测试总结二
2、逆向plc_config.exe还可发现其大量调用ShellExecuteA函数执行外部命令,存在高危风险。
DCCE MAC1000 PLC漏洞测试总结二
3、软件目录下面的dll中,core.dll,ReadWriteDll.dll等为系统设置相关:
DCCE MAC1000 PLC漏洞测试总结二
逆向其core.dll核心dll,可以看到核心系统参数,可以修改这些参数达到修改plc_config系统的目的。
DCCE MAC1000 PLC漏洞测试总结二
4、逆向readWrite.dll可以发现其读写函数,可以通过劫持dll达到执行任意代码目的。
DCCE MAC1000 PLC漏洞测试总结二
其他说明
本身plc_config 程序没有加壳保护,很容易被逆向

6.    PLC存在未知变量区

问题名称
扫描变量区,发现未知的变量区
检测工具
Python 脚本
问题描述
发现使用特殊的读变量区指令,指定变量区号,可以发现10022,11001,11003,11005,11007,11008,11014。这些变量区未在文档中说明。
测试步骤描述
1、编写Python脚本直接发送‘区读取’命令,逐一测试变量区。
DCCE MAC1000 PLC漏洞测试总结二
2、发现了以下变量区,以及读取的结果
DCCE MAC1000 PLC漏洞测试总结二
其他说明

7.    PLC软件上载程序报错内存不足

问题名称
PLC远程控制任意I/O读写
检测工具
Python发包脚本 wireshark
问题描述
当需要上载PLC程序时,经常提示内存不足,无法进行。
测试步骤描述
1、将组态软件目录下的PLC_ConfigSample灯板管理下载到PLC上,运行后取消监控,再上载,这时软件会发生内存不足异常,程序长时间无响应。如图:
DCCE MAC1000 PLC漏洞测试总结二
2、此时无法获取PLC上运行程序。
其他说明

原文始发于微信公众号(SAINTSEC):DCCE MAC1000 PLC漏洞测试总结二

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年2月8日00:58:50
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   DCCE MAC1000 PLC漏洞测试总结二https://cn-sec.com/archives/3704084.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息