Modbus/TCP
不再需要从机地址,改用UnitID;不再需要CRC/LRC,因为TCP自带校验
传输标识符2B+协议标识符2B+长度2B+从机ID 1B+功能码1B+数据字段xB
题目中一般只考Modbus/TCP类型
功能码(常见)
1:读线圈
2:读离散输入
3:读保持
4:读输入
5:写单个线圈
6:写单个保持
15:写多个线圈
16:写多个保持
例题1 HNGK-Modbus流量分析
筛选出所有Modbus协议流量,发现有多种功能码,一个一个查询是否有异常流量
首先是17,发现请求包中无其他参数,查看前面几个回包均发现060000数据,猜测此为正常流量,于是将060000作为不查询条件
modbus and modbus.func_code == 17 and modbus.data!=06:00:00
没有其余流量,判断功能码17无问题,将17作为不查询条件接着查看下一个功能码
功能码109:查询和返回都有数据,先将查询的数据54不选中,得到大量返回包,将其数据00不选中
没有异常流量,查询下一功能码
功能码67:方式同上,这里将返回数据有多种情况
最终在功能码1中发现异常
(modbus.func_code == 1) && (modbus.bit_cnt != 8)
有请求包就有返回包,四个包都是异常的,但是异常一定是有请求数据异常导致,所以实际上只需找到请求包即可
筛选条件有多种方式
(((((modbus.func_code == 1)) && !(modbus.reference_num == 0)) && !(modbus.reference_num == 1536)) && !(frame[63:1] == 00)) && !(frame[63:1] == fe)
损坏的风机
小明是一家新能源汽车制造厂的风机操作员,每天的工作是根据工厂的实时温度输入风机的转数,但由于机器的老化,风机最多能接受2000转/分钟的转速,在当天下班后,检修人员发现风机由于转速过快出现了故障,请根据维修人员捕获的流量包分析当天风机的转速达到了多少转才出现的故障,flag为发送高额转速的Data层的HEX数据。flag格式为:flag{}
题解:打开流量包,发现是modbus协议,筛选modbus协议,然后题目中是说修改了风机的转数是写操作,因此筛选modbus功能码为06:
modbus and modbus.func_code==06,逐个分析modbus的data发现0bb8为3000,大于2000,应该是这条
flag为发送高额转速的Data层的HEX数据: 因此falg为
最后
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数网络安全工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上网络安全知识点!真正的体系化!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
获取!!**](https://bbs.csdn.net/topics/618653875)
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!