序言

之前没有接触过工控类型的题目,这次遇到了两道关于工控的Misc流量包隐写,感觉挺有意思的

虽然很简单,比较脑洞,但觉得比较好玩,有思路的话,就很好做了,记录一下

DNP 3协议

协议简介

协议的简介在下面

DNP3协议简单介绍及协议识别方法

有关的CTF类型题目在下面

工控安全入门(四)—— DNP3协议

里面涉及到的层次写的很详细,但它里面涉及到的题解都是关于在应用层中

涉及文件读取,主从设备状态设置,时间戳发送等等

file_read

file_list_directory

freeze

full_exchange

lan_time_sync

这道题却flag信息不在Application Layer中,在Data Chunk当中,下面会详细写一下解题过程的

解题

首先题目提示了DNP3协议,那就过滤看看

image-20201115145441126

这里可以看到客户端重置了远程的连接,然后发送时间戳和内部信息等(这里没有看到flag信息)

然后发现数据包是由Read, Class 123Read, Class 0123组成,倾向于flag在其中

image-20201115145318598

7AD3BB0CD291B7880FA8A0D18F08D115

根据网上资料得知是在检索缓冲时间和当前的静态数据,于是追踪DNP3协议的TCP流看看

image-20201115150015146

发现存在Dvu的部分的可见ascii字符可以组成flag{

查看了一下字段得知是Data Chunk字段

image-20201115150210576

而且由此得知,如果存在flag的字符,那么一定是存在两个Data Chunk

剩下的就好办了,直接把Data Chunk单独列成一个Column

image-20201115150356778

专门寻找有两个Data Chunk的数据包把倒数第二行倒数第三个字符提取出来即可

image-20201115150508842

image-20201115150520422

这里要注意的是,有几个包,他的Data Chunk不是一个,但其中包括D和vu,这种是不算的,必须严格只能存在两个Data Chunk

按照这个规律

寻找所有的有两个Data Chunk的包把倒数第二行倒数第三个字符提取拼在一起

即可得到flag

Modbus协议

这道题我其实不晓得协议细节,但是根据上一道题的ruozhi脑洞,我感觉不难

直接追踪了一下modbus协议

image-20201115151100797

有点多,这次直接追踪TCP

image-20201115151133159

嗯,很有趣的题目Hhhhh