misc wireshark题目

Posted by Azeril on September 3, 2023

前言

由于自己太菜了而且misc的考点很广泛光加密就有很多所以目前阶段只能看着wp复现   

【2023 羊城杯】ai和nia的交响曲

一个wireshark流量包,搜索flag字符串

发现了flag2.zip,然后选中该流,文件->导出http对象

(可以看到基本都是TCP流和HTTP,所以也可以跟随流来分析)

image-20230903133956077

image-20230903134140377

题解说这是一个伪加密

通过搜查资料

如遇加密压缩包,在没有密码提示的情况下,先判断是不是伪加密
最简单的方法就是看十六进制数据,第一行如果有09多半就是了
点击查找十六进制数值搜索504B,最后如果有09那基本就是了,改为00完活
对比了一下真实密码压缩的,果然504B后面几乎没有09

替换的时候,只需要换504B后面第一个即可,不能全部替换×

image-20230903134810615

然后获得一个txt里面都是时间

(看wp都是0宽,猜测是因为00:才想的到把)我可以想到的只有肯定有隐写的数据

Unicode Steganography with Zero-Width Characters (mzy0.com)

image-20230903135403303

提示先查看flag1,这里在upload.php中发现,(咋发现的,我把全部文件都下载了一个个看的)

image-20230903135652779

这里如果直接把wireshark中拖进010是不行的

需要把右下角换成 英文 raw 中文 原始数据,然后另存为,但是这样数据也会显示其他的,需要手动删除

image-20230903142052307

image-20230903142228815

文件头找这个之前都删除,文件尾部找END,也就是(49454E44)

image-20230903142252943

二进制提取

image-20230903142413550

从图片中提取二进制

from PIL import Image

im = Image.open('1.png')
pix = im.load()
width = im.size[0]
height = im.size[1]
for x in range(width):
    for y in range(height):
        r, g, b = pix[x, y]
        if r>200:
            print(1,end='')
        else:
            print(0,end='')

windows用这个库有问题,直接用kali跑了

image-20230909210024175

二进制解码发现提示HINT:BV1wW4y1R7Jv&&FLAG1:@i_n1a_l0v3S_

image-20230909210046237

✌们写的(拿到flag1,hint一眼bv号,https://www.bilibili.com/video/BV1wW4y1R7Jv)

image-20230909210556534

然后根据B站视频一秒一个字符,获得flag (最后有个提示是时间+1是flag)CAOCAOGAIFAN**

@i_n1a_l0v3S_CAOCAOGAIFAN

这一道题就折磨我挺多时间的。。。。

总结

这道题的思路就是全局搜索flag,然后导出http包,如果zip中包含信息图片,需要去头去尾,如果只是单个图片转换为原始数据导出即可,然后09是伪加密在PK后面

EZ_misc

开局一个图片考虑隐写和套娃,直接010

这道题首先图片不完整尝试爆破宽高

总是以固定的八个字节开头  89  50 4E 47 0D 0A 1A 0A
数据块长度13   00 00 00 0D
文件头数据块 IDCH 49 48 44 52

13位数据块(IHDR)
下面是宽和高  00 00 01 5E 00 00 00 2B
然后这五个字节一次是 Bit depth \ColorType \Compression method \ Filter method \ interlace method
08 06 00 00 00
接下来是png CRC校验码
00 41 DF CF 32

CRC校验码,由IDCH和IHDR共17位字节进行crc计算得到

image-20230914150303999

import struct
import zlib

def hexStr2bytes(s):
    b = b""
    for i in range(0,len(s),2):
        temp = s[i:i+2]
        b +=struct.pack("B",int(temp,16))
    return b

str1="49484452"  # 数据表示快,第一行的最后四位   IDCH

str2="0806000000"   # CRC前五位   那五个字节

bytes1=hexStr2bytes(str1)
bytes2=hexStr2bytes(str2)
wid,hei = 350,43     #0x015e,0x002b  宽和高转10进制

crc32 = "0x9D223066"  #crc校验码四位

for w in range(wid,wid+2000):
    for h in range(hei,hei+2000):
        width = hex(w)[2:].rjust(8,'0')
        height = hex(h)[2:].rjust(8,'0')
        bytes_temp=hexStr2bytes(width+height)
        if eval(hex(zlib.crc32(bytes1+bytes_temp+bytes2))) == eval(crc32):
            print(hex(w),hex(h))

image-20230914150315870

(里面发现了压缩包直接binwalk)

image-20230909211858938

但是压缩包是有错误的,直接猜测是windows截图漏洞,出现flag

image-20230914150649296

Matryoshka

给了一个镜像直接取证大师打开 img

image-20230913195527245

思路通过这些获得encrypt的密钥即可d

image-20230913232328645

image-20230913232341069

010打开并没有其他数据,但是如果010打开normal_rar文件的话可以发现里面包含了一个jpg图片

所以关键是如何提取出来这个图片

binwalk -e normal_rar.rar --run-as=root

只能看出来位置但提取不出来

image-20230914091522662

方法一、一种方式通过dd if=normal_rar.rar of=aaaa.jpg skip=104 bs=1

这种通过第一列 104

可以参考dd命令详解这里if是指定输入文件of是指定输出文件skip是指定从输入文件开头跳过140147个块后再开始复制bs设置每次读写块的大小为1字节 
   但是如果下面还有分解的元素就可以用下面这种方法

方法二、通过010删除

第二种方法借助第二列,0x68开始,把前面删除即可

image-20230914093718614

jpg格式的知识

jpg格式文件开始的2字节是图像开始SOI(Start of Image,SOI)为FF D8,之后2个字节是JFIF应用数据块APPO(JFIF application segment)为FF E0 ,最后2个字节是图像文件结束标记EOI(end-of-file)为FF D9 ,如果你想详细了解更多关于这方面的知识,可以参考jpg文件格式分析一文

image-20230914093827498

misc盲水印,二张图片都搞出来了

但是python环境一直报错(比完赛就把python全删了)

【CTF】图片隐写术 · 盲水印 - 双份浓缩馥芮白 - 博客园 (cnblogs.com)

Easy_VMDK

[“小明这次使用了32Bytes的随机密码,这次总不会被爆破出来了吧!!。小明压缩了好了题目后,他发现压缩后大小比压缩前还大啊,这不就没有压缩啊,这是为什么啊!”,“小明这次使用了32Bytes的随机密码,这次总不会被爆破出来了吧!!”]

关于snow隐写的内存取证(来自楚慧杯)

附件:mem.raw

通过直接找出了密码,目前还不知道有啥用先放着

image-20231217213507896

然后通过vol进行内存分析

一般去一个为系统的版本号,然后直接 filescan查询里面所有的文件,grep是linux的命令,windowsfindstr即可

image-20231217213604029

直接findstr查询桌面的,然后 ./说明是当前目录,会生成一个.bat文件,改后缀为.docx即可

image-20231217213927194

打开word文档,空格和回车,snow隐写结合密码

image-20231217213959653

image-20231217214035530

image-20231217214135177


Creative Commons License
本作品采用CC BY-NC-ND 4.0进行许可。转载,请注明原作者 Azeril 及本文源链接。