我需要解析一个.pcap文件来检测可能的SYS扫描。我需要能够显示发送的SYS数据包数量是其收到的SYS + ACK数据包数量的3倍的IP地址的IP地址。现在我对如何实现这一点有一个大概的了解。我的问题是,在解析pcap文件时,我不知道如何获取不同的SYS数据包(如何区分发送/接收的数据包)。我查看了其他帖子和documentation,但一直不走运。
我启动了一个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数据包?如何判断已发送/接收的内容?
答案 0 :(得分:-1)
我建议您使用可以找到的Scapy工具here。 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框架工作导入您自己的环境