工控安全-PLC指紋提取的幾種方法


前言:PLC為可編程邏輯控制器,采用S7協議。其硬件本身存在許多漏洞,可以利用kali里面的漏洞模塊或者modbus工具對其進行攻擊,甚至直接可以進行未授權訪問,只要其開啟對外網的端口服務,那么我們就可以利用其私有協議進行指紋提取、模糊測試、漏洞利用來最終達到控制PLC。指紋提取占據比較重要的位置,因為我們只要把指紋提取的工作做好,那么我門就可以針對什么版本的PLC進行1day的打擊。因為工控硬件的更新換代始終很慢。

這里采用的是一個西門子PLC的仿真軟件來進行實驗的。

0x01 nmap指紋識別

在虛擬機中開啟西門子S7 PLC仿真軟件,ip不用改,如果nmap掃不出,再改成本地ip

 

 

nmap掃描整個網段中開放102端口的存活ip

nmap -p102 -n 192.168.163.1/24 --open

先看看啟動了PLC的虛擬機的ip

 

 

 然后在物理機上掃描

 

 

 發現整個內網中開放102端口的ip

接下來就可以用nmap的s7-info.nse腳本探測其指紋信息

nmap -p102 -n 192.168.1.116 --open --script=s7-info.nse

 

 

 0x02 PLC連接信息采集工具

 

 

 下載PLC連接測試工具對PLC的信息進行采集,獲取到詳細的指紋,ip地址填plc所在的ip,即存在plc仿真軟件的虛擬機

 

 

 

然后連接,即可獲取很詳細的指紋信息

 

 

 0x03 wireshark抓包進行流量分析獲取PLC指紋信息

打開wireshark,開始抓包,篩選cotp

 

 

 然后打開PLC連接工具進行連接

 

 

 然后就捕獲到了s7協議的包

747號的包是物理機向PLC請求通訊;749號數據包是物理機向plc請求配置通訊;等750號plc同意之后;752號物理機開始發送數據進行通訊;

下面從plc的ip192.168.1.116發送到物理機192.168.1.100的數據包就是plc的指紋信息,比如說755號的數據包。

 

 

 可以看到PLC的CPU型號、序列號等指紋信息。

 

當然還有幾種方法可以獲取到PLC的指紋信息,比如說可以利用python模擬抓包來獲取。但以上三種是最為常用方便的。

附上TideSec安全團隊總結(更全面):

http://mp.weixin.qq.com/s?__biz=Mzg2NTA4OTI5NA==&mid=2247484526&idx=1&sn=92b6b46bd6471ba2bc7b51cad1c86fe1&chksm=ce5e260ff929af19db8a74f7c0309049c4eabc4b972d9ac03810bc3a4a791b6384864942294f&mpshare=1&scene=23&srcid=1024zQya2YBwrCEztoHnVbyn&sharer_sharetime=1571891653504&sharer_shareid=45176a46e594e1ff053abe513bfce4be#rd

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM