如何检测另一台主机是否使用与当前主机相同的MAC地址,例如因为另一台主机在欺骗?
我在嵌入式环境中工作,所以在协议级别上寻找答案,而不是“使用这样和这样的工具”。
编辑:RARP不能解决这个问题。要使RARP得到任何答复,必须在支持RARP的段中至少有一个主机。由于RARP已经过时,现代操作系统不支持它。此外,RARP所能做的就是告诉您您自己的IP地址--如果段上有另一个具有相同MAC的主机,则响应不会有任何不同,除非该主机本身使用了不同的IP地址。
发布于 2008-11-10 05:21:33
这个问题太有趣了,不能放下来!在几次错误的开始后,我开始思考问题的基本组成部分,并仔细搜索RFCs以获得建议。我还没有找到一个明确的答案,,但这是我的思考过程,希望它能有所帮助:
什么样的协议符合这种描述?
简单答案:
不那么简单的答案:
我怀疑最终的解决方案将涉及各种技术的结合,因为似乎没有一种单一的方法可以保证可靠的决心。
一些信息可在http://en.wikipedia.org/wiki/ARP_spoofing#Defenses获得
如果所有这些都失败了,您可以享受以下内容:http://www.rfc-editor.org/rfc/rfc2321.txt
请贴上你的解决方案的后续信息,因为我相信它会对其他人有帮助。祝好运!
发布于 2009-01-16 00:25:16
您可以为子网中的每个可能的ip发送一个ARP请求。当然,ARP请求的源地址必须是ff:ff,否则您可能看不到响应。
我用bittwiste伪造了一个这样的包,然后用PReplay重放它,网络上的所有主机都得到了响应。(我不知道这些伪造的ARP包是否合法.一些OSes可能会忽略它们)
以下是伪造的包裹的样子:

以下是答复的内容:

如果您观察响应,并在其中一个数据包中看到您的MAC地址(在红色矩形中),则有人拥有与您相同的MAC地址.
不知怎么说,我无法完全测试这个理论,因为我的(Windows)机器中没有人关心我试图设置nic的MAC地址.
发布于 2008-11-10 03:40:13
在单个网络段上使用相同MAC地址的两台主机可能会使交换机疯狂,您可能会通过极不可靠的网络连接来检测它(因为交换机将将属于您的主机的部分数据包发送到第二个数据包,这取决于您中的哪个发送了最后一个数据包)。
https://stackoverflow.com/questions/276990
复制相似问题