从tcpdump中剥离有效负载?

caw*_*caw 7 python networking tcp tcpdump scapy

是否有自动方式(在tcpdump或通过帮助应用程序Out There)生成一个pcap文件,其中只包含以太网,IP和第4层(在我的情况下为TCP)标头,因此没有有效载荷/应用程序数据结果pcap?我发现由于标题大小经常变化,因此不可能选择不会捕获任何有效负载数据的捕获大小.

Mik*_*ton 9

您可以使用Python的scapy模块轻松地删除TCP有效负载

之前

[mpenning@hotcoffee tshark_wd]$ tcpdump -n -r sample.pcap 
reading from file sample.pcap, link-type EN10MB (Ethernet)
00:25:42.443559 IP 192.168.12.237.1052 > 192.168.12.236.22: Flags [P.], 
    seq 2445372969:2445373021, ack 1889447842, win 63432, length 52
00:25:42.443607 IP 192.168.12.236.22 > 192.168.12.237.1052: Flags [.], 
    ack 52, win 65535, length 0
00:25:42.443980 IP 192.168.12.236.22 > 192.168.12.237.1052: Flags [P.], 
    seq 1:389, ack 52, win 65535, length 388
Run Code Online (Sandbox Code Playgroud)

PAYLOAD STRIPPING

在linux中以root身份运行它...

#!/usr/bin/env python
from scapy.all import *
INFILE = 'sample.pcap'
OUTFILE = 'stripped.pcap'
paks = rdpcap(INFILE)
for pak in paks:
    pak[TCP].remove_payload()
wrpcap(OUTFILE, paks)
Run Code Online (Sandbox Code Playgroud)

[mpenning@hotcoffee tshark_wd]$ tcpdump -n -r stripped.pcap 
reading from file sample.pcap, link-type EN10MB (Ethernet)
00:25:42.443559 IP truncated-ip - 52 bytes missing! 192.168.12.237.1052 
    > 192.168.12.236.22: Flags [P.], seq 2445372969:2445373021, 
    ack 1889447842, win 63432, length 52
00:25:42.443607 IP 192.168.12.236.22 > 192.168.12.237.1052: Flags [.], 
    ack 52, win 65535, length 0
00:25:42.443980 IP truncated-ip - 388 bytes missing! 192.168.12.236.22 
    > 192.168.12.237.1052: Flags [P.], seq 1:389, 
    ack 52, win 65535, length 388
Run Code Online (Sandbox Code Playgroud)

tcpdump上面,注意"XX字节缺失!" 消息.那是因为我们删除了TCP有效载荷.