0x00写在前面
- 在互联网时代并未向现在如此普及的情况下,工控设备之间的通信,是采用无线电和电缆进行的。
- 但随着时代的发展,人们对工控的传统通信方式逐渐产生不满。无论是从性能的可靠性,部署的难易度以及覆盖范围的大小,都不能满足更高生产力需求的工业自动化生产。
- 在竞争激烈的时代,转向基于IP的系统(接入互联网)可提供巨大的经济优势。因此,预计会有越来越多的系统转向基于IP的系统。例如,从专有的基于无线电的网络迁移到基于IP的网络的优势包括跨多个应用程序的共享网络资源,网络改进,例如增加的冗余和所有应用程序,共享网络管理系统的容量,以及仅为现场支持人员维护一项技能。
- 随着接入互联网的工控设备越来越多,逐渐的构成了工业互联网体系。
- 但由于此类互联网体系,存在其中的设备大多更新迭代困难,设备技术严重脱节,所以导致其安全问题十分之多,并因为大多数设备是运用在城市基础设施,甚至是工业制造以及军工产业。
- 当发生网络安全事件时,影响以及破坏力巨大。针对于工控设备的安全研究分析势在必行。工控系统的安全研究分析势在必行。
0x01专业术语
- 系统类
- MCS:机组指令控制系统
- EMS:能源管理系统
- PMC:生产监控系统
- VMS:船舶远程监控管理系统
- MES:制造企业生产过程执行系统
- SCADA:数据采集与监视控制系统
- ICS:工业控制系统
- DCS:分布式控制系统/集散控制系统
- PCS:过程控制系统
- ESD:应急停车系统
- PLC:可编程序控制器(Programmable Logic Controller)
- IED:智能监测单元
- HMI:人机界面(Human Machine Interface)
- MIS:管理信息系统(Management Information System)
- SIS: 生产过程自动化监控和管理系统
- MES:制造执行管理系统
- FCS:现场总线控制系统
- FCS系统可以说是第五代控制系统,本质是信息处理现场化。前现场总线技术的应用主要集中在冶金、电力、水处
理、乳品饮料、烟草、水泥、石化、矿山以及OEM用户等各个行业,同时还有道路无人监控、楼宇自动化、智能家
居等新技术领域。
- FCS系统可以说是第五代控制系统,本质是信息处理现场化。前现场总线技术的应用主要集中在冶金、电力、水处
- FGS:火气系统(火灾/有毒气体检测系统
- FGS系统在石油、燃气、管输等部门有广泛
的应用。
GDS(气体监测系统)系统在化工部门有广
泛的应用。
- FGS系统在石油、燃气、管输等部门有广泛
- 设备类
序号 | 简称 | 注释
—-|—-|—-
1 | RTU | Remote Terminal Unit,中文全称为远程终端控制系
2 | DTU | 数据传输单元DTU (Data Transfer unit),是专门用于将串口数据转换为IP数据或将IP数据转换为串口数据通过无线通信网络进行传送的无线终端设备
3 | FTU | Feeder Terminal Unit配电开关监控终端
4 | TTU | distribution Transformer supervisory Terminal Unit,配电变压器监测终端
5 | ESD | emergency shutdown device 紧急停车系统
6 | CNC | 计算机数字控制机床(Computer numerical control)
7 | MCC | 马达控制中心、电机控制系统
8 | TSI | 汽轮机仪表监视系统
9 | NCS | 升压站网络监控系统( Network Control System)
10 | SCS | 顺序控制系统
11 | CCS | 一种连续的调节系统(Continuious Control System)
12 | FSSS | 锅炉炉膛安全监视系统
13 | ETS | 汽轮机保护系统
14 | ECS | 电气控制系统
15 | MEH | 小汽轮机数字电液调节系统
16 | BPCS | 旁路控制系统
17 | DEH | 汽轮机数字电液调节系统
18 | LCU | 现地控制单元(Local Control Unit )
19 | AGC | 自动发电控制(Automatic Gain Control)
20 | AGV | Automated Guided Vehicle自动导引运输车
21 | SIS | Safety Instrumented System 安全仪表系统
0x02协议端口及测试脚本
- Modbus
- PROFIBUS
- 一种用于工厂自动化车间级监控和现场设备层数据通信与控制的现场总线技术,可实现现场设备层到车间级监控的分散式数字控制和现场通信网络
- DNP3
- DNP(Distributed Network Protocol,分布式网络协议)是一种应用于自动化组件之间的通讯协议,常见于电力、水处理等行业。
简化OSI模型,只包含了物理层,数据层与应用层的体系结构(EPA)。
SCADA可以使用DNP协议与主站、RTU、及IED进行通讯。
- DNP(Distributed Network Protocol,分布式网络协议)是一种应用于自动化组件之间的通讯协议,常见于电力、水处理等行业。
- ICCP
- 电力控制中心通讯协议。
- OPC
- 过程控制的OLE (OLE for Process Control)。
- OPC包括一整套接口、属性和方法的标准集,用于过程控制和制造业自动化系统。
- BACnet
- 楼宇自动控制网络数据通讯协议(A Data Communication Protocol for Building Automation and Control Networks)。
- BACnet 协议是为计算机控制采暖、制冷、空调HVAC系统和其他建筑物设备系统定义服务和协议
- CIP通用工业协议,被deviceNet、ControINet、EtherNet/IP三种网络所采用。
- Siemens S7
- 属于第7层的协议,用于西门子设备之间进行交换数据,通过TSAP,可加载MPI,DP,以太网等不同物理结构总线或网络上,PLC一般可以通过封装好的通讯功能块实现。
- 其他工控协议
- EC 60870-5-104、EtherNet/IP、Tridium Niagara Fox、Crimson V3、OMRON FINS、PCWorx、ProConOs、MELSEC-Q。按需求自行查阅资料。
- 相关搜索引擎
- Ethernet/IP 44818
- Modbus 502
- IEC 61870-5-101/104 2404
- Siemens S7 102
- Tridium Niagara Fox 1911
- 意义何在
- 上述NSE脚本意义:
- 定位工控系统及协议模块。
- 收集目标工控的信息,如版本、内网IP、模块、硬件信息等。
- 结合对应的NSE脚本进一步拓展,例如自定义空间搜素引擎。
- 上述NSE脚本意义:
0x03乌云工控漏洞的分析
- 在以上的漏洞列表中,可以得出如下结论
- 乌云工控漏洞的案例中,绝大多起因是弱口令(弱口令最多的是123456,其次是admin)、注入类漏洞。
- 挖掘此类漏洞主要解决两个问题
- 如何找到工控相关的系统和地址
- Getshell后,基于工控知识如何操控系统
- 根据漏洞中的细节可以进一步的复测和拓展,进而为工控系统的漏洞挖掘提供非线性思路。
- 结合GHDB关键字的搜素:例如inurl:SCADA……
- 链接地址含SCADA、Modbus等协议的关键字……
- 其他KEY:MIS、SIS、DCS、PLC、ICS、监控系统……
- 相关公司:南京科远、金风科技、天能集团、国电南瑞、华润燃气、积成电子、重庆三峰、东方电子……
- 乌云工控相关的精华漏洞如下7个,在思路亮点中分析了漏洞的核心,同样也可能是获得打雷精华的理由。几乎共同点均是操控了对应的工控系统。
0x04参考资源
- 工控专题
- ZoomEye工控专题: http://ics.zoomeye.org/
- Shodan工控专题:https://www.shodan.io/report/l7VjfVKc
- Z-0ne专注于工控安全攻防技术研究 :http://plcscan.org/blog/
- 网络空间工控设备的发现与入侵:https://github.com/evilcos/papers
- 工控安全攻防演练场景实现分享(轨道交通):http://zone.wooyun.org/content/14428
- 工业网络渗透,直击工控安全的罩门(zph,暂无资料)
- 工控系统安全威胁与应对探索(Kimon)
- Exploit PLC on the internet(Z-0ne):https://github.com/knownsec/KCon/tree/master/KCon%202015
- 其他参考
- Google & baidu
协议安全分析专业公司——科诺康:http://www.codenomicon.com/cn/ - Modbus通讯协议学习 – 认识篇:http://www.cnblogs.com/luomingui/archive/2013/06/14/Modbus.html
- Google & baidu
0x05 协议分析- ModBus
- 标准的Modicon控制器使用RS232C实现串行的Modbus。
- Modbus的ASCII、RTU协议规定了通信数据的结构、命令和应答方式。数据通讯采用Master/Slave方式,Master端发出数据请求消息,Slave端接受正确消息后悔发送数据到Master端以响应请求。Master端也可以直接发送消息修改Slave端的数据,实现双向读写。
- modbus TCP和modbus RTU基本相同,但是也存
一些区别- 从机地址变得不再重要,多数情况下忽略。从某种意
义上说从机地址被IP地址取代 - CRC校验变得不再重要,甚至可以忽略。由于TCP数
据包中已经存在校验,为了不重复造轮子,modbuCP干脆取消了CRC校验。 - TCP 模式是为了让Modbus 数据顺利在以太网上传产生的,使用TCP 502 端口。
- 该协议物理层,数据链路层,网络层,传输层都是基
于TCP 协议,只在应用层,将Modbus 协议修改后装进去; 接收端将该TCP 数据包拆封后,重新获得原
始Modbus 帧,然后按照Modbus 协议规范进行
析,并将返回的数据包重新封装进TCP 协议中,返回
到发送端。 - 与串行链路传输的数据格式不同,TCP 模式去除了
加地址和校验,增加了报文头。
- 从机地址变得不再重要,多数情况下忽略。从某种意
- Modbus协议功能码
- 读
- 功能码01为度内部比特量输出状态;如告警、变位、故障、异常等。
- 功能码02为度外部开放量输入状态;如光耦输出、继电器输入等。
- 功能码03为读内部输出量的寄存器;如一些配置参数、定值的读取等。
- 功能码04位读外部输入量的寄存器;如外部电压电流模拟量,温湿度等。
- 写
- 功能码05位写内部单个开关量状态;如光耦输出、继电器输出等。
- 功能码06为写内部单个寄存器的值;如更改配置参数、定值等。
- 功能码15位写内部多个开关量状态;如同05
- 功能码16为写内部多个寄存器的值;如同06;对时是写多寄存器,用此功能码。
- 读
协议分析- S7-common
S7通信支持两种方式
- 1)基于客户端(Client)/服务器(Server)的单边通信;
- 2)基于伙伴(Partner)/伙伴(Partner)的双边通信;
- 客户端(Client)/服务器(Server)模式是最常用的通信方式,也称作S7单边通信。
- 在该模式中,只需要在客户端一侧进行配置和编程;服务器一侧只需要准备好需要
被访问的数据,不需要任何编程(服务器的“服务”功能是硬件提供的,不需要用户软件的任何设置)。
- 由TPKT,COTP,S7 PDU三部分组成并且由TPKT和COTP为S7PDU通讯搭建链路
- S7协议分析
- 刚看到TPKT和COTP也许会很迷惑,其实在具体的报文中,
- TPKT的作用是包含用户协议(5~7层)的数据长度(字节数);
- COTP的作用是定义了数据传输的基本单位(在S7Comm中
PDU TYPE:DT data); - S7Comm与标准TCP/IP比较:S7Comm是一个7层协议;
TCP/IP是四层协议,用户数据在第四层TCP层完成; - 计算机与PLC进行通讯,可以连接102端口,这是西门子开放的
一个通讯端口
还没有评论,来说两句吧...