用友list(用友Linux)_币百科_智行理财网

用友list(用友Linux)

小智 0

欧易okx交易所下载

欧易交易所又称欧易OKX,是世界领先的数字资产交易所,主要面向全球用户提供比特币、莱特币、以太币等数字资产的现货和衍生品交易服务,通过使用区块链技术为全球交易者提供高级金融服务。

APP下载   官网注册

作者 | 绿盟科技格物实验室 高剑

来源:网络安全应急技术国家工程实验室

S7-1200+SCADA:详解西门子S7协议与数据读写

写在前面(文中超链接、PPT等仅在微信公众号“智能制造之家”有效)

前面我们说了工业控制系统的通讯,大家肯定会想到PROFINET、ETHERNET/IP、ETHERCAT等工业以太网

最详细的工业网络通讯技术与协议总结解读(现场总线、工业以太网、工业无线)

技术解读PROFINET、Ethernet/IP等7种主流工业以太网

最全整理工业通讯上的领域各种总线+协议+规范+接口—数据采集与控制

但是说到协议的分析,我们不得不提到安全问题,前面西门子、施耐德、罗克韦尔等国际大厂的相关安全漏洞:

基于S7协议对西门子PLC S7-1500的漏洞分析与复现(附演示视频)

施耐德PLC漏洞历险记—一次与施耐德PLC的非正常接触

罗克韦尔 MicroLogix PLC漏洞的复现及解决方案

说到西门子PLC,我们不得不提S7协议,今天我们就来系统聊一聊~



S7-1200+SCADA:详解西门子S7协议与数据读写

00 西门子S7 系列PLC与S7协议


西门子PLC使用私有协议进行通信,端口为102。西门子PLC协议有3个版本,S7Comm协议,早期S7CommPlus协议和最新的S7CommPlus协议。S7-200、S7-300、S7-400系列的PLC采用早期的西门子私有协议S7comm进行通信,S7-1200系列v3.0版本之前的通信协议采用早期S7Comm-Plus协议,S7-1200系列v4.0版本、S7-1500系列采用了最新的S7Comm-Plus协议,本文以工控常见业务场景为例,分析Wincc V7.4作为上位机对PLC数据区的访问操作,现实场景中工控流量占比最大的也是上位机的SCADA环境对下位机PLC数据区的一些读写操作,而非组态软件对PLC的启停、下装上载操作,只有在调试运维过程中才会使用组态软件。


S7-1200+SCADA:详解西门子S7协议与数据读写


01 S7-1200与SCADA配置

整个协议分析的基本环境配置如下:Win7 x64虚拟机:

PLC:S7-1200,6ES7214-1AG40-0XB0

Firmware: V4.2.3

Software:Wincc V7.4

S7Comm-Plus Wiresharkdissector plugin: V0.0.8

配置环境搭建的框架图如下所示,通过交换机连接SCADA上位机与S7-1214C的PLC,wireshark安装在连接镜像端口的PC机中,wireshark中导入S7Comm-Plus的解析插件。

S7-1200+SCADA:详解西门子S7协议与数据读写

本文所述的数据区特指S7系列PLC中的DB块、M区(I区、Q区与M区类似)。


S7-1200+SCADA:详解西门子S7协议与数据读写


02 读数据区的读变量操作

Wincc对PLC的读变量操作,首先需要组态Wincc V7.4在画面中建立输出控件,关联上PLC的对应地址变量,运行系统后在控件中就可读取对应变量的值,如下所示:


S7-1200+SCADA:详解西门子S7协议与数据读写

组态读取MD92地址处的变量值,读取变量的操作码Opcode为0X31,Function为CreateObject(0x04ca),寻找第7个Attribute属性中ID Number字段SubscriptionReferenceList。

S7-1200+SCADA:详解西门子S7协议与数据读写

展开SubscriptionReferenceList的详细描述,在SubscriptionList下包含了具体的访问区域与详细地址信息,Accessbase-area区域显示M区(0x52),Blob startoffset为92,表示M区中的访问地址,读取字节数Blob bytecount为2,表示读取两个字节长度。

S7-1200+SCADA:详解西门子S7协议与数据读写

组态读取DB59999.DBW6地址处的变量值(wincc对于DB块进行读取操作必须不加入优化,DB块中的变量必须有确定分配的地址),读取变量的操作码Opcode为0X31,Function为CreateObject(0x04ca),寻找第7个Attribute属性中ID Number字段SubscriptionReferenceList。

S7-1200+SCADA:详解西门子S7协议与数据读写

展开SubscriptionReferenceList的详细描述,在SubscriptionList下包含了具体的访问区域与详细地址信息,Accessbase-areaa区域经过算法解析后得到0x8a0eea5f,表示DB59999(原始数据帧中字节为0x88 d0 bb d4 5f),Blob startoffset为6,表示DB5999中的访问地址,读取字节数Blob bytecount为2,表示读取两个字节长度。

S7-1200+SCADA:详解西门子S7协议与数据读写

备注:VLQ相关编码算法可参考S7Comm-plus wireshark插件的源码,源码地址https://sourceforge.net/p/s7commwireshark/code/HEAD/tree/trunk/src/


S7-1200+SCADA:详解西门子S7协议与数据读写



03 对数据区的写变量操作

Wincc对PLC的写值操作一般会在画面中建立输入控件,关联上PLC的对应地址变量,在控件中写值,按enter键后写入成功,如下所示:

S7-1200+SCADA:详解西门子S7协议与数据读写

在MD92写入变量过程中抓取到请求数据

S7-1200+SCADA:详解西门子S7协议与数据读写

写入变量的操作码Opcode为0X31,Function为SetMultiVariables(0x0542),Access base-areaa字段显示为M区(0x52),写入地址Blob startoffset为92,写入字节数Blob bytecount为4,写入的值为value:0x0001046a。

S7-1200+SCADA:详解西门子S7协议与数据读写

在DB59999.DBW6地址处写入变量过程中抓取到请求数据帧,(Wincc写DB块必须保证DB块不优化,有自己的实际地址)

S7-1200+SCADA:详解西门子S7协议与数据读写

写入变量的操作码Opcode为0X31,Function为SetMultiVariables(0x0542),Access base-areaa字段显示为DB59999(0x8a0eea5f),写入地址Blob startoffset为6,写入字节数Blob bytecount为2,写入的值为value:0x8235。

S7-1200+SCADA:详解西门子S7协议与数据读写


S7-1200+SCADA:详解西门子S7协议与数据读写



04 流量中关键点提取

从以上的分析中可以总结如下表格,不论是工业防火墙还是审计系统,均需要将关键字段识别并加入至白名单中,在S7Comm-plus协议的流量中,识别表格中的关键信息就能命中各种业务操作,比如读M区变量、写Q区变量等。但是想和实际工艺场景结合,比如命中流量中对污水处理加药间加药量阀门的操作需要做进一步的工作。


读DB块

读M区

读I区

读Q区

Opcode

Request(0X31)

Function

CreateObject(0x04ca)

ID Number

SubscriptionReferenceList

Base-area

0x8a0e

0x52

0x50

0x51


写DB块

写M区

——

写Q区

Opcode

Request(0X31)

Function

SetMultiVariables(0x0542)

Base-area

0x8a0e

0x52

——

0x51


S7-1200+SCADA:详解西门子S7协议与数据读写



05 总结


本文以Wincc V7.4作为上位机,调用S7Comm-plus的驱动访问S7-1200系列PLC,具体访问了PLC的DB块、M区等,在访问过程中通过wireshark抓取对应报文,并做了简单分析,并通过表格形式总结出S7Comm-plus访问西门子系列PLC常用数据区的关键字段,在工业安全产品中要解析或者捕获流量是需要命中这些字段,通过这些字段关联到对应的操作区域。但如果想再次区分流量中对M区的哪个地址写入了什么数据还需要深入解析后续的value字段。如若需要和工艺流程联动,还需要将工程点表和安全产品中的命中规则联动和融合,这样才能更接近工业现场。

硬核专辑

ERP/PLM/MES/SCADA/PLC/工业软件研究报告

信息化、数字化、智能制造、工业互联网解决方案

自动化、信息化、数字化、工业网络、仿真与虚拟调试入门

WinCC技术 | 工业网络 | MES技术相关| 工业巨头战略布局 | 工业通讯案例

仿真与虚拟调试 | 职业感悟、认知提升 | 自动化控制标准合集



2021中国工控自动化行业产业分析(PLC\DCS\变频\伺服\步进)

2021-04-18

S7-1200+SCADA:详解西门子S7协议与数据读写

S7-1500+TIA+MCD:西门子仿真与虚拟调试的硬件在环调试流程

2021-04-12

S7-1200+SCADA:详解西门子S7协议与数据读写

200页PPT,详述MES/MOM与APS系统及其选型(下载)

2021-04-22

S7-1200+SCADA:详解西门子S7协议与数据读写

机械加工行业数字化车间规划与方案

2021-04-20

S7-1200+SCADA:详解西门子S7协议与数据读写

107页PPT,讲透MES与APS系统及其选型

2021-03-30

S7-1200+SCADA:详解西门子S7协议与数据读写

107页全球工控深度报告:西门子、ABB、施耐德、三菱VS汇川、中控..

2021-03-26

S7-1200+SCADA:详解西门子S7协议与数据读写

西门子、SAP、达索、PTC、AVEVA:六大海外工业软件巨头的2020

2021-03-24

S7-1200+SCADA:详解西门子S7协议与数据读写

智能制造之中国物流自动化装备行业分析(软件、立体库、分拣设备、AGV)

2021-03-20

S7-1200+SCADA:详解西门子S7协议与数据读写

某智能工厂调研、规划、实施整体解决方案

2021-03-19

S7-1200+SCADA:详解西门子S7协议与数据读写

达索、西门子、PTC:工业软件三大顶部PLM玩家的战略布局分析

2021-03-17

S7-1200+SCADA:详解西门子S7协议与数据读写

智能制造数据采集之RFID全产业链研究报告

2021-03-16

S7-1200+SCADA:详解西门子S7协议与数据读写

西门子、RA、施耐德、三菱、汇川、和利时:中国PLC市场及产业链分析

2021-03-14

S7-1200+SCADA:详解西门子S7协议与数据读写

2020中国工业软件企业排行&2020中国智能制造企业排行

2021-03-13

S7-1200+SCADA:详解西门子S7协议与数据读写

西门子、ABB、霍尼韦尔、中控、力控...中国SCADA&DCS市场报告

2021-03-09

S7-1200+SCADA:详解西门子S7协议与数据读写

100大产业链全景图(2020版)及智能制造50大产业链

2021-03-04

S7-1200+SCADA:详解西门子S7协议与数据读写

中国ERP软件行业研究—SAP、金蝶、用友、浪潮、鼎捷哪家强

2021-03-02

S7-1200+SCADA:详解西门子S7协议与数据读写

欢迎关注"智能制造之家"

相关内容

用友list(用友Linux)文档下载: PDF DOC TXT