tcpdump按ESP SPI值过滤

时间:2018-03-23 20:24:08

标签: tcpdump

tcpdump是否支持使用具有特定SPI值的ESP流量(proto 50)进行过滤?

它会显示此值,因此您认为这是可能的!

21:15:23.143805 IP 64.7.134.1 > 64.7.139.200: ESP(spi=0x0d8f42b8,seq=0x27)

1 个答案:

答案 0 :(得分:2)

应该可以使用"ip proto 50 and ip[((ip[0]&0x0f)<<2):4]==0x0d8f42b8"

等过滤器

......分解为:

  • ip proto 50:所有ESP数据包。 (注意,对于较新版本的tcpdump,显然可以指定ip proto esp。)

也匹配特定的spi

  • ip[0]&0x0f:IP标头的32位字数
  • ((ip[0]&0x0f)<<2):ESP有效负载和spi字段的偏移量
  • ip[((ip[0]&0x0f)<<2):4]:包含spi字段的4个字节
  • ip[((ip[0]&0x0f)<<2):4]==0x0d8f42b8:与十六进制值0x0d8f42b8匹配的spi字段

使用ip[20:4]==0x0d8f42b8的简化过滤器可能很诱人,但假设固定大小的IP标头,默认IP标头大小为20字节。我想如果你知道你的IP头肯定是20个字节,那么它可以使用,但我认为从来没有做过这样的假设更安全。

相关问题