新闻详情

西门子S7-300/400密码,是这样破解的

发布时间: 2023-12-16
观看西门子S7-300/400密码,是这样破解的视频:

一提起plc解密的事情,多少还是有点兴奋的!其实,对于s7-300cpu密码的破解有好几种方法,一种是用读卡器加s7imgwr/rd软件,还有一种是直接用mmc卡解密软件。但是,今天重点来说一说用tia portal+s7client暴力破解西门子s7-300/400密码。一、环境介绍目前实验室使用的是siemens s7-300plc,cpu型号为315-2 pn/dp,破解使用到的工具如下表:工具名称工具说明tia portal v13plc编程工具s7clientdemo.exes7-300辅助查看cpu密码设置状态工具wireshark用来截取plc和上位机通信的报文二、准备工作siemens系列plc的密码,通常有4种设置状态,分别为:完全权限,只读权限,低权限,不允许上传。由于操作员的疏忽或者调试方便,通常会不给plc设置密码,或者只设置简单密码,接下来我会展示这样做的危险性。本文将从plc密码加密方式开始谈起,之后会讨论plc密码被暴力破解的可能性,从而得出保证plc密码安全的方式。上图展示了s7-300的外形,通常是通过step7或者博图(tia)软件去对plc进行编程及设置。在这里我们使用博图来给plc设置密码。三、算法加密比如设置密码状态为只读,密码为:123456,然后重新通过上位机和plc建立连接,验证密码的时候,截取到如下报文:密码验证时候截取到的报文分析得出规律:s7-300用的是可逆加密算法,密码长度多为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。

展开全文

供应商
广东湘恒智能科技有限公司
联系电话
13510737515
手机号
13185520415
在线咨询QQ
1695606393
联系人
董海波
所在地
惠州大亚湾澳头石化大道中480号太东天地花园2栋二单元9层01号房(仅限办公)
我们的新闻
咨询 在线询价 拨打电话