因此,在我玩过由 Digitalsquid (http://digitalsquid.co.uk/netspoof/) 开发的 Network Spoofer 之后,我一直试图通过编写执行类似操作的 ac 程序来更好地了解其内部工作。
我的程序目前接收 4 个参数——源 ip、源 mac、受害者 ip 和受害者 mac——并与它们一起发送一个 ARP 回复数据包。在我的家庭网络上测试程序时,我会做一些事情,比如将源 ip 设置为路由器的 ip,将源 mac 设置为伪造的东西,将受害者 ip 设置为我的笔记本电脑的 ip,将受害者 mac 设置为我的笔记本电脑的无线网卡 mac。
问题是,虽然我可以看到使用 tcpdump 监控无线网卡发送/接收的数据包(即我会看到类似“01:43:23.656745 ARP, Ethernet (len 6), IPv4 (len 4), 回复rouer-ip is-at bogus-mac-address , length 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