1

我需要解析一个 .pcap 文件来检测可能的 SYS 扫描。我需要能够显示发送的 SYS 数据包数量是它们收到的 SYS+ACK 数据包数量的 3 倍的任何 IP 地址的 IP 地址。现在我对如何实现这一点有了一个大致的了解。我的问题是我在解析 pcap 文件时不知道如何获取不同的 SYS 数据包(如何区分发送/接收的数据包)。我看过其他帖子和文档,但很不幸。

我启动了一个 python 程序,它开始有点像这样:

import dptk

    //take in command line arguement
    file = arg

        openFile = open(file)
        pcap = dpkt.pcap.Reader(openFile)

    //not sure about these two lines
        syn_flag = ( tcp.flags & dpkt.tcp.TH_SYN ) != 0       
        ack_flag = ( tcp.flags & dpkt.tcp.TH_ACK ) != 0

当我调用最后两行时,我是否从 pcap 获取所有 SYS 和所有 ACK 数据包?我如何知道哪些已发送/已接收?

4

1 回答 1

-1

我建议您使用可以在此处找到的 Scapy 工具。Scapy 是一个数据包生成和操作工具,它为您提供了极大的灵活性来剖析数据包。以下是 Scapy 代码的简单示例:

pkts = PcapReader(inFile)
for p in pkts:
        F = bin(p['TCP'].flags)
        if F == SYN # 0x02:
            # Process Syn Packet
        elif F == ACK # 0x10:
            # Process Ack Packet

Scapy 可以从它的解释器中使用,或者您可以将 Scapy 框架工作导入您自己的环境中

于 2015-12-01T22:36:27.933 回答