工业控制(ICS)---MMS

发布于:2024-04-18 ⋅ 阅读:(146) ⋅ 点赞:(0)

MMS

工控领域的TCP协议,有时wireshark会将response包解析为tcp协议,影响做题,如果筛选mms时出现连续request包,考虑wireshark解析错误,将筛选条件删除手动看一下

initiate(可以理解为握手)

initiate-RequestPDU

initiate-ResponsePDU

confirmed(可以理解为交互,即传数据)

confirmed-RequestPDU

confirmed-ResponsePDU

通常情况为

1轮initiate:即发送1个initiate-RequestPDU,接收1个initiate-ResponsePDU

n轮confirmed:直到会话主动关闭或被动断开即confirmed-RequestPDU和confirmed-ResponsePDU交替发送和接收

交互时的指令称为confirmedService
常见的confirmedService有

对象操作
getNameList (1)
read (4)
write (5)
getVariableAccessAttributes (6)
getNamedVariableListAttributes (12)
文件操作
fileOpen (72)
fileRead (73)
fileClose (74)
fileDirectory (77)

例题1 HNGK-MMS

题目要求:分析文件找出flag

  1. 根据题目名称过滤出MMS数据包,发现前两个包为请求握手,观察第三个包发现read为4
    在这里插入图片描述
    再找其他数据段发现itemId数据不一样,仔细观察都是LLN0开头
  2. 过滤LLN0开头的数据
    选中过滤器

(mms) && mms.itemId contains “LLN0” 没啥发现
然后过滤一下非FFNO的数据,发现三条数据
(mms) && mms.itemId &&!(mms.itemId contains “LLN0”)
在这里插入图片描述
通过观察比较发现数据疑似ascii码,因为ascii码中f为66、l为6c
itemId: LLN666i5250356j4249
itemId: LLN616732557968356j
itemId: LLAy7sxCA9wSYrVLCbr
将结果拼接一起:
666i5250356j4249616732557968356j

因为666c为flag的16进制开头,为了构建666c,让i变为c,只需要将字母i减6变成c,那么j为的:
变换后的字符串为666c5250356d4249616732557968356d
16进制转字符串为flRP5mBIag2Uyh5m
观察发现应该为2个字节换了下一段 flRP5mBI ag2Uyh5m

  1. 拼接后flag为:在这里插入图片描述

参考:
https://blog.csdn.net/song123sh/article/details/127358610
https://mp.weixin.qq.com/s/LW0jQAoD5VLygHyooyUXlw


网站公告

今日签到

点亮在社区的每一天
去签到