前言
要打振兴杯决赛,这里多学习一下工控相关
首先要对tshark做一个用法学习
tshark学习
|
|
工控流量分析
Modbus
Modbus 流量主要有三类:Modbus/RTU、Modbus/ASCII、Modbus/TCP
常见的就是TCP的,对于Modbus最经常考察的就是对功能码的理解
常见功能码
| 十进制 | 十六进制 | 功能 |
|---|---|---|
| 1 | 0x01 | 读线圈状态 |
| 2 | 0x02 | 读离散输入 |
| 3 | 0x03 | 读保持寄存器 |
| 4 | 0x04 | 读输入寄存器 |
| 5 | 0x05 | 写单个线圈 |
| 6 | 0x06 | 写单个寄存器 |
| 15 | 0x0F | 写多个线圈 |
| 16 | 0x10 | 写多个寄存器 |
在wireshark中可以用modbus.func_code == 16来筛选功能码为16的协议

可以用以下脚本统计各个功能码出现的次数,经过对比就可以发现哪个是可疑流量了
|
|
s
这里明显是功能码16,然后后面再用modbus.func_code == 16来筛选就行(前面贴过图了)
S7comm
西门子设备的工控协议,基于 COTP 实现,是COTP的上层协议
主要有三种类型:Job(1)、Ack_Data(3)/Ack(2)、Userdata(7)
Job:下发任务/指令
Ack_Data:带有返回数据
Ack:单纯确认,含有数据
Userdata:用户自定义数据区,也包含功能指令
功能码

s7comm.param.func ==0x05