テキストtcpdump図参照

テキストtcpdump図参照

tcpdumpを使用していくつかのダンプを保存しました。

tcpdump -n -i eth0 -tttt -Q in > "dump01.dump"

だから私は次のような結果を得ます:

20:39:12.808672 IP 94.xx.xxx.202.49183 > 151.xx.xx.xx.61479: UDP, length 104
20:39:12.835025 IP 213.xx.xx.25.51197 > 151.xx.xx.xx.61479: Flags [P.], seq 4125053309:4125053343, ack 1004545214, win 194, length 34
20:39:12.936971 IP 222.xxx.xxx.182.59953 > 151.xx.xx.xx.61479: UDP, length 287
20:39:12.948822 IP 195.xx.xxx.30.62384 > 151.xx.xx.xx.61479: UDP, length 101
20:39:12.987527 IP 79.xxx.xxx.216.56394 > 151.xx.xx.xx.443: Flags [P.], seq 700421627:700422382, ack 377141587, win 257, length 755
20:39:12.988554 IP 79.xxx.xxx.216.55621 > 151.xx.xx.xx.443: Flags [P.], seq 3192357072:3192357827, ack 3940752659, win 260, length 755
20:39:12.989291 IP 79.xxx.xxx.216.56517 > 151.xx.xx.xx.443: Flags [P.], seq 3172129891:3172130644, ack 3568957121, win 257, length 753
20:39:12.990879 IP 79.xxx.xxx.216.56394 > 151.xx.xx.xx.443: Flags [.], seq 755:2207, ack 1, win 257, length 1452
20:39:12.991845 IP 79.xxx.xxx.216.56394 > 151.xx.xx.xx.443: Flags [P.], seq 2207:3465, ack 1, win 257, length 1258
20:39:12.992794 IP 79.xxx.xxx.216.56254 > 151.xx.xx.xx.443: Flags [P.], seq 1723903877:1723904632, ack 3204952387, win 260, length 755

もちろん、IPの一部をxxx

今より興味深い部分は誰かによってDDoSに遭遇し、ダンプから全体の攻撃をキャプチャしましたが、このイベントのグラフを見たいと思います。残念ながら私はそれを使用しないので、-w私のtcpdump出力はバイナリではなく、Wiresharkはファイルのインポートを拒否します。存在しない16進データを読み取ろうとします。

Wiresharkでパケットの詳細なしでダンプをロードしたり、ファイルを変換したり、他のプログラムを使用してグラフを印刷したりする方法はありますか?

ベストアンサー1

パケットのタイムスタンプにのみ興味がある場合は、16進数を使用して単一のパケットのスナップショットをコピーし、タイムスタンプのみを変更できます。タイムスタンプtext2pcapは通常Wiresharkと同じパケットにあります。

たとえば、tcpdump -XXいくつかのアーティファクトパケットをキャプチャし、ASCIIダンプから短いTCPパケットを選択したことがあります。

16:51:27.374569 IP 192.168.0.21.nut > 192.168.0.20.53910: Flags [R.] ...
    0x0000:  b827 0099 9999 80ee 7399 9999 0800 4500  ................
    0x0010:  0028 06e4 4000 4006 b272 c0a8 0015 c0a8  .(..@[email protected]......
    0x0020:  0014 0da5 d296 0000 0000 ee15 7872 5014  ............xrP.
    0x0030:  0000 e792 0000                           ......

awkでフィルタリングして、目的の形式のダンプを取得できますtext2pcap。つまり:

awk '$1~/0x/ { $0 = substr($0,1,50); for(i=2;i<=9;i++)s = s $i }
     END     { gsub(/../,"& ",s); print "0000 " s }'

mypacket結果として変数を設定します。

mypacket='0000  b8 27 00 99 99 99 80 ee 73 99 99 99 08 00 45 00 00 28 06 e4 40 00 40 06 b2 72 c0 a8 00 15 c0 a8 00 14 0d a5 d2 96 00 00 00 00 ee 15 78 72 50 14 00 00 e7 92 00 00'

その後、別のawkを使用してデータファイルの各行の列1から時刻を取得し、同じパケットに追加し、トランスレータにこのタイムスタンプを指定された形式に抽出し、Wireshark形式に適したpcapに変換するように指示します。

awk <dump -v mypacket="$mypacket" '
 /79\.xxx\.xxx\.216/ { print $1 " " mypacket }' |
text2pcap -t '%H:%M:%S.' - out.pcap

-tオプションの最後の「.」に注意してください。タイムスタンプの秒数を保存する必要があります。

おすすめ記事