Tough_DNS #
附件是个数据包,打开数据包,分析,发现大致有两大类数据包。
010是二进制数据,优先使用tshark导出,因为有重复的,再加一个过滤
wireshark导出
删除.baidu.com留下二进制数据
用二进制生成文件发现并没有啥用,因为这个二进制数据每一行长度相等的,是个矩形。可以考虑二维码,我是在记事本里缩放发现是个二维码。这里移除完换行你会发现文本长度是441,正好是21^2。
扫描二维码的得到15f9792dba5c,不知道是干什么的,先存着。
记事本无法缩放的可以通过python脚本来生成二维码
from PIL import Image
from zlib import *
MAX = 21 # 数字的长度为一个整数的平方(如36^2=1296)
pic = Image.new("RGB",(MAX,MAX))
str ="111111101100101111111100000100100101000001101110101010101011101101110101001001011101101110101110001011101100000100000001000001111111101010101111111000000000110000000000111100101010010011101010010000010110111111011001111000101100001001110000110100001000000101111001001100000000000001111001110010111111100100011010110100000100011010000100101110100001000010110101110101110110100110101110101011110101100100000101110001111001111111101111001111100"
i=0
for y in range(0,MAX):
for x in range(0,MAX):
if(str[i] == '1'):
pic.putpixel([x,y],(0,0,0))
else:pic.putpixel([x,y],(255,255,255))
i = i+1
pic.show()
#pic.save("1.png")
继续观察数据包。
发现另一种数据有两种类型,每一个数据都存在TXT字段里
继续导出
tshark -r Tough_DNS.pcapng -T fields -Y “frame.len==100&&dns.id==0x4500” -e dns.txt > 0x4500
tshark -r Tough_DNS.pcapng -T fields -Y “frame.len==100&&dns.id==0x6421” -e dns.txt > 0x6421
导出的文件需要移除换行。
在线删除所有回车换行工具 - UU在线工具 (uutool.cn)
0x6421的数据
0x4500的数据
发现0x4500是个压缩包,把十六进制数据复制出到CyberChef保存为文件
发现有个secret.gpg的文件,秘钥是上面二维码的值。
解出来发现是个私钥,gpg加密。
有秘钥就需要解密,想起来0x6421还没用。
把0x6421的数据部分复制出来保存为文件试试看。保存为mmm.gpg。
发现需要刚才的秘钥。
在网上查资料发现gpg秘钥需要导入,
gpg –import secret.gpg
但是没有密码,想到题目中还给了数据没有使用。
56 16 26 93 66 53 16 56 d2 03 26 93 56
试来试去不行,绞尽脑汁,发现规律,逆序转ASCII码,然后再逆序
得到密码 > eab9f5ae-0b9e
成功导入秘钥。
解密文件,
flag{79830a47-faf7-4067-b585-145776f833cd}