在Scapy上嗅探自定义数据包

时间:2020-04-17 23:32:45

标签: python networking scapy

在Scapy上,当我们使用sniff()函数拦截流量时,是否可以过滤我们自己创建的数据包类型?例如,我创建了一个名为CSTP的数据包,如下所示:

class CustomPacket(Packet):
    name = "CSTP"
    fields_desc = [
        ShortField("custom_field", random.getrandbits(16)),
        ...
    ]

那么是否有可能仅过滤我们特殊类型的数据包,以便直接在CustomPacket操作中操作prn实例,而不是TCP或IP数据包?

def verify_cstp(pkt):
    print("CSTP packet received!", pkt.custom_field)

if __name__ == "__main__":
    sniff(filter="cstp", prn=verify_cstp)

我要拥有的重要功能是直接在CustomPacket函数中操作verify_cstp实例。也许可以改为过滤TCP数据包并使用其有效载荷来创建CustomPacket实例,但是如何?

感谢您的帮助。

0 个答案:

没有答案