行业背景:工业控制系统(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重启命令。

