Data
我们打开然后放入wireshark中
搜索icmp
然后搜索ctfhub
发现没有
然后就看{
我们从最底下开始往上翻
- A C MMMMM
- A C MMMMM
- A T MMMMMMM
- A T MMMMMM
5.A F MMMMMM
从这里我们就发现了规律了 已经出现了ctf了 所以我们就只要将这个位置上组合起来就是flag
ctfhub{c87eb99796406ac0b}
Length
打开文件放入wireshark
提示我们是 icmp length 说明长度
我们先过滤icmp
注意这个length值
我们将每一个包都记下 然后除去重复的
99 116 102 104 117 98 123 97 99 98 54 53 57 102 48 50 51 125
得到了这个 我们要的是flag 是ascii值 所以我们进行进制转换
得到flag
LengthBinary
CTFHUB技能树-Misc-流量分析-ICMP_icmp流量分析_valecalida的博客-CSDN博客
import pyshark
cap = pyshark.FileCapture('icmp_len_binary.pcap', display_filter="icmp && icmp.type==8")
# pychark.FileCapture()是访问数据包函数 前面是数据包名字 并且数据包要放在这个py文件夹下面
# 后面这个 display_filter='' 像过滤器 搜索icmp 并且 icmp.type=8 这样更具体 更能筛选出来
cap.load_packets() #给定时间 因为为空 所以是一直读取 如果给定了值 就是访问多久时间
flag = ''
con1 = ""
con2 = ""
for i in range(0, len(cap)): #将i循环在0和cap的长度中
if cap[i].icmp.data_len == '32': #如果第i个cap的data_len ==32
con1 += '0' #进行两种方式的判断
con2 += '1'
elif cap[i].icmp.data_len == '64': #如果是64
con1 += '1'
con2 += '0'
print(con1)
print(con2)
cap.close() #关闭
这是我个人对这个作者函数的理解
基于pyshark对这三题自己写的函数
data
import pyshark
cap = pyshark.FileCapture('icmp_data.pcap',display_filter='icmp && icmp.type== 8')
#cap 打开名字为 data的 然后过滤掉 icmp 和icmp中type 为 8 的
flag = ''
for i in range(0,25): #因为人工数出来flag有25长度 所以循环0到25
flag+=chr(int((cap[i].icmp.data_data)[24:26],16)) #打开cap中第i个 然后打开他icmp中data中data
# 然后数字为十进制 所以转换为16 并且占俩空 数格子能发现为 24 到26
# 然后int(x,16) 是将 x变为16进制 然后chr是把他进行ascii编码
print(flag)
cap.close()
Length
import pyshark
cap = pyshark.FileCapture('icmp_len.pcap',display_filter='icmp && icmp.type==8')
flag = ''
for i in range(0,18):
flag+=chr(int(cap[i].icmp.data_len))
#访问的是第i个cap中icmp数据包的data中的len
print(flag)
LengthBinary
import pyshark
cap = pyshark.FileCapture('icmp_len_binary.pcap',display_filter='icmp && icmp.type == 8')
cap.load_packets() #这个一定要在
flag =''
con1=""
con2=""
for i in range(0,len(cap)):
if cap[i].icmp.data_len == '32':
con1+='0'
con2+='1'
elif cap[i].icmp.data_len == '64':
con1+='1'
con2+='0'
print(con1)
print(con2)
cap.close()
版权归原作者 双层小牛堡 所有, 如有侵权,请联系我们删除。