C ARP应答包不会更新Ubuntu上的ARP缓存

C ARP应答包不会更新Ubuntu上的ARP缓存,c,ubuntu-12.04,arp,spoofing,C,Ubuntu 12.04,Arp,Spoofing,所以在我玩了Digitalsquid开发的网络恶搞之后(http://digitalsquid.co.uk/netspoof/),我一直试图通过编写一个做类似事情的c程序来更好地理解它的内部工作 我的程序目前接收4个参数——源ip、源mac、受害者ip和受害者mac——并用它们发送ARP应答包。在我的家庭网络上测试程序时,我会将源ip设置为路由器的ip,源mac设置为伪造的,受害者ip设置为我笔记本电脑的ip,受害者mac设置为我笔记本电脑的无线网卡mac 问题是,尽管我可以看到通过使用tcpd

所以在我玩了Digitalsquid开发的网络恶搞之后(http://digitalsquid.co.uk/netspoof/),我一直试图通过编写一个做类似事情的c程序来更好地理解它的内部工作

我的程序目前接收4个参数——源ip、源mac、受害者ip和受害者mac——并用它们发送ARP应答包。在我的家庭网络上测试程序时,我会将源ip设置为路由器的ip,源mac设置为伪造的,受害者ip设置为我笔记本电脑的ip,受害者mac设置为我笔记本电脑的无线网卡mac

问题是,尽管我可以看到通过使用tcpdump监控无线网卡发送/接收的数据包(即,我会看到类似“01:43:23.656745 ARP,以太网(len 6),IPv4(len 4),回复rouer ip位于假mac地址,长度28”,这正是我所期望的),路由器的ARP缓存条目保持不变(即,仍然具有正确的mac地址)

我不太清楚这里的问题是什么,为什么我不能毒害我的ARP缓存。我在某处读到可能是我的操作系统Ubuntu 12.04丢弃了未经请求的ARP数据包,所以我尝试将/proc/sys/net/ipv4/conf/wlan0/ARP_accept设置为1-不走运。我还尝试打开IP转发(将/proc/sys/net/ipv4/IP_forward设置为1)正如另一篇文章所暗示的,他仍然没有运气

如果有人能给我一些关于问题可能是什么的提示,我将不胜感激。另外,如果我在理解上有错误,请纠正我——我在c编程和ARP欺骗领域是一个新手

谢谢


JY

接受这些参数(源ip、源mac、目标ip和目标mac)很好,但是您没有给它正确的值

假设A=受害者 B=网络中的网关/路由器/交换机 ARP欺骗实际上使A和B都信服

您需要更积极地向A和B发送ARP请求/回复,将MAC地址指定为所需节点

这样,无论A/B发送什么,都会首先发送给您。 IP和MAC地址字段基本上在交换机的CAT(内容寻址存储器)表中更新,该表不断更新

因此,当您将ARP请求发送到路由器/网关/交换机时:-

 Source IP=Victim's IP i.e A
 Source MAc=your MAC(hackers MAC) so that data may come to your system
 Destination IP=Rouer's IP
 Detination MAC will be blank in case of ARP request