和利时PLC故障恢复

robots

 

1、概述

LE系列可编程逻辑控制器(PLC)是和利时公司新推出的高性能PLC产品,LE系列PLC产品集小型PLC产品灵活的结构和中型PLC产品强大的功能优势于一体,可广泛应用于恒压供水、暖通空调、纺织机械、包装机械、印刷机械、食品加工等。近期对和利时LE5107E PLC做了一些基本研究,在进行fuzzing测试时,上位机突然无法与PLC通信,故障情况如下:

反复查看了组态软件的设置,都没有问题(而且之前通信、PLC工作均正常),基本可以判定问题由Fuzzing测试引起的,那么问题来了,如何把PLC恢复到正常工作状态?

 

2、恢复过程

PLC工作异常之后基本情况如下:1、组态软件无法连接PLC,提示“通信超时”;2、可以pingPLC3、尝试断电/上电操作,组态软件依然无法成功连接PLC4PLC始终处于STOP状态:

尝试将PLC的前盖板打开,发现里面有其他接口以及启动/停止PLC的物理开关,手动将开关拨至运行,仍然无法启动PLC。由此看来,只能尝试使用其他接口连接、配置PLC了:

查阅LE系列可编程逻辑控制器的硬件手册,对其CPU模块有如下介绍:

可通过RS485接口连接PLC下载程序,接口外观上有点类似老式鼠标的PS/2类型,估计为专用的连接线,迅速在某宝上查找,适用的编程线如下:

然而,拿到了连接线之后,并不能很顺利的就连接上PLC,在虚拟机和物理机器中安装了组态软件,使用编程线连接PLC的串口,经过多次尝试,仍然无法成功连接到PLC。那么问题究竟在哪里呢?连接线有问题?这是有可能的……再一次想到驱动问题,专用的线一般需要安装特定的驱动程序,于是继续搜索对应的驱动,发现需要安装USB2.0-Ser!的驱动程序,搜寻下载了多个驱动程序,安装、重启主机……然而还是连不上,是不是驱动有问题?这也是有可能的……

解决问题的过程总是伴随着更多问题的发现,继续寻找合适的驱动,再次想到某宝,既然他能提供编程线的销售,那么应该有驱动的解决办法?事实证明这个思路是对的,顺利的找到了对应的驱动程序,安装、再次连接,这一次终于成功了。连接串口之前,需要做一下如下的配置:在组态软件中,“在线”->“通信设置”,将之前的以太网通信模式,改为串口通信:

通过“在线”->“监视”连接PLC

成功使用串口线连接PLC,进而再次对PLC进行配置、下载用户程序。操作完成之后,拔下串口线再次改为网线连接(同步调整通信设置),PLC完全恢复正常通信与操作控制。

 

3、Fuzzing定位

掌握了恢复PLC的技巧之后,可以再次开启Fuzzing测试了,经过多次尝试,再次触发了PLC的运行异常,对流量进行分析,定位到稳定触发PLC异常的数据包。此问题为典型的拒绝服务漏洞,通过发送特定的数据包至PLCPLC进入异常工作状态,需要通过其他物理接口连接PLC进行手动恢复操作,方可将PLC恢复正常。

(完)