C语言 ARP 回复数据包不会更新 Ubuntu 上的 ARP 缓存



因此,在我玩过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 is-at bogus-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 欺骗领域很新。

谢谢!

杰伊

最好采用这些参数(源 ip、源 mac、目标 ip 和目标 mac),但您没有给它正确的值。

假设 A=受害者

和 B=网络中的网关/路由器/交换机

ARP 欺骗实际上说服了 A 和 B

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

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

因此,当您将ARP Reuest发送到A(即路由器/网关/交换机)时:-

 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

最新更新