概述

数控系统是数控机床的控制中枢,由于开发数控系统的技术性很强,存在层层技术壁垒,能攻克各种技术难关,做出好的数控系统的供应商,全世界屈指可数,例如西门子、发那科、海德汉等。目前我国的中高端数控机床主要依赖于进口,在进口数控机床的数控系统中又以西门子和发那科占比最大。西门子数控系统种类比较齐全,数控车床、数控磨床和数控加工中心等都有相应的专用数控系统。目前国内市场上主要有SINUMERIK 810、828、840等系列,由于828D使用范围和价格原因,在国内市场上更受欢迎,因此本文以828D为研究对象讲述如何针对该数控系统做资产识别。

研究对象

基于面板的SINUMERIK 828D是一款紧凑型数控系统,支持车、铣工艺应用,可选水平、垂直面板布局和两级性能,满足不同安装形式和不同性能要求的需要。SINUMERIK 828D集CNC, PLC, 操作界面以及轴控制功能于一体,通过Drive-CLiQ总线与全数字驱动SINAMICS S120实现高速可靠通讯,PLC I/O模块通过PROFINET连接,可自动识别,无需额外配置。

828D有两个网络接口,分别为X130和X127,其中X130为工厂网络连接网络接口,是用于工厂内部信息化使用的网口,IP可自己设置。X127网口位于设备的前面板处,用于调试程序,固定IP地址为192.168.215.1。

信息获取

利用nmap对828D的X130网口进行扫描,扫描结果如下所示:

可以发现默认开放的端口较多,常见的21、22端口都有开放,除此之外还有102这个西门子常用的协议端口等。828D对应的编程软件为PLC Program Tool,用于机床程序控制,执行IO操作等。

安装软件后连接设备,通过wireshark抓取报文,发现通信协议依然为S7Comm。

信息获取阶段取得了较大的收获,开放端口较多,使用协议也为西门子的常见协议。

通过搜索大法取得了较大的突破,获得了数控系统常用的默认账号和密码。

那么该设备是否还在使用默认账号密码呢,使用SSH协议、默认用户名密码顺利进入了828D系统。

资产探测

经过以上分析,可通过两种方法探测该设备,提取该设备的指纹信息:

  • 通过SSH协议利用默认账号和密码。

  • 通过S7Comm协议探测设备描述信息。

1) SSH协议资产探测方法

通过SSH登录到828D后,查看文件系统,发现文件系统中有针对该设备的描述文件,因此可通过抽取描述该设备的特定文件来做资产探测与识别。

需读取的文件/etc/hwversions.xml 如下所示,该文件中描述的是设备硬件方面的信息,包含有设备型号、硬件版本、 订货号、序列号等信息。

文件内容如下所示:

SINUMERIK 828D PPU271.4##设备名称与型号

02##HW硬件版本

Mainboard

6FC5 370-5AA40-0AA0##西门子订货号

SZVL5XPF001529##设备序列号

3.9.0.0

4

V00.09.00.00

FPGA

23.0 [29]

BIOS

V05.00.00.00

V05.00.00.00

CF Card

CF Card

000060147479B10000DF

2055MB

除以上对828D设备描述外,还需要寻找对整体设备的软件信息的所有描述,可在如下目录下找versions.xml文件获取。

登录读取的状态如下图所示,其中包含了828D 设备操作系统的SW版本信息,所包含组件NCK的版本信息,包含组件PLC的版本信息等等。

对应至828D数控机床HMI操作界面如下:

综上所述,需要通过SSH登录至828D设备,读取/etc/hwversions.xml和/siemens/versions.xml两个文件。

从/etc/hwversions.xml文件中读取以下标红的信息:

SINUMERIK 828D PPU271.4##设备名称与型号

02##HW硬件版本

Mainboard

6FC5 370-5AA40-0AA0##西门子订货号

SZVL5XPF001529##设备序列号

从/siemens/versions.xml文件中读取以下标红的信息:

SINUMERIK 828D

V04.08.04.02## SW版本信息

04.08.04.02.004

0

CYCLES

04.08.04.04

/card/siemens/sinumerik/cycles/cyc

NCK

128.02.08##NCK组件版本信息

/card/siemens/sinumerik/nck

PLC

07.02.13.00##PLC组件版本信息

/card/siemens/sinumerik/plc

以上标红的所有信息构成对828D数控机床资产的指纹信息。

2) S7Comm协议

利用PLC Program Tool组态简单程序下装至828D中,连机后查找组态软件中对设备的操作和信息展现的条目,经过查找后发现有读取系统指纹信息和状态展示框。

根据该线索,分析该窗口获取设备信息的方式,从该方式出发获得指纹信息。在操作该展示框时,开启wireshark抓取通信报文,经过分析PLC指纹信息的请求报文如下,访问的是SI200 0.0 BYTE 16。

响应报文如下,包含了828D系统PLC的详细版本:

PLC系统版本请求报文如下:

PLC系统版本响应报文,其中包含了PLC System的详细版本号7.2.13.0。

另外PLC的运行状态请求报文如下:

响应报文中包含了PLC的运行状态信息,其中Data数据的01表示运行,00表示停止。

总结

本文以西门子的828D数控系统为例,讲述了资产探测的两种方法,其中通过SSH方式进行探测存在局限性,只对没有修改账号密码的场景适用,但也为资产探测提供了一种思路,可以通过开放的端口在系统中寻找描述性文件来识别资产。S7Comm探测资产的方式更为通用,但是获取的资产信息比较有限,因此建议实际使用中能结合两种方式,达到互补融合的效果。

声明:本文来自工业信息安全产业发展联盟,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。