从pcap文件中提取TCP有效负载

Flo*_*ian 1 tcp http tcpdump scapy pcap

使用tcpdump,我正在捕获网络流量。我有兴趣提取实际的TCP有效负载数据,即我的特殊情况下的HTTP流量。

我试图通过使用来实现这一点scapy,但是我只找到了功能remove_payload()。有对应的对应物吗?还是您知道其他提供此类功能的工具?

不幸的是,我找不到令人满意的船尾文档。

Jef*_*eux 6

您可以使用 Scapy 轻松读取 pcap,rdpcap然后您可以使用Raw数据包的(TCP 正上方)层来处理 HTTP 内容:

from scapy.all import *

pcap = rdpcap("my_file.pcap")

for pkt in pcap:
    if Raw in pkt:
        print pkt[Raw]
Run Code Online (Sandbox Code Playgroud)


Flo*_*ian 5

如果其他用户可能有类似的问题:我最终使用以下脚本:

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
Run Code Online (Sandbox Code Playgroud)