嗅探IPV6 SYN - ACK数据包的问题

问题描述 投票:1回答:1

我正在使用以下过滤器表达式来嗅探IPv4 / IPv6 SYN / ACK / FIN / RST数据包。使用tcpdump for IPv4工作正常但是对于IPv6我没有看到任何事情

tcp端口80和(tcp [tcpflags]&(tcp-syn | tcp-ack | tcp-fin | tcp-rst)!= 0)

tcpdump libpcap
1个回答
1
投票

目前,TCPDump(和Wireshark)不支持IPv6下的嵌入式协议BPF过滤器。为了找到这些数据包,您必须使用BPF偏移和掩码。

例如:

 ip6 proto tcp and ip6[13+40]&0x17!=0

在这里,我们检查TCP是否是IPv6标头中的嵌入式协议。从那里开始,我们将13个字节输入TCP标头并添加40个字节,因为我们从ip6标头的开头引用它。我假设您已经知道0x17将是与您所写的匹配的掩码(SYN | ACK | FIN | RST)。

虽然有一个protochain选项可以在协议链中的任何地方找到TCP,但使用BPF跟踪哪个“Next Header”包含TCP(它应该是最后一个)实际上是不切实际的。

要将端口添加到上面,您只需添加:

  and ip6[(40+2):2]=80
© www.soinside.com 2019 - 2024. All rights reserved.