【问题标题】:Receiving packets for different MAC address接收不同 MAC 地址的数据包
【发布时间】:2010-02-16 13:08:31
【问题描述】:

是否可以在混杂模式下捕获一些数据包(例如使用 winpcap),然后强制操作系统(应用程序)接收它们,因为它们是为我们的 MAC 发送的?

我的观察如下。我们可以:

  • 使用捕获所有网络流量 混杂模式(winpcap)
  • 使用过滤/修改数据包 防火墙挂钩/过滤挂钩
  • 使用更改的 MAC 向网络发送数据包

我不确定防火墙钩子是否可以访问由于混杂模式而可用的所有数据包。不是在下层吗?如果不能,唯一的解决方案是捕获所需的数据包,然后使用更改的 MAC 将它们重新发送到网络?

我是网络新手,所以请放轻松:)

感谢任何帮助。 提前致谢。

【问题讨论】:

    标签: c windows networking packet-capture winpcap


    【解决方案1】:

    您对白帽/黑帽黑客的防线很敏感。我知道我的公司积极监视混杂的 NIC,追捕所有者并杀死(解雇)他们。也许如果你问我们你想做什么,我们可以提供一些建议。

    如果您尝试分析您的网络,那么软件和/或硬件解决方案可能会做得更好。如果您只是想观看网络中有趣的文本流,那么……也许您还在上大学。

    【讨论】:

    • 我想要做的就是在一个 NIC 上拥有 2 个 MAC/IP 地址。不幸的是 NIC 不支持此功能,但我确信有解决方法......而且我很好奇 :)
    • @Petr 为什么需要两个 MAC 地址?单网卡完全有效,一个MAC地址有多个IP地址
    • @Rowland 是的,但对于其他同行来说,它看起来仍然像是一台设备。我想从一个单独的设备中模拟两个单独的设备。
    • 我只能建议尝试 HyperV 或类似的 VM 环境,通过您的单个 NIC 虚拟化网络。我知道我输入了 MAC 地址,这就是向全世界报告的内容。
    【解决方案2】:

    首先,是的,如果您的界面在混杂模式下运行,那么您将“在线”接收所有内容。这已经是一个困难,现在许多(如果不是全部)网络都被切换了,这意味着您系统外部的一块硬件已经在数据包到达您的系统之前进行了一些过滤,因此您首先需要诱骗交换机进入将这些数据包传输到您的终端(可以通过发送虚拟 arp、配置交换机或恶意 ;-) 来完成)。 那么如果这些数据包在您的系统中收到,您打算如何处理它们?那里的以太网帧将携带 ip 数据包,通常带有目标 ip 地址,该地址已经不在您的主机上(如果是,这意味着您的网络上将有重复的 ip 地址,也会导致问题。

    所以主要的问题是,你真正真正想做的是什么?

    【讨论】:

    • 感谢您的回答。我对混杂模式没有任何问题(已经用 Wireshark 测试过)。诀窍是这些数据包实际上是对我的请求的响应(与我的“虚拟”MAC 一起发送)。我计划制作一个工具,允许不同的应用程序同时使用不同的 MAC/IP 地址与网络通信。
    • 那你为什么还需要重写等呢?或者你为什么不简单地使用你的本地mac地址并在ip级别进行过滤?
    • 因为这样,有了两个 MAC 地址,我可以使用两个不同的互联网连接并结合它们的带宽 :) ... 我可以充当两个对等方 => 我的带宽增加了一倍。
    • +1 关于开关的非常好的观点。这正是为什么我在需要对链接进行嗅探时保留一个旧的愚蠢集线器的原因。
    【解决方案3】:

    一旦您收到一个数据包,它就已经通过协议栈清理了。我不认为 Windows 让您可以访问 Winsock 的中间,而这需要以某种方式将其重新插入。

    更重要的是,这是一个非常狡猾的想法。无论您想做什么,我都可以向您保证,有更好的方法可以做到。

    【讨论】:

    • 这就是为什么我必须使用防火墙挂钩驱动程序不是吗?我知道有更好的方法 - 购买支持此功能的硬件,但我想采用这种软件方式。
    猜你喜欢
    • 1970-01-01
    • 2013-10-05
    • 1970-01-01
    • 2020-09-02
    • 2016-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多