专业

Wireshark分析工控协议实战:Modbus TCP与DNP3深度解析及安全检测

行业背景:工业控制系统(ICS)安全日益重要,Modbus TCP和DNP3是电力、制造业最常用的协议,但专业分析内容稀缺 [^22^] [^30^]。

一、Modbus TCP协议分析

应用数据单元(ADU)结构:

MBAP Header (7 bytes): 事务标识 | 协议标识(0x0000) | 长度 | 单元标识
          PDU: 功能码 (1 byte) | 数据 (n bytes)

Wireshark过滤技巧:

  • modbus - 显示所有Modbus流量
  • modbus.func_code == 3 - 读取保持寄存器(Holding Registers)
  • modbus.func_code == 16 - 预置多个寄存器(写操作)
  • tcp.port == 502 - 捕获Modbus TCP流量

二、DNP3协议深度解析

DNP3协议分为链路层、传输层、应用层三层结构,Wireshark可逐字节解析 [^34^]:

链路层功能码: 0x00(确认) | 0x01(非确认) | 0x09(请求链路状态)
          应用层功能码: 0x01(读) | 0x02(写) | 0x0D(冷重启) | 0x0E(热重启)

三、工控安全检测场景

场景1:异常写操作检测

过滤:modbus.func_code == 6 or modbus.func_code == 16,监控非工作时间的写操作,可能为恶意控制指令。

场景2:DNP3冷重启攻击识别

过滤:dnp3.al.func_code == 0x0D,检测未经授权的RTU/PLC重启命令。

免费下载 Wireshark

让网络分析触手可及

Windows 版

v4.4.0
64位 / 32位
完全免费 · 无广告

macOS 版

v4.4.0
Intel / Apple Silicon
原生支持 M 系列芯片
通过包管理器安装:sudo apt install wireshark (Debian/Ubuntu)