工控安全入門分析

wyzsk發表於2020-08-19
作者: 路人甲 · 2015/09/14 10:09

0x00寫在前面


工業4.0,物聯網趨勢化,工控安全實戰化。安全從業保持敏感,本篇以科普角度對工控安全做入門分析,大牛繞過,不喜輕噴。

0x01專業術語


SCADA:資料採集與監視控制系統

ICS:工業控制系統

DCS:分散式控制系統/集散控制系統

PCS:過程控制系統

ESD:應急停車系統

PLC:可程式設計序控制器(Programmable Logic Controller)

RTU:遠端終端控制系統

IED:智慧監測單元

HMI:人機介面(Human Machine Interface)

MIS:管理資訊系統(Management Information System)

SIS: 生產過程自動化監控和管理系統(Supervisory Information System)

MES:製造執行管理系統

0x02協議埠及測試指令碼


  • 協議科普

    • Modbus

      MODBUS協議定義了一個與基礎通訊層無關的簡單協議資料單元(PDU)。特定匯流排或網路上的MODBUS協議對映能夠在應用資料單元(ADU)上引入一些附加域。

      安全問題:

      • 缺乏認證:僅需要使用一個合法的Modbus地址和合法的功能碼即可以建立一個Modbus會話
      • 缺乏授權:沒有基於角色的訪問控制機制, 任意使用者可以執行任意的功能。
      • 缺乏加密:地址和命令明文傳輸, 可以很容易地捕獲和解析
    • PROFIBUS

      一種用於工廠自動化車間級監控和現場裝置層資料通訊與控制的現場匯流排技術,可實現現場裝置層到車間級監控的分散式數字控制和現場通訊網路

    • DNP3

      DNP(Distributed Network Protocol,分散式網路協議)是一種應用於自動化元件之間的通訊協議,常見於電力、水處理等行業。

      簡化OSI模型,只包含了物理層,資料層與應用層的體系結構(EPA)。

      SCADA可以使用DNP協議與主站、RTU、及IED進行通訊。

    • ICCP

      電力控制中心通訊協議。

    • OPC

      過程控制的OLE (OLE for Process Control)。

      OPC包括一整套介面、屬性和方法的標準集,用於過程控制和製造業自動化系統。

    • BACnet

      樓宇自動控制網路資料通訊協議(A Data Communication Protocol for Building Automation and Control Networks)。

      BACnet 協議是為計算機控制採暖、製冷、空調HVAC系統和其他建築物裝置系統定義服務和協議

    • CIP

      通用工業協議,被deviceNet、ControINet、EtherNet/IP三種網路所採用。

    • Siemens S7

      屬於第7層的協議,用於西門子裝置之間進行交換資料,透過TSAP,可載入MPI,DP,乙太網等不同物理結構匯流排或網路上,PLC一般可以透過封裝好的通訊功能塊實現。

    • 其他工控協議

      IEC 60870-5-104、EtherNet/IP、Tridium Niagara Fox、Crimson V3、OMRON FINS、PCWorx、ProConOs、MELSEC-Q。按需求自行查閱資料。

  • 資訊探測

    • 協議測試指令碼

      PS:簡要測試,大量指令碼自行測試。

    • 相關搜尋引擎

      Shodan搜尋

      PS:Shodan搜尋引擎介紹 /tips/?id=2469

      Zoomeye搜尋

      PS:敏感資訊,你懂得。

    • Ethernet/IP 44818

      nmap -p 44818 --script enip-enumerate.nse 85.132.179.*

    • Modbus 502

      nmap --script modicon-info.nse -Pn -p 502 -sV 91.83.43.*

    • IEC 61870-5-101/104 2404

      nmap -Pn -n -d --script iec-identify.nse --script-args=iec-identify -p 2404 80.34.253.*

    • Siemens S7 102

      nmap -p 102 --script s7-enumerate -sV 140.207.152.*

      nmap -d --script mms-identify.nse --script-args='mms-identify.timeout=500' -p 102 IP

    • Tridium Niagara Fox 1911

      nmap -p 1911 --script fox-info 99.55.238.*

    • 意義何在

      上述NSE指令碼意義:

      1. 定位工控系統及協議模組。
      2. 收集目標工控的資訊,如版本、內網IP、模組、硬體資訊等。
      3. 結合對應的NSE指令碼進一步擴充,例如自定義空間搜素引擎。
  • 指令碼資源

0x03烏雲工控漏洞的分析


  • 工控相關漏洞分析

    針對烏雲主站的漏洞進行關鍵字搜尋:工控(31)、SCADA(15)、Modbus(9)、PLC並進一步整合得到如下列表。

    在以上的漏洞列表中,可以得出如下結論:

    1. 烏雲工控漏洞的案例中,絕大多起因是弱口令(弱口令最多的是123456,其次是admin)、注入類漏洞。
    2. 能夠挖出工控的精華漏洞的人也是特定的那幾位,且在Kcon2015也有過演講。
    3. 挖掘此類漏洞主要解決兩個問題
      1. 如何找到工控相關的系統和地址
      2. Getshell後,基於工控知識如何操控系統
    4. 根據漏洞中的細節可以進一步的複測和擴充,進而為工控系統的漏洞挖掘提供非線性思路。
      1. 結合GHDB關鍵字的搜素:例如inurl:SCADA……
      2. 連結地址含SCADA、Modbus等協議的關鍵字……
      3. 其他KEY:MIS、SIS、DCS、PLC、ICS、監控系統……
      4. 相關公司:南京科遠、金風科技、天能集團、國電南瑞、華潤燃氣、積成電子、重慶三峰、東方電子……
      5. 至於利用以上四點去做什麼,呵呵…
  • 工控精華漏洞分析

    烏雲工控相關的精華漏洞如下7個,在思路亮點中分析了漏洞的核心,同樣也可能是獲得打雷精華的理由。幾乎共同點均是操控了對應的工控系統。

0x04參考資源


本文章來源於烏雲知識庫,此映象為了方便大家學習研究,文章版權歸烏雲知識庫!

相關文章