每个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))
flag{xx2b8a_6mm64c_fsociety}