西門(mén)子plc解密300/400解密方法研究
對于S7-300CPU密碼的破解有好幾種方法,一種是用讀卡器加S7ImgWR/RD軟件,還有一種是直接用MMC卡解密軟件。但是,今天重點(diǎn)來(lái)說(shuō)一說(shuō)用TIAPortal+S7Client暴力破解西門(mén)子S7-300/400密碼。目前實(shí)驗使用的是Siemens S7-300PLC,CPU型號為315-2 PN/DP,破解使用到的工具如下表:
TIA Portal V13 PLC編程工具
s7clientdemo.exe S7-300輔助查看cpu密碼設置狀態(tài)工具
Wireshark 用來(lái)截取PLC和上位機通信的報文
Siemens系列PLC的密碼,通常有4種設置狀態(tài),分別為:完全權限,只讀權限,最低權限,不允許上傳。
由于操作員的疏忽或者調試方便,通常會(huì )不給PLC設置密碼,或者只設置簡(jiǎn)單密碼,接下來(lái)我會(huì )展示這樣做的危險性。
本文將從PLC密碼加密方式開(kāi)始談起,之后會(huì )討論PLC密碼被暴力破解的可能性,從而得出保證PLC密碼安全的方式。
上圖展示了S7-300的外形,通常是通過(guò)Step7或者博圖(TIA)軟件去對PLC進(jìn)行編程及設置。在這里速捷工控plc解密使用博圖來(lái)給PLC設置密碼。
三、算法加密
比如設置密碼狀態(tài)為只讀,密碼為:123456,然后重新通過(guò)上位機和PLC建立連接,驗證密碼的時(shí)候,截取到如下報文:
密碼驗證時(shí)候截取到的報文
分析得出規律:
S7-300用的是可逆加密算法,密碼長(cháng)度最多為8位,通過(guò)可逆算法轉換成8個(gè)16進(jìn)制數字通過(guò)S7協(xié)議發(fā)送給PLC。
1、將不超過(guò)8位的字符串轉換成8個(gè)16進(jìn)制數字:
2、opData數組元素默認都是0x20
如果密碼為123456,可逆算法的代碼如下:
程序運行后得到的Pwd數組如下所示,和速捷工控plc解密截取到的報文一致。從而說(shuō)明速捷工控plc解密找到的算法是正確的。
當發(fā)送了轉換后的密碼后,會(huì )得到PLC返回的報文,返回的報文中,有對發(fā)送的密碼正確性驗證的結果,如果驗證通過(guò),就會(huì )將錯誤碼那幾個(gè)位置位為0x0000,如果密碼不正確,就會(huì )是別的錯誤碼。
四、暴力破解
知道了密碼的加密算法之后,速捷工控plc解密就可以生成弱口令字典,然后通過(guò)加密算法對弱口令進(jìn)行加密,使用加密后的密碼字典與PLC進(jìn)行通信,如果破解成功,返回明文密碼。
五、存儲塊解密
知道了密碼的加密過(guò)程,和密碼的加密算法,那么CPU密碼是怎樣存儲在PLC中呢?必須通過(guò)暴力破解的方式,才能獲取未知設備的CPU密碼嗎?
速捷工控plc解密研究S7-300 CPU密碼得到以下成果:
1、CPU密碼保存在SDB0塊中
2、S7-300 CPU密碼在塊中的保存方式
以下3個(gè)圖分別為未加密,只讀權限,無(wú)讀寫(xiě)權限的SDB0塊的數據。在只讀權限和無(wú)讀寫(xiě)權限狀態(tài)時(shí),CPU密碼均為000000。
經(jīng)過(guò)研究得出以下結論:
紅色方框內為加密后的密碼,藍色方框內的數字02代表只讀權限,03代表不可讀寫(xiě)權限。而第一張圖中,因為沒(méi)有設置密碼,所以缺少這一部分內容。
3、加密算法:
速捷工控plc解密找出了加密算法,算法和上文中算法類(lèi)似但略有不同,同樣也是可逆的加密算法,具體加密算法程序如下:
通過(guò)以上可逆算法,速捷工控plc解密可以斷言,只要可以讀取SDB0塊,就可以直接根據塊信息,獲取明文密碼,根本不需要暴力破解。在獲取到明文密碼后,通過(guò)發(fā)送密碼校驗的報文,就擁有下載的權限,進(jìn)而可以直接改寫(xiě)密碼為自己想要的設置,設置可以更改CPU的密碼設置等級(只讀或者無(wú)讀寫(xiě)權限)。因此,在設置CPU密碼權限的時(shí)候,速捷工控plc解密推薦設置為不可讀寫(xiě)的狀態(tài),加大獲取到SDB0塊的難度,從而保護速捷工控plc解密設置的密碼。
六、保護方式及建議
通過(guò)以上示例,速捷工控plc解密知曉了S7-300的CPU加密方式,并且給出了暴力破解的思路。反過(guò)來(lái),速捷工控plc解密可以通過(guò)暴力破解的思路,加固速捷工控plc解密的PLC,讓PLC更不容易被攻破,速捷工控plc解密提出以下建議:
1、PLC一定要設置密碼,并且設置為不可讀不可寫(xiě)狀態(tài),盡可能多的保護您的程序。
2、在進(jìn)行上裝和下裝的時(shí)候,電腦最好直接與PLC相連,避免透過(guò)中間人或者交換機等方式獲取到通信報文,使攻擊者有機可乘。
3、不要設置弱密碼,盡量設置復雜密碼,這樣可以使得暴力破解的時(shí)間變得更長(cháng),被發(fā)現的幾率也就更大。
4、不要將PLC暴露在公網(wǎng)上。速捷工控plc解密晉江速捷自動(dòng)化
聯(lián)系我們
晉江速捷自動(dòng)化科技有限公司 總部地址:福建省晉江市安海汽車(chē)站旁 PLC解密電話(huà):15059791632 觸摸屏解鎖咨詢(xún):15059791632