官網熱線:400-100-0298
      【安全研究】基于Modbus協議實現Openplc與Kingview的仿真通訊與模擬測試-為國家安全鍛矛鑄盾

      首頁

      產品體系

      解決方案

      案例精選

      新聞動態

      關于我們

      聯系我們

      安全服務

      資源中心

      返回上一層

      網絡靶場(博智安全總部)

      工業互聯網安全(博智數智)

      數據安全(博智密安)

      電子取證(上海臻相)

      返回上一層

      特種

      能源

      政府及事業單位

      教育

      智能制造

      其他

      安全服務

      新聞動態

      新聞動態

      所有內容 公司新聞 行業動態 招標模板 戰略動態

      【安全研究】基于Modbus協議實現Openplc與Kingview的仿真通訊與模擬測試

      時間:2022-01-14   訪問量:10551
      一、前言
      工業控制系統離不開上位機監控系統和下位機控制器即PLC,上位機軟件相對比較容易獲得,比如本文采用kingview6.53,但PLC的獲得相對來說就沒有那么輕松,考慮這種情況,本文借助一款模擬工業自動化環境的開源軟件OpenPLC基于modbus協議實現與組態王的通訊仿真。同時基于環境進行模擬測試,對組態王的組態畫面、OpenPLC Editor梯形圖簡單編程進行簡單介紹,親測效果不錯。
      二、環境準備
      (1)Kali linux虛擬機(IP:192.168.180.146)安裝OpenPLC
      安裝過程參考https://github.com/thiagoralves/OpenPLC_v3,安裝后,Kali linux虛擬機內置瀏覽器輸入如下地址,賬戶/密碼:openplc/openplc。
       
      (2)Kali linux虛擬機(IP:192.168.180.146)安裝OpenPLC_Editor,安裝過程參考https://github.com/thiagoralves/OpenPLC_Editor,安裝后,在應用里面搜索OpenPLC_Editor,打開后,編寫簡單程序如下,下載鏈接:openplc_test.st。

       

       
      (3)winxp sp3 虛擬機(IP:192.168.180.157)安裝組態王6.53,新建test工程下載鏈接https://github.com/sxd0216/kingview--test,并按下圖所示添加OpenPLC設備OpenPLC_test。

       

       
      (4)設定變量并和OpenPLC_test連接

       

       
      (5)組態簡單畫面,點擊Start,電機運行,點擊Stop,電機停止
       
      三、仿真通訊
      (1)Kali linux虛擬機(IP:192.168.180.146)中運行OpenPLC,導入OpenPLC_Editor編輯好的程序openplc_test.st。

       

       
      待程序編譯好后,Go to Dashboard,然后Start PLC

       

       
      待PLC出現Running后,進入Monitoring

       

       
      (2)winxp sp3 虛擬機(IP:192.168.180.157)中運行test工程

       

       
      (3)通過信息窗口查看,已經通訊成功
       
      (4)點擊Start后,指示燈亮,電機啟動,進入PLC,發現Start和MV1變量值已經變為TRUE,對比圖如下:
          
       
      (5)點擊Stop后,指示燈滅,電機停止,進入PLC,發現Start和MV1變量值已經變為FALSE,Stop變量值變為TRUE,對比圖如下:
        
       
      四、模擬測試
      (1)winxp sp3 虛擬機(IP:192.168.180.157)中利用wireshark抓取03.仿真通訊中Start(14幀、16幀)和Stop(19幀、21幀)的數據包,下載鏈接https://github.com/sxd0216/attack-packets。

       

       
      查看數據包,搜索modbus協議”05″功能碼Write Coil,捕獲到Start(14幀、16幀)和Stop(19幀、21幀)的攻擊數據包,modbus協議常用功能碼如下:
      01 :讀取線圈狀態
      02:讀取輸入狀態
      03:保持型寄存器讀取
      05:寫單一線圈
      06:寫單一寄存器
      (2)基于wireshark捕獲的Write Coil,編寫Python攻擊包,下載鏈接https://github.com/sxd0216/attack-packets。

      (3)利用攻擊包也可以達到(4)和(5)的效果
      五、總結
      本文主要利用OpenPLC模擬modbus協議實現了OpenPLC實現了與Kingview的通訊仿真與模擬測試,大家如果感興趣也可以基于OpenPLC模擬其他協議,進而仿真其他環境;同時本文也對kingview如何建立工程、組態畫面,OpenPLC Editor編輯簡單梯形圖程序進行了簡單介紹,希望對熱愛工控的人士有所幫助。
      【轉載聲明】本文屬于非攻研究院原創技術文章,已在FreeBuf發表(https://www.freebuf.com/articles/ics-articles/239282.html)轉載請注明原始出處和作者。
      備案號碼:蘇ICP備12069441號