web-dev-qa-db-ja.com

パケット長に基づいてtcpdump出力をフィルタリングする方法

パケットの長さに基づいてtcpdump出力をフィルタリングしようとしています。しかし、私には運がなかった。

これはコマンドの簡単な出力です。

tcpdump -n -i eth0 dstポート443 -A

17:03:30.866890 IP 192.168.0.149.45104 > 62.75.148.60.443: Flags [S], seq 2685064927, win 14600, options [mss 1460,sackOK,TS val 7028787 ecr 0,nop,wscale 4], length 0
E..<..@.@.......>K.<.0...
........9............
.k@3........


17:03:30.867658 IP 192.168.0.149.45104 > 62.75.148.60.443: Flags [.], ack 2285019097, win 913, options [nop,nop,TS val 7028787 ecr 974439509], length 0
E..4..@.@.......>K.<.0...
...2.............
.k@3:..U


17:03:30.867928 IP 192.168.0.149.45104 > 62.75.148.60.443: Flags [P.], seq 0:171, ack 1, win 913, options [nop,nop,TS val 7028787 ecr 974439509], length 171
E.....@[email protected]....>K.<.0...
...2.............
.k@3:..U...........Opw2.....l..".T.7.q.]h..8W..%.....H...
.......9.8.......5...   .....E.D.3.2...........A...../.........
...1.........alice.sni.velox.ch.
.................#..


17:03:30.869712 IP 192.168.0.149.45104 > 62.75.148.60.443: Flags [.], ack 1319, win 1078, options [nop,nop,TS val 7028788 ecr 974439511], length 0
E..4..@.@.......>K.<.0...
...2.....6.......
.k@4:..W


17:03:30.870724 IP 192.168.0.149.45104 > 62.75.148.60.443: Flags [P.], seq 171:178, ack 1319, win 1078, options [nop,nop,TS val 7028788 ecr 974439511], length 7
E..;..@.@.......>K.<.0...
...2.....6.......
.k@4:..W......0

パッケージの長さが100バイトを超える場合にのみ表示したい。この場合、3番目のパケットのみ。

オプション[nop、nop、TS val 7028787 ecr 974439509]、長さ171

Tcpdumpのマニュアルページを見ましたが、有用なパラメーターが見つかりませんでした。ここで言及されている「より長い長さ」という表現があります。 http://www.Ethereal.com/docs/man-pages/tcpdump.8.html しかし、私もその表現を使用できませんでした。

$ tcpdump -n -i eth0 dst port 443 -A -x greater 100
tcpdump: syntax error

助けてくれてありがとう。

19
Muhammet Can

greaterlengthは機能しますが、完全なフィルター式の一部として使用する必要があり、フィルター式はallコマンドラインフラグ引数。

実施例:

tcpdump -n -i eth0 -A -x dst port 443 and greater 100

動作するはずです-dst port 443 and greater 100は完全なフィルター式で、TCPまたはUDPポート443に送信され、を持つパケットをチェックしますtotal長さ(リンク層、IP、およびTCP headers!)を含む)は100より大きい。

動作しない例:

tcpdump -n -i eth0 dst port 443 -A -x greater 100

動作しません-dst port 443dstはフィルター式の始まりとして扱われます。つまり、それとeverythingその後、include-Aおよび-xはフィルター式の一部として扱われますが、-Aおよび-xは、フィルター式の有効なコンポーネントではありません。これらはおそらくコマンドラインオプションであることが意図されているため、フィルター式のコンポーネントを含むすべての非フラグ引数にbefore移動する必要があります。

33
user862787