免费发布

西门子 福建省宁德市(中国)授权 一级代理总代理

更新:2024-03-23 18:52 发布者IP:120.237.217.245 浏览:0次
发布企业
广东湘恒智能科技有限公司商铺
认证
资质核验:
已通过营业执照认证
入驻顺企:
1
主体名称:
广东湘恒智能科技有限公司
组织机构代码:
441304000246495
报价
请来电询价
西门子变频器
西门子触摸屏
西门子伺服电机
西门子PLC
西门子直流调速器
西门子电缆
关键词
西门一级代理商,西门子代理商,西门子变频器,西门子PLC,西门子伺服电机
所在地
惠州大亚湾澳头石化大道中480号太东天地花园2栋二单元9层01号房
联系电话
18475208684
手机
18475208684
经理
向小姐  请说明来自顺企网,优惠更多
让卖家联系我
18475208684

产品详细介绍

一提起PLC解密的事情,多少还是有点兴奋的!其实,对于S7-300CPU密码的破解有好几种方法,一种是用读卡器加S7ImgWR/RD软件,还有一种是直接用MMC卡解密软件。但是,今天重点来说一说用TIAPortal+S7Client暴力破解西门子S7-300/400密码。


一、

环境介绍


目前实验室使用的是Siemens S7-300PLC,CPU型号为315-2PN/DP,破解使用到的工具如下表:

工具名称

工具说明

TIA Portal V13

PLC编程工具

s7clientdemo.exe

S7-300辅助查看cpu密码设置状态工具

Wireshark

用来截取PLC和上位机通信的报文


s7clientdemo.exe下载地址可在公众号后台回复:“s7client”获取二、

准备工作


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,可逆算法的代码如下:


intmain(){ char opData[8],Pwd[8],pass[8]; int c; opData[0] = '1'; opData[1] = '2'; opData[2] = '3'; opData[3] = '4'; opData[4] = '5'; opData[5] = '6'; opData[6] = 0x20; opData[7] = 0x20; Pwd[0] = opData[0] ^ 0x55; Pwd[1] = opData[1] ^ 0x55; for (c = 2; c < 8; c++) { Pwd[c] = opData[c] ^ 0x55 ^ Pwd[c - 2]; };


程序运行后得到的Pwd数组如下所示,和我们截取到的报文一致。从而说明我们找到的算法是正确的。


/* Pwd[0] = 0x64; Pwd[1] = 0x67; Pwd[2] = 0x02; Pwd[3] = 0x06; Pwd[4] = 0x62; Pwd[5] = 0x65; Pwd[6] = 0x17; Pwd[7] = 0x10; */


当发送了转换后的密码后,会得到PLC返回的报文,返回的报文中,有对发送的密码正确性验证的结果,如果验证通过,就会将错误码那几个位置位为0x0000,如果密码不正确,就会是别的错误码。


四、

暴力破解


知道了密码的加密算法之后,我们就可以生成弱口令字典,然后通过加密算法对弱口令进行加密,使用加密后的密码字典与PLC进行通信,如果破解成功,返回明文密码。

图片


图片五、

存储块解密


知道了密码的加密过程,和密码的加密算法,那么CPU密码是怎样存储在PLC中呢?必须通过暴力破解的方式,才能获取未知设备的CPU密码吗?


我们研究S7-300 CPU密码得到以下成果:


1、CPU密码保存在SDB0块中

2、S7-300 CPU密码在块中的保存方式

以下3个图分别为未加密,只读权限,无读写权限的SDB0块的数据。在只读权限和无读写权限状态时,CPU密码均为000000。

图片

图片


图片

经过研究得出以下结论:


红色方框内为加密后的密码,蓝色方框内的数字02代表只读权限,03代表不可读写权限。而第一张图中,因为没有设置密码,所以缺少这一部分内容。

3、加密算法:

我们找出了加密算法,算法和上文中算法类似但略有不同,同样也是可逆的加密算法,具体加密算法程序如下:


charopData[8],Pwd[8],pass[8]; int c; opData[0] = '1'; opData[1] = '2'; opData[2] = '3'; opData[3] = '4'; opData[4] = '5'; opData[5] = '6'; opData[6] = 0xaa; opData[7] = 0xaa; Pwd[0] = opData[0] ^ 0xaa; Pwd[1] = opData[1] ^ 0xaa; for (c = 2; c < 8; c++) { Pwd[c] = opData[c] ^ 0xaa ^ Pwd[c - 2]; };


通过以上可逆算法,我们可以断言,只要可以读取SDB0块,就可以直接根据块信息,获取明文密码,根本不需要暴力破解。在获取到明文密码后,通过发送密码校验的报文,就拥有下载的权限,进而可以直接改写密码为自己想要的设置,设置可以更改CPU的密码设置等级(只读或者无读写权限)。因此,在设置CPU密码权限的时候,我们推荐设置为不可读写的状态,加大获取到SDB0块的难度,从而保护我们设置的密码。


六、

保护方式及建议


通过以上示例,我们知晓了S7-300的CPU加密方式,并且给出了暴力破解的思路。反过来,我们可以通过暴力破解的思路,加固我们的PLC,让PLC更不容易被攻破,我们提出以下建议:

1、PLC一定要设置密码,并且设置为不可读不可写状态,尽可能多的保护您的程序。

2、在进行上装和下装的时候,电脑zuihao直接与PLC相连,避免透过中间人或者交换机等方式获取到通信报文,使攻击者有机可乘。

3、不要设置弱密码,尽量设置复杂密码,这样可以使得暴力破解的时间变得更长,被发现的几率也就更大。

4、不要将PLC暴露在公网上。


所属分类:中国机械设备网 / 工程机械配件
西门子 福建省宁德市(中国)授权 一级代理总代理的文档下载: PDF DOC TXT
关于广东湘恒智能科技有限公司商铺首页 | 更多产品 | 联系方式 | 黄页介绍
成立日期2022年11月17日
主营产品西门子PLC,变频器,伺服电机,人机界面 触摸屏 线缆 DP接头
公司简介广东湘恒智能科技有限公司主要从事工业自动化产品的集成,销售与维修。致力于为您提供在机械、化工、水泥、电力、环保等领域的电气及自动化技术的完整解决方案,包括自动化产品及系统、工程项目执行及管理、主要过程控制领域技术支持,以及专业的售后服务、培训等。公司本着“以人矢志创新、追求卓越”的工作方针,致力于工业自动化控制领域的产品开发、工程配套和系统集成、销售,拥有丰富的自动为本、科技先导、化产品的应用和实 ...
公司新闻
顺企网 | 公司 | 黄页 | 产品 | 采购 | 资讯 | 免费注册 轻松建站
免责声明:本站信息由企业自行发布,本站完全免费,交易请核实资质,谨防诈骗,如有侵权请联系我们   法律声明  联系顺企网
© 11467.com 顺企网 版权所有
ICP备案: 粤B2-20160116 / 粤ICP备12079258号 / 粤公网安备 44030702000007号 / 互联网药品信息许可证:(粤)—经营性—2023—0112