协议分析
流量分析
主要以工控流量和恶意流量为主,难度较低的题目主要考察Wireshark使用和找规律,难度较高的题目主要考察协议定义和特征
简单只能简单得干篇一律,难可以难得五花八门
常见的工控协议有:Modbus、MMS、IEC60870、MQTT、CoAP、COTP、IEC104、IEC61850、S7comm、OMRON等
由于工控技术起步较早但是统一的协议规范制定较晚,所以许多工业设备都有自己的协议,网上资料数量视其设备普及程度而定,还有部分协议为国家制定,但仅在自己国内使用,网上资料数量视其影响力而定
CTF之协议分析文章合集
工控CTF之协议分析1——Modbus
工控CTF之协议分析2——MMS
工控CTF之协议分析3——IEC60870
工控CTF之协议分析4——MQTT
工控CTF之协议分析5——COTP
工控CTF之协议分析6——s7comm
工控CTF之协议分析7——OMRON
工控CTF之协议分析8——特殊隧道
工控CTF之协议分析9——其他协议
文中题目链接如下
站内下载
网盘下载:https://pan.baidu.com/s/1vWowLRkd0IdvL8GoMxG-tA?pwd=jkkg
提取码:jkkg
S7comm
西门子设备工控协议,基于COTP实现,是COTP的上层协议,主要由三种类型(ROSCTR):Job(1)、Ack_Data(3)/Ack(2)、Userdata(7)
Job:下发任务/指令,机器收到任务/指令后回传数据确认收到,回传的内容就是Ack/Ack_Data
Ack_Data:带有返回数据,例如指令是查询内容,返回的就有要查询的东西
Ack:单纯确认,不含有数据
-
Job,主要有10种功能(Function)
- Setup communication (0xf0) 启动、初始化
- Read Var (0x04) 读参数
- Write Var (0x05) 写参数
- 下载
- Request download (0x1a) 请求下载
- Download block (0x1b) 要下载的数据,可能出现多次
- Download ended (0x1c) 表示数据已发送完毕
- 上传
- Start upload (0x1d) 表示要上传东西,读取文件
- Upload (0x1e) 上传内容
- End upload (0x1f) 表示上传完成
- PI-Service (0x28) 控制指令,控制一些程序,在题目中很少见
-
Userdata,用户自定义数据区,也包含功能指令,主要有6种功能组(Function group)
- Mode-transition (0) 模式转换
- Programmer commands (1) 执行
- Block functions (3)
- CPU functions (4)
- Security (5) 安全相关
- Time functions (7) 定时任务相关
例题1 2020ICSC湖州站—工控协议数据分析
发现不仅有s7,还有很多COTP,因为s7是COTP上层协议,s7数据都是通过COTP传输
筛选s7,读参数的请求内容会在返回数据中,写请求内容一定在发送数据中,根据不同功能分析数据包
看第二个写请求,发现参数转码为l,判断flag藏在写请求中,筛选所有写请求
(s7comm) && (s7comm.param.func == 0x05) && (s7comm.header.rosctr == 1)
提取所有写请求参数,转码得到flag
例题2 2020ICSC济南站—被篡改的数据
直接筛选s7comm,根据题目提示,篡改的数据,那么优先筛选写参数请求即write var
发现大量数据66,转码为f,猜测可能是flag的f字符,但是两千多条,先将其筛除,看剩下的
(((s7comm) && (s7comm.param.func == 0x05)) && (s7comm.header.rosctr == 1)) && !(s7comm.resp.data == 66)
剩下的数据可以直接看出就是flag,开头结尾有花括号,但是为了防止flag中含有f,重新筛一遍
直接看序号19987,即刚刚发现的l上一条,从这里开始提取得到flag
手动复制或者py脚本提取
例题3 枢网智盾2021—异常流分析
发现流量都是s7协议写入数据
(s7comm) && !(s7comm.header.rosctr == 3)
且发现写入数据内容都是ffff开头,先筛一下看看有没有不是ffff开头的
((s7comm) && !(s7comm.header.rosctr == 3)) && (s7comm.resp.data[0:2] != ff:ff)
这个就是异常流量,得到flag
例题3 枢网智盾2021—工控协议分析
前面初始化setup出错误,没有ack的setup,往后看也没有什么明显的异常了
发现本该是应答初始化的地方变成了返回read结果,且是明文
尝试解码
文章来源:https://www.toymoban.com/news/detail-781371.html
得到flag文章来源地址https://www.toymoban.com/news/detail-781371.html
到了这里,关于工控CTF之协议分析6——s7comm的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!