0


CTFHUB-流量分析-协议流量分析-ICMP

Data

我们打开然后放入wireshark中

搜索icmp

然后搜索ctfhub

88e0b3c94444428587403062407f6d02.png

发现没有

然后就看{

我们从最底下开始往上翻

  1. A C MMMMM

9f12838c7c364ae2a60beffcaa358cbf.png

  1. A C MMMMM

c27410f591464f9b8c76a16d03fc0b3f.png

  1. A T MMMMMMM

2a3cc61ba2044f0194897d388b1e52b1.png

  1. A T MMMMMM

fe2b09231659402cab502cb1f144c49c.png

5.A F MMMMMM

5a0619ab8efe408e987bee221216617c.png

从这里我们就发现了规律了 已经出现了ctf了 所以我们就只要将这个位置上组合起来就是flag

ctfhub{c87eb99796406ac0b}

Length

打开文件放入wireshark

提示我们是 icmp length 说明长度

我们先过滤icmp

b31baca62261431f93ef12691e273f8c.png

ea956ada8fde46ec98128d172c5b7e53.png

注意这个length值

我们将每一个包都记下 然后除去重复的

99 116 102 104 117 98 123 97 99 98 54 53 57 102 48 50 51 125

得到了这个 我们要的是flag 是ascii值 所以我们进行进制转换

667f9ec7b27e44b19ebcc806152f8d47.png

得到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()
标签: 网络 安全

本文转载自: https://blog.csdn.net/m0_64180167/article/details/129409259
版权归原作者 双层小牛堡 所有, 如有侵权,请联系我们删除。

“CTFHUB-流量分析-协议流量分析-ICMP”的评论:

还没有评论