【问题标题】:Can Wireshark be used to change the content of packetsWireshark可以用来改变数据包的内容吗
【发布时间】:2011-01-08 11:15:16
【问题描述】:

Wireshark 似乎无法实时更改过滤数据包的内容。

有没有人知道可以改变被过滤的数据包内容的类似软件。

找到这样的东西真的可以救命

谢谢。

【问题讨论】:

  • 除非您使用 Windows,否则我认为这根本不可能。
  • 尽管如此:如果wireshark 是一个嗅探器......它将如何更改数据包?我的意思是,如果它被嗅到,它就已经在野外了。
  • @JamWaffles:你知道,他可能想调试他开发的一些面向网络的应用程序。
  • Wireshark 只能看到来回传输的数据包……您想要的是更多类似于防火墙包使用的 API 的东西。即使那样修改数据包也可能是不可能的 - 只是丢弃它们。
  • @JamWaffles:不仅用于调试,还用于许多其他目的,例如实现网络流量镜像、适应遗留软件等。

标签: networking wireshark sniffer


【解决方案1】:

至少在 Unices 和类似使用原始套接字的地方,这是不可能的,因为数据包被复制到用户空间,而您只能处理该副本。此外,通过原始套接字发回一个数据包可能被认为是一个“传出”数据包,因此它实际上不会被重新注入到它应该在的输入路径中。根据 Linux 手册页,原始套接字是为实现新协议而设计的,IOW,原始套接字是“端点”,而不是“直通站”。

对于输入路径中的数据包修改(类似直通),每个操作系统都有自己的一组接口。在 Linux 中(您对您的目标有点不明确),这将是 nfqueue 机制,可通过 libnetfilter_queue 使用。当然,这就是wireshark,如果它愿意(我上次检查时没有看到它进行数据包更改),会这样做。

【讨论】:

    【解决方案2】:

    请尝试Burp Suite。它包括一个中继器,可让您修改 HTTP 请求。

    【讨论】:

      【解决方案3】:

      没有wireshark 不会让您更改数据包的内容并将它们放回线路上。但是,有一些方法可以在数据包通过机器时更改它们。通常,主机设置有两个桥接在一起的网卡。一个网卡连接到一个网络,另一个网卡连接到另一个网络。然后当数据包通过这一点时,主机可以看到它们。现在您可以使用iptables/netfilter 并编写一个更改数据包中数据的模块。例如,您可以编写一些可以重新映射源 IP 地址的东西。自从我使用 netfilter/iptables 已经有一段时间了,所以我无法提供更多细节,但我在之前的工作中使用它来对飞行中的数据包做一些整洁的事情。这确实意味着您需要一台位于网络连接点的主机。

      【讨论】:

        【解决方案4】:

        文档表明 node.get("nextSibling") 和 node.get("previousSibling") 是您所需要的。

        【讨论】:

          【解决方案5】:

          是的,可以。

          您需要在构建之前将此选项传递给配置脚本: --enable-packet-editor

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2022-12-05
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多