回答:
PCAPフィルタの構文 tcpdumpのために使用さは、Wiresharkのキャプチャフィルタでまったく同じように動作するはずです。
tcpdumpでは、このようなフィルターを使用します。
tcpdump "tcp[tcpflags] & (tcp-syn|tcp-ack) != 0"
tcpdumpのmanページをチェックして、tcpflagsに細心の注意を払ってください。
Wireshark Wikiのキャプチャおよび表示フィルターに関するセクションも確認してください。残念ながら、2種類のフィルターはまったく異なる構文を使用し、同じものに異なる名前を使用します。
キャプチャフィルターの代わりにディスプレイフィルターが必要な場合は、おそらくtcp.flags.ackとtcp.flags.synを組み合わせた式を作成する必要があります。ただし、キャプチャフィルターにははるかに精通しているので、自分で解決する必要があります。
@Zoredacheの答えは素晴らしく、完全ですが、構文はTCP SYNまたはTCP ACKフラグが設定されたパケットを生成することに注意してください。また、他のフラグが設定されています。これは、あなた(または将来の読者)が意図したものである場合とそうでない場合があります。たとえば、その構文はTCP SYN-ACKパケット、TCP FIN-ACKなどもキャプチャします。TCPSYN またはTCP ACKパケットのみが必要な場合(つまり、これらのフラグセットの1つのみ)、適切なキャプチャフィルタ構文は次のとおりです。
'tcp[tcpflags] == tcp-syn or tcp[tcpflags] == tcp-ack'
同等:
'tcp[13] == 2 or tcp[13] == 16'
乾杯!
トップの「シンナー」を見るためのスクリプトを作成しました。そのため、最初のsynパケット(3パケットハンドシェイクの最初のパケット)のみを検討します。つまり、syn = 1、ack = 0
while :; do
date;
tcpdump -i eth1 -n -c 100 \
'tcp[tcpflags] & (tcp-syn) != 0' and
'tcp[tcpflags] & (tcp-ack) == 0' 2> /dev/null \
| awk '{ print $3}' \
| sort | uniq -c | sort | tail -5;
echo;
sleep 1
done
tcpdump 'tcp[13] = 3'
http://danielmiessler.com/study/tcpdump/
高度な
また、パケットの特定の部分に基づいてフィルタリングしたり、複数の条件をグループにまとめることもできます。たとえば、前者はSYN
sまたはRST
s のみを検索する場合に役立ち、後者はさらに高度なトラフィック分離に役立ちます。
UAP RSF
[ヒント:TCPフラグのアナグラム:スキルのない攻撃者が本物のセキュリティフォークをせがむ]
あなたのメモ:...
すべての緊急(URG
)パケットを表示...
tcpdump 'tcp[13] & 32 != 0'
すべてのACKNOWLEDGE(ACK
)パケットを表示...
tcpdump 'tcp[13] & 16 != 0'
すべてのプッシュ(PSH
)パケットを表示...
tcpdump 'tcp[13] & 8 != 0'
すべてのリセット(RST
)パケットを表示...
tcpdump 'tcp[13] & 4 != 0'
すべてのSYNCHRONIZE(SYN
)パケットを表示...
tcpdump 'tcp[13] & 2 != 0'
すべてのFINISH(FIN
)パケットを表示...
tcpdump 'tcp[13] & 1 != 0'
すべてのSYNCHRONIZE / ACKNOWLEDGE(SYNACK
)パケットを表示...
tcpdump 'tcp[13] = 18'
[ 注:のみPSH
、RST
、SYN
、およびFIN
フラグがtcpdumpののフラグフィールドの出力に表示されます。URG
sとACK
sは表示されますが、フラグフィールドではなく出力の別の場所に表示されます]
tcpdump -s SIZE
。TCPヘッダーは可変長である可能性があるため、キャプチャー-s 128
はおそらくすべての可能なヘッダーとおそらく少しのデータを取得します。