【攻擊測試】西門子PLC探測與S7-300密碼破解

星河Salaxy發表於2022-02-25

工業控制系統(ICS)是工業基礎設施的核心,亦是國家基礎設施的重要組成部分,其被廣泛用於煉油、化工、電力、電網、水廠、交通、水利等工業領域。ICS對可用性和實時性要求高,系統生命週期長,成為資訊戰的重點攻擊目標。

圖片

目前,我國在工業控制系統網路安全技術研究以及產業發展等相關領域正處於快速發展階段,防護能力和應急處置能力相對較低,尤其工控系統普遍使用施耐德(法國)、西門子(德國)、發那科(日本)等國外品牌,關鍵系統的安全性受制於人,使之極易成為外界滲透攻擊的目標。


本文解析PLC裝置指紋提取與流量分析的方法,以及探討提高PLC安全性的有效措施。



01

PLC指紋提取

在流量中捕獲到資訊6ES7 511-1AK02-0AB0,PLC為 S7-1500,屬於S7comm-plus協議通訊,這裡我們採用ISF工控框架中的s7comm_plus_scan.py模組進行探測,結果如下圖所示:

圖片


發現了S7-1200,版本號為v4.2,採用的S7comm-plus加密方式,還發現了一些IP也開啟了102埠,順便也用s7comm_scan.py模組掃一下,結果如下所示:

https://www.freebuf.com/articles/ics-articles/228770.html

圖片


獲取到了S7-300PLC,關於S7系列PLC裝置的102埠檢測、cpu版本檢測,都屬於Siemens PLC 指紋提取,方法有很多,本文不再累述。

更多資訊,可參考:

https://www.freebuf.com/column/217939.html




02

S7密碼爆破

透過指紋提取後,得知網路記憶體在PLC。我們先用指令碼或者模擬器嘗試連線,探測PLC是否設定了讀寫許可權密碼,以S7-300為例,該PLC已設定了密碼的讀防寫,如下圖所示:

圖片


PLC密碼即使啟用了讀/防寫,也允許使用者在未輸入密碼的情況下執行某些操作,例如讀取SZL列表或讀取和寫入標記區域。如果使用者執行了其他操作(例如讀取或寫入物件/功能/資料塊),PLC將報許可權錯誤,並告知使用者需要攜帶密碼。


在正常操作過程中,需要讀/寫特權的客戶端在通訊設定後透過SZL讀取(SZL ID:0x0132 SZL索引:0x0004)查詢實際和分配的保護級別,如下圖所示:

圖片


抓取對PLC進行讀寫操作的資料包,並採用wireshark分析,如下圖所示:

圖片


小提示:分享一個wireshark的小技巧,除了在左上角輸入s7comm在顯示過濾器中搜尋外,透過第二行的搜尋功能來搜尋關鍵字Security(String型別),找到了互動密碼的資料包。


點開傳送密碼的資料包,密碼是Data值,如下圖所示:

圖片


如果直接將十六進位制轉換成十進位制是無法匹配的,需要找到密碼的加密規則。


密碼破解成功,如下圖所示:

圖片

s   左邊是八位密碼的破解方法;

s   右邊是我用scapy模組解包,提取含有讀寫密碼的資料包,比對後發現是匹配的;


由此我們發現規律,請求包攜帶讀寫密碼包的長度都為91位元組,所以這裡我們的搜尋條件為“ip.addr==xxx.xxx.xxx.xxx and ip.len == 77”,“77”為ip本身到報文末尾的總長度,如下圖所示:

圖片


03

S7讀取暫存器的值

獲取到PLC的IP,我們可以透過模擬器登入PLC獲取或修改資料,如下圖所示:

圖片


利用Snap7 Client Demo模擬器讀取OB塊的資訊,如下圖所示:

圖片


除了使用模擬器,還可利用程式碼讀取PLC資料。


由於S7-300/400請求的資料包是固定的,透過重放攻擊抓取模擬器發出的請求放到程式碼裡使用socket模組即可;


如果是對S7-1200的讀寫操作,直接使用python-snap7模組即可。

下圖是三個模擬器元件相對應的PLC元件:

圖片



總結

Shodan搜尋引擎可定位全球範圍內不安全的工業裝置和工控系統,為攻擊者鎖定攻擊目標提供了便利。當前大多數工控裝置仍然使用著通用使用者名稱(“admin”)與密碼(“1234”)在毫無安全防護的狀態下執行,甚至對於S7裝置對外展示“if you can ping the device you can own it”,這無疑給攻擊者開啟了大門。


基於本文提及的PLC攻擊測試方法,簡單執行以下操作,即可提高PLC的安全性:


1. 利用conpot執行埠對映並修改預設配置即可加大攻擊者進行102埠檢測與PLC版本匹配的難度;


2. PLC裝置使用強密碼,或有效利用系統的時鐘功能,即可加大攻擊者密碼爆破的難度;




面對日益複雜的網路環境,企業需要構建傳統網路與工控網路一體化的防禦方案。星河Salaxy工業安全管理中心處理工業現場的各類安全資料,對攻擊行為和其他異常威脅行為進行識別、存證與預警,為工業企業安全保駕護航。

圖片


相關文章