8

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

4

3 回答 3

10

scapy您可以使用 Python 的模块非常轻松地去除 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

有效载荷剥离

在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)

[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

tcpdump上面,请注意“XX 字节丢失!” 消息。那是因为我们已经删除了 TCP 有效负载。

于 2011-12-09T06:44:20.373 回答
1

如果简单的截断对您有用,您可以使用:

tcpdump -i eth0 -s 96 -w test1.pcap

稍后您可以使用wireshark对其进行分析。

于 2011-12-09T04:05:22.533 回答
-2

我的解决方案如下。我很想听听其他人如何在没有外部库或截断的情况下做到这一点。我很想听听其他人是如何执行此操作的,因为我无法在 Scapy 文档中找到 remove_payload() 函数,因此无法使用此答案。

#read pcap file 
pkts = rdpcap("packet-capture.pcap")

#write packet with payload "XXXXXXXXXX"
for pkt in pkts:
     pkt.load = "XXXXXXXXXX"

#write new pcap
wrpcap("new.pcap", pkts)

这样做的问题是,当使用 tcpdump 读取时,它会丢失一个字节!对于 src IP。我可以通过使用 scapy 验证信息是否仍然存在

pkts[_packet_num].load

有没有办法重新生成整个捕获,让它看起来好像没有改变?

于 2013-10-30T19:34:13.767 回答