【问题标题】:How to add a fake ethernet header to a capture如何将假以太网标头添加到捕获中
【发布时间】:2017-02-17 08:07:42
【问题描述】:

我有一个解密的 VPN pcap 文件。我想要做的是在 linux 中使用 tcptrace 读取 pcap。但是,tcptrace 似乎没有得到我所拥有的这种格式。 所以这里是 pcap 的快照。 This is the pcap

所以,我要做的是删除 12 字节的 ENC 标头,然后在那里添加一个 14 字节的以太网标头。

我不知道该怎么做。我通常想分离一个仅包含请求的 pcap,并在删除 12 个字节的 ENC 标头后添加一个以太网标头。 同样为回复创建一个 pcap。

有人可以帮我解决这个问题吗?

【问题讨论】:

    标签: wireshark packet-capture packet-sniffers packets wireshark-dissector


    【解决方案1】:

    如果tcptrace 可以处理带有Linktype Raw 的pcap 文件,那么您可以使用editcap 从数据包中去除前12 个字节,如果您使用@ 保存文件,甚至不需要添加虚拟以太网标头987654327@封装。例如:

    editcap infile.pcapng outfile.pcap -L -C 12 -T rawip -F pcap
    

    注意:这里我使用-F pcap选项强制输出文件保存为pcap文件而不是pcapng文件,因为我不知道tcptrace是否支持pcapng文件,而pcapng是如果您不指定输出文件类型,editcap 使用的默认输出文件类型。

    如果tcptrace 不支持 Linktype Raw,那么您应该仍然能够完成您需要的工作,但是您必须获取从上面的editcap 生成的输出文件并进一步操作它。由于editcap 本身不支持向数据包添加虚拟以太网标头,因此您可以使用 Wireshark 将数据包保存到文本文件,然后将文本文件转换回 pcap 文件,但是当您将其转换回pcap 文件,您可以选择在数据包中添加虚拟以太网标头。最后一步也可以通过text2pcap 完成。以下是使用 Wireshark 的步骤:

    1. 加载 outfile.pcap 文件:文件 -> 打开... -> 文件名:outfile.pcap。
    2. 暂时禁用 IPv4 协议。这是为了确保不会发生重新组装;否则,如果发生任何重组,将不会以适合以后导入的格式生成输出文本文件:分析 -> 启用的协议 -> 协议 -> IPv4 -> 取消选择 -> 应用。
    3. 删除或隐藏所有列并添加绝对时间列。这允许您导出时间戳,虽然不是严格要求,但它非常有用:编辑 -> 首选项 -> 列 -> 取消选择所有列;添加 -> 字段类型:绝对日期,如 YYYY-MM-DD,和时间;标题“绝对时间”-> 确定。 (注意:为“Pcap2Text”目的创建单独的Profile 可能更容易,其中仅显示此列。这允许您在想要再次执行此操作时快速更改到此配置文件,而不会影响任何列其他工作资料。)
    4. 将数据包导出到文本文件:文件 -> 导出数据包剖析 -> 为“纯文本”文件... -> 文件名:outfile.txt;数据包范围:所有数据包;数据包格式:选择数据包摘要行(但不选择列标题)和数据包字节。
    5. 重新启用 IPv4 协议:分析 -> 启用的协议 -> 协议 -> IPv4 -> 选择 -> 确定。
    6. 关闭原来的 output.pcap 文件。
    7. 导入 output.txt 文本文件:文件 -> 从十六进制转储导入... -> 文件名:output.txt;偏移量:十六进制;日期/时间:选择;格式:“%F %T。” (没有引号,但结尾的 '.' 很重要——这是默认设置);导入封装类型:以太网;虚拟标题:选择;以太网 Ethertype(十六进制):0800 -> OK。
    8. 保存文件:文件 -> 另存为... -> 文件名:newfile_with_dummy_ethernet_header.pcap,保存类型:Wireshark/tcpdump/...- pcap (.pcap;.pcap .gz;.cap;.cap.gz;.dmp;.dmp.gz)

    这个文件现在应该可以被tcptrace 读取了。我不能保证这是实现您目标的最方便的方法,但至少它适用于创建带有以太网封装的 pcap 文件,tcptrace 应该能够读取。

    免责声明:这些说明是使用在 64 位 Windows 7 上运行的 Wireshark 1.12.13 生成的,或者更具体地说:

    Compiled (64-bit) with GTK+ 2.24.23, with Cairo 1.10.2, with Pango 1.34.0, with
    GLib 2.38.0, with WinPcap (4_1_3), with libz 1.2.5, with SMI 0.4.8, with c-ares
    1.9.1, with Lua 5.2, without Python, with GnuTLS 3.2.15, with Gcrypt 1.6.2,
    without Kerberos, with GeoIP, with PortAudio V19-devel (built Jul 28 2016), with
    AirPcap.
    
    Running on 64-bit Windows 7 Service Pack 1, build 7601, with WinPcap version
    4.1.3 (packet.dll version 4.1.0.2980), based on libpcap version 1.0 branch
    1_0_rel0b (20091008), GnuTLS 3.2.15, Gcrypt 1.6.2, with AirPcap 4.1.3 build
    3348.
           Intel(R) Core(TM) i5-2540M CPU @ 2.60GHz, with 8072MB of physical memory.
    
    Built using Microsoft Visual C++ 10.0 build 30319
    

    【讨论】:

      猜你喜欢
      • 2015-09-18
      • 2019-01-05
      • 2012-05-01
      • 2014-07-16
      • 1970-01-01
      • 2020-10-13
      • 1970-01-01
      • 2020-04-27
      • 2020-08-14
      相关资源
      最近更新 更多