C#中的ARP欺骗

时间:2017-01-18 05:12:20

标签: c# networking administration arp spoofing

我正在重写这个,因为我的最后一个(我删除了)没有被正确解释。

所以,我正在为我的学校制作一个网络管理工具,作为一个自我完成的家庭作业(我很无聊)。

目前有以下工具:

  • IP地址ping工具
  • NSLookup工具
  • Traceroute工具
  • 地理位置工具
  • ARP欺骗工具
  • 节点踢球者
  • 远程管理工具创建者

我还没有开始其中任何一项,但我认为我会先把最难的一个(ARP欺骗)。

我已经设置了设计;它有   - IP地址输入   - 一个启动和停止欺骗的按钮   - IP地址和MAC地址标签   - DataGridView,具有Connection列,Packets(In)列,Packets(Out)列和MAC地址列。

唯一剩下的就是代码..

但是,我想知道如何使用C#在Visual Studio中完成此操作。

我需要特定的dll吗?

为实现这一目标,我需要采取哪些流程?

1 个答案:

答案 0 :(得分:2)

我的印象是你真的不了解网络协议是如何工作的。

在局域网上,发往本地局域网的流量是通过MAC地址传递的,它永远不会通过路由器。只有发往不同网络的流量才能通过路由器。因此,即使您可以捕获所有出站路由器流量,也不会捕获LAN上的源流量和目的地,也不会捕获入站路由器流量。

然后,您遇到了打开LAN的问题。交换机是透明设备;他们不维护ARP表,也不查看IP地址。交换机维护具有MAC地址的MAC地址表,以及最后看到MAC地址的接口。如果两个主机发送具有相同源MAC地址的流量,则最后一个将发送到该MAC地址的下一个流量。这将导致MAC地址表不断变化,完全破坏发往该MAC地址的任何流量。

您建议的内容无法正常使用。您似乎想要做的是在交换机上设置SPAN接口,以便为您的应用程序镜像流量。

修改

您不断更改问题,甚至删除了您的第一个问题。执行您似乎想要对应用程序执行的操作的真正方法是为网络上的主机创建代理。这是大多数商业应用程序的功能。网络协议不是为发现网络上的设备而设计的。相反,它们通常是为安全和隐私而设计的。还有其他协议旨在填补让您的应用程序工作的漏洞。例如,有许多网络交换机支持私有VLAN,私有VLAN上的主机无法查看或与同一VLAN上的任何其他主机通信。