每个ICMP包的data字段都带了一段不同的base64 尝试解码了几段,发现啥也不是。之后的思路需要一点点脑洞,但是对于经验比较丰富的misc手来说也不难猜。 经过仔细观察每个ICMP包中的data段中的base64长度都为十进制ASCII码的可显示字符范围。 将这些ICMP请求包中的data字段数据提取出来,返回包的数据和请求包是一样的,提取的时候只提取请求包的即可
使用tshark提取源地址为192.168.3.73的包的data字段:
tshark -r fetus_pcap.pcap -Y 'ip.src_host=="192.168.3.73"' -e data -T fields > icmp_data.txt
得到data字段的字节流数据,接下来只需要统计每个包提取出来的data字段的长度,转换为ASCII码即可,使用Python简单处理即可
from binascii import *
from base64 import *
base64_data = ''
with open('icmp_data.txt', 'r') as f:
lines = f.readlines()
for line in lines:
line = unhexlify(line.strip())
asc_code = int(len(line))
base64_data += chr(asc_code)
print(b64decode(base64_data))
![在这里插入图片描述](https://img-blog.csdnimg.cn/8f9c136f2d5f4993b9f3ce821e75d5ec.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5pyrIOWInQ==,size_20,color_FFFFFF,t_70,g_se,x_16)
flag{xx2b8a_6mm64c_fsociety}
|