環境介紹
目前實驗室使用的是Siemens S7-300PLC,CPU型號為315-2 PN/DP,破解使用到的工具如下表:
工具名稱 | 工具說明 |
TIA Portal V13 | PLC編程工具 |
s7clientdemo.exe | S7-300輔助查看cpu密碼設置狀態工具 |
Wireshark | 用來截取PLC和上位機通信的報文 |
準備工作
Siemens系列PLC的密碼,通常有4種設置狀態,分別為:完全權限,只讀權限,Zui低權限,不允許上傳。
由于操作員的疏忽或者調試方便,通常會不給PLC設置密碼,或者只設置簡單密碼,接下來我會展示這樣做的危險性。
本文將從PLC密碼加密方式開始談起,之后會討論PLC密碼被暴力破解的可能性,從而得出保證PLC密碼安全的方式。
上圖展示了S7-300的外形,通常是通過Step7或者博圖(TIA)軟件去對PLC進行編程及設置。在這里我們使用博圖來給PLC設置密碼。
算法加密
比如設置密碼狀態為只讀,密碼為:123456,然后重新通過上位機和PLC建立連接,驗證密碼的時候,截取到如下報文:
密碼驗證時候截取到的報文
分析得出規律:
S7-300用的是可逆加密算法,密碼長度Zui多為8位,通過可逆算法轉換成8個16進制數字通過S7協議發送給PLC。
1、將不超過8位的字符串轉換成8個16進制數字:
2、opData數組元素默認都是0x20
如果密碼為123456,可逆算法的代碼如下:
程序運行后得到的Pwd數組如下所示,和我們截取到的報文一致。從而說明我們找到的算法是正確的。
當發送了轉換后的密碼后,會得到PLC返回的報文,返回的報文中,有對發送的密碼正確性驗證的結果,如果驗證通過,就會將錯誤碼那幾個位置位為0x0000,如果密碼不正確,就會是別的錯誤碼。
暴力破解
知道了密碼的加密算法之后,我們就可以生成弱口令字典,然后通過加密算法對弱口令進行加密,使用加密后的密碼字典與PLC進行通信,如果破解成功,返回明文密碼。
存儲塊解密
知道了密碼的加密過程,和密碼的加密算法,那么CPU密碼是怎樣存儲在PLC中呢?必須通過暴力破解的方式,才能獲取未知設備的CPU密碼嗎?
我們研究S7-300 CPU密碼得到以下成果:
1、CPU密碼保存在SDB0塊中
2、S7-300 CPU密碼在塊中的保存方式
以下3個圖分別為未加密,只讀權限,無讀寫權限的SDB0塊的數據。在只讀權限和無讀寫權限狀態時,CPU密碼均為000000。
經過研究得出以下結論:
紅色方框內為加密后的密碼,藍色方框內的數字02代表只讀權限,03代表不可讀寫權限。而第一張圖中,因為沒有設置密碼,所以缺少這一部分內容。
3、加密算法:
我們找出了加密算法,算法和上文中算法類似但略有不同,同樣也是可逆的加密算法,具體加密算法程序如下:
通過以上可逆算法,我們可以斷言,只要可以讀取SDB0塊,就可以直接根據塊信息,獲取明文密碼,根本不需要暴力破解。在獲取到明文密碼后,通過發送密碼校驗的報文,就擁有下載的權限,進而可以直接改寫密碼為自己想要的設置,設置可以更改CPU的密碼設置等級(只讀或者無讀寫權限)。因此,在設置CPU密碼權限的時候,我們推薦設置為不可讀寫的狀態,加大獲取到SDB0塊的難度,從而保護我們設置的密碼。
保護方式及建議
通過以上示例,我們知曉了S7-300的CPU加密方式,并且給出了暴力破解的思路。反過來,我們可以通過暴力破解的思路,加固我們的PLC,讓PLC更不容易被攻破,我們提出以下建議:
1、PLC一定要設置密碼,并且設置為不可讀不可寫狀態,盡可能多的保護您的程序。
2、在進行上裝和下裝的時候,電腦zuihao直接與PLC相連,避免透過中間人或者交換機等方式獲取到通信報文,使攻擊者有機可乘。
3、不要設置弱密碼,盡量設置復雜密碼,這樣可以使得暴力破解的時間變得更長,被發現的幾率也就更大。
4、不要將PLC暴露在公網上
- WinCC (TIA Portal) 和WinCC flexible 訪問SQL SERVER數據庫 2024-12-26
- 頻器集成安全 STO SS1 SS2 SLS 是什么含義 2024-12-26
- 使用西門子SCL獲取整數長度 2024-12-26
- 西門子S7-1200 PLC控制V90伺服驅動器速度運行模式設備組態 2024-12-26
- 變頻器的選型參考 2024-12-26
- 西門子S200伺服系統有些什么亮點 2024-12-26
- 2023年可編程邏輯控制器(PLC)公司Top5 2024-12-26
- 西門子TIA博途PLC技巧:如何在HMI上顯示PLC代碼流程 2024-12-26
- 西門子SINAMICS V90伺服驅動器的?兩種版本與兩種控制方式 2024-12-26
- PLC高效設計與批量編輯方式 2024-12-26
- 西門子推出新款伺服驅動系統為設備制造商簡化項目工程 2024-12-26
- 高效便捷的伺服系統——西門子V90,你了解多少 2024-12-26
- S7-1200西門子用戶程序結構簡介 2024-12-26
- 西門子S7-1200伺服電動機的POT運動控制 2024-12-26
- 西門子IPC427D 從重裝系統到跑1507S 2024-12-26
聯系方式
- 電 話:18126392341
- 聯系人:梁濤
- 手 機:15267534595
- 微 信:15267534595