记一次 Modbus 协议流量分析
首先协议分级能够发现是 Modbus/TCP 的类型的流量
同时这也是题目中考的最多的 Modbus 协议流量
常见的功能码:
1 | 1:读线圈 |
首先先过滤一下 modbus 协议的流量
翻了翻,发现该流量包中只有两种功能码,一个是 3(读保持)一个是 6(写单个保持)
首先先将功能码 6 且选中进行过滤,并将 data 都提取出来
转码也并没有什么发现
接下来同样的方法过滤功能码 3
发现每次的回复包都有一组可疑的数据,并且随着包的标号往下看,从每一组的第一个数开始依次轮换了三次,也就是有四组数据,把他们都提取出来
1 | 71 71 81 63 79 64 43 40 41 41 |
直接转 ascii 码并不正确,但是由于数据可疑并且长度差不多,我们计算一下标头数据和 flag 头字母 ascii 码的偏移量,发现都是一样的
利用脚本加上偏移转换成 ascii 码得到 flag
1 | c =[71,71,81,63,79,64,43,40,41,41,112,65,35,86,83,101,98,77,96,91,74,93,88,71,90,85,68,73,68,85,90,93,0,1,2,3,4,3,2,1] |
输出:
1 | HITCTF2023{M0dbus_so_so_so_easy}!#%')))) |