ESPscan 工控协议识别研究

ESPscan 工控协议识别研究:把 unknown 端口还原成设备语言


最近在给 ESPscan 补工控协议指纹。重点不是单纯判断端口开放,而是把扫描结果里的 unknown 尽量还原成可判断的工业资产语言:PLC、RTU、SCADA、楼宇控制器、电力远动装置、工业数据服务。

本文示例 IP 均已脱敏,仅用于协议识别研究。实际扫描请确保获得授权。

为什么研究这个

很多扫描器看到 5021024481820000,可能只会标记端口开放,或者丢一个 unknown

但在工控场景里,端口背后往往不是普通服务,而是控制逻辑、运行参数、遥测点位,甚至分合闸指令。所以 ESPscan 想做的不是简单抓 banner,而是通过握手、异常响应、协议字段、设备标识等信息,提高协议识别置信度。

当前关注的工控协议

协议常见端口主要场景ESPscan 识别关注点
Modbus TCP502PLC、传感器、电表、水泵、光伏采集器FC 异常、unit id、寄存器访问响应
S7Comm102西门子 S7 系列 PLCISO-TSAP 握手、CPU 型号、固件版本
EtherNet/IP44818罗克韦尔 / AB PLC、伺服、产线控制CIP 身份字段、设备型号、序列号脱敏
DNP320000电力、水利、油气 RTU源 / 目的地址、Unsolicited、IIN 标志
IEC 1042404电网调度、变电站远动STARTDT / TESTFR、APCI 帧特征
BACnet/IP47808/UDP楼宇 HVAC、消防、机房空调Device ID、Vendor ID、对象属性
OPC UA4840MES、SCADA、工业数据中台Hello / Acknowledge、证书与匿名策略
FINS9600欧姆龙 PLC、日系产线FINS 节点地址、错误码
MELSEC5007三菱 PLC、CNC、3C 产线Melsoft 通信特征、时钟响应
IEC 61850 MMS102智能变电站、保护装置与 S7 共用端口,需要上层语义区分

脱敏识别样例

203.x.x.10:502      Modbus       Exception FC=0x2B code=1 unit=0
198.x.x.20:102     S7           6ES7 214-1HG40-0XB0 v.4.x | SN:****
192.x.x.30:44818      EtherNet/IP  1766-L32BWAA B/16.00 | Rockwell/Allen-Bradley | PLC | SN:****
203.x.x.40:20000    DNP3         UnconfirmedUserData dst=1024 src=90 Unsolicited IIN=0x0080
198.x.x.50:47808   BACnet       Device 15201 | Vendor(7)
192.x.x.60:4840       OPCUA        Acknowledge ver=0 recvBuf=65535 sendBuf=65535
203.x.x.70:9600     FINS         NodeAddr client=0 server=100 err=0x00000020
198.x.x.80:5007    MELSEC       Melsoft clock=****

IEC 104 在公网暴露相对少,多数挂在专网、VPN 或防火墙后面。内网或靶场环境下,如果 2404 返回 STARTDT con,基本说明协议识别链路是通的。

几个研究结论

  1. 端口号不能直接等于协议。102 可能是 S7,也可能是 IEC 61850 MMS,需要继续解析上层语义。
  2. 工控识别的关键不是多发请求,而是理解握手、异常码、字段结构和设备身份响应。
  3. 公网可见的工控资产数量不一定大,但一旦暴露,风险等级通常高于普通 Web 服务。
  4. Modbus、S7、EtherNet/IP、DNP3 是资产测绘里比较常见的方向;IEC 104 公网少,但电力场景价值高。
  5. ESPscan 后续会继续补协议指纹、置信度评分和误报控制,而不是只追求端口数量。

风险声明

工控协议一旦被未授权访问,影响不只是数据泄露,可能直接关联生产运行、设备控制和供电安全。这里只做协议识别与资产测绘研究,不对未授权目标进行任何扫描或测试。

#工控安全 #资产测绘 #ESPscan #协议识别 #IOT安全

添加新评论