我目前正在学习网络安全基础知识,并尝试遵循以下有关 ARP 欺骗的教程。我在 Windows PC 上的 VirtualBox VM 上使用 kali linux 将我的 Windows 计算机的网关重定向到我的 kali VM,但我一直收到“无法为主机进行 arp”错误。我还尝试将我的 iPhone 网关重定向到 kali,以防从 VM 重定向我的计算机不合理,但我遇到了同样的问题。
我的完整过程是在 Windows 上使用 ipconfig 来获得类似以下内容(法语):
Carte réseau sans fil Wi-Fi :
Suffixe DNS propre à la connexion. . . : epfl.ch
Adresse IPv6 de liaison locale. . . . .: fe80::9c0c:82bd:c93d:a9ad%11
Adresse IPv4. . . . . . . . . . . . . .: 128.179.179.227
Masque de sous-réseau. . . . . . . . . : 255.255.248.0
Passerelle par défaut. . . . . . . . . : 128.179.176.1
从中我推断出我必须在 kali 上运行的命令是:
echo 1 > /proc/sys/net/ipv4/ip_forward
arpspoof -i eth0 -t 128.179.179.227 128.179.176.1
我的手机 IP 是 128.179.199.89。
当我在 kali 上运行时ip a
,我得到的 IP 地址是 10.0.2.15,网关是 10.0.2.2,我不知道这个差异是否是我无法使命令工作的原因。如果有人知道我可能遗漏了什么或我应该调用什么,我很乐意听听你的想法。谢谢!
https://www.youtube.com/watch?v=mchrDyBdMmc&t=421s
答案1
存在几个问题:
-
当我在 kali 上运行 ip a 时,我得到的 IP 地址是 10.0.2.15,网关是 10.0.2.2
您的 VirtualBox VM 处于“NAT”模式,这意味着它位于与您的实际 LAN 完全不同的“物理”网络中。有一个路由器(VirtualBox 本身)允许网络层 (L3) 通信,但 ARP 是一种链路层 (L2) 机制;它仅在同一子网内起作用 - ARP 数据包不会跨路由器传输。
为了实现这一点,虚拟机需要处于“桥接”网络模式,这样它就直接与主机处于同一网络上。
桥接也不能保证在 Wi-Fi 上工作——VirtualBox 必须实现一些技巧才能实现。(具体来说,问题是它无法通过 Wi-Fi 让虚拟机的真实 MAC 地址可见;它们会显示为拥有主机的 MAC,而 VirtualBox 必须神奇地重写 ARP 响应以匹配。)我建议始终使用以太网连接。
(强调所有方式 - 使用以太网交换机很好,但连接到 Wi-Fi 并为您提供以太网端口的“范围扩展器”将具有与 VirtualBox 本身完全相同的问题。)
您的计算机和手机也位于不同的子网中。将计算机的地址 (128.179.179.227) 与网络掩码 (255.255.248.0) 相结合,您将获得网络地址 128.179.176.0/21 – 作为一个范围,它将以 128.179.183.255 结束。请注意,您的手机的 IP 地址不在此范围内。
这意味着,至少你的手机会向一个与你的完全不同的网关地址发出 ARP 查询,和最有可能的是,两个网络也在链路层分离,这意味着一个网络的 ARP 查询在另一个网络是不可见的。
您的计算机的 Wi-Fi 连接似乎允许您访问共享子网(我猜是校园范围的 Wi-Fi)——如果你在那里实施 ARP 欺骗,它会影响连接到它的所有用户,这可能会 a) 将几百台设备的流量路由到你的笔记本电脑,b) 使设备所有者不高兴,c) 使 EPFL 网络管理员非常不高兴,d) 以上所有。
这是假设它有效。更可能的是,网络管理员已启用客户端隔离在 Wi-Fi 接入点上,这样你的计算机就永远不会看到其他设备的 ARP 查询即使在同一个子网中(接入点代表被查询的设备回答),同样,其他设备永远不会看到您的“欺骗” ARP 响应。
(客户端隔离正是为了防止某人做你想做的事情。)