2016-06-29 63 views
0

tcpdumpを使用して、ネットワークトラフィックを取得しています。私は実際のTCPペイロードデータ、すなわち特定の場合にHTTPトラフィックを抽出することに興味があります。pcapファイルからTCPペイロードを抽出します

私はscapyを使用してそれを達成しようとしましたが、機能が見つかったのはremove_payload()でした。対応する相手がいますか?あるいは、そのような機能を提供する他のツールについて知っていますか?

残念ながら、私は満足のいくscapyドキュメントを見つけられませんでした。

答えて

1

場合、他のユーザーが類似している場合があります質問:次のスクリプトを使用して終了しました:

infile=infile.pcap 
outfile=outfile 
ext=txt 

rm -f ${outfile}_all.${ext} 

for stream in $(tshark -nlr $infile -Y tcp.flags.syn==1 -T fields -e tcp.stream | sort -n | uniq | sed 's/\r//') 
do 
    echo "Processing stream $stream: ${outfile}_${stream}.${ext}" 
    tshark -nlr $infile -qz "follow,tcp,raw,$stream" | tail -n +7 | sed 's/^\s\+//g' | xxd -r -p | tee ${outfile}_${stream}.${ext} >> ${outfile}_all.${ext} 
done 
1

あなたはその後、HTTPコンテンツを再生するには、あなたのパケットのRaw(右TCP上の)層を使用することができ、簡単にrdpcapでScapyとのpcapを読むことができます:

from scapy.all import * 

pcap = rdpcap("my_file.pcap") 

for pkt in pcap: 
    if Raw in pkt: 
     print pkt[Raw] 
+0

これらのバイトをコンソールではなくファイルに書き込む方法を教えてください。また、私は追加の改行を出力したくありません。 – Florian

+0

Python 'open()'と 'write()'はI/Oを扱います。 Pythonの 'print'関数は改行を追加するので、もしあなたがそれを使用せず、ファイルにバイトを書き込むならば、それはもはや存在してはいけません。 –

+0

'write'は' f.write(pkt [Raw]) '(TypeError:バッファではなく、Rawに変換可能でなければなりません)という呼び出しを許可しません。私はこの問題の解決策を見つけることができませんでした。 – Florian

関連する問題