用于 TLS 客户端问候和 TCP SYN 的 Scapy BPF 过滤器
Scapy BPF filter for TLS client hello and TCP SYN
我正在尝试为 scapy sniff()
编写一个 BPF 过滤器来捕获 TLSClientHello 数据包或 TCP SYN 数据包。这是我拥有的:
sniff(filter="tcp dst port 443 and ((tcp[((tcp[12] & 0xf0) >> 2)] = 0x16) or (tcp[13] & 0x02 = 1))", prn=process_packet, iface=iface, store=False)
嗅探只在 TLSClientHello 上进行。由于某种原因,SYN 数据包无法通过。 BPF 有什么问题?
过滤器部分的逻辑 and
应该捕获 TCP SYN 将 return 2,而不是 1。所以这个:
(tcp[13] & 0x02 = 1)
应该是:
(tcp[13] & 0x02 = 2)
或者(至少使用 tcpdump,我还没有尝试使用 Scapy):
(tcp[tcpflags] & tcp-syn != 0)
我正在尝试为 scapy sniff()
编写一个 BPF 过滤器来捕获 TLSClientHello 数据包或 TCP SYN 数据包。这是我拥有的:
sniff(filter="tcp dst port 443 and ((tcp[((tcp[12] & 0xf0) >> 2)] = 0x16) or (tcp[13] & 0x02 = 1))", prn=process_packet, iface=iface, store=False)
嗅探只在 TLSClientHello 上进行。由于某种原因,SYN 数据包无法通过。 BPF 有什么问题?
过滤器部分的逻辑 and
应该捕获 TCP SYN 将 return 2,而不是 1。所以这个:
(tcp[13] & 0x02 = 1)
应该是:
(tcp[13] & 0x02 = 2)
或者(至少使用 tcpdump,我还没有尝试使用 Scapy):
(tcp[tcpflags] & tcp-syn != 0)