在 wlan 上克隆 ip 和 mac 地址

在 wlan 上克隆 ip 和 mac 地址

如果我在 wlan 网络上克隆另一台电脑,会发生什么情况?考虑以下场景。

  • PC1(受害者) mac1 ip1
  • PC2(攻击者)mac2 ip2。

我设置 mac2 = mac1 和 ip2 = ip1

我在 PC2 上运行了以下脚本

#!/bin/bash
ifconfig wlan0 down
macchanger -m ac:81:12:a2:4e:3a wlan0
ifconfig wlan0 192.168.1.5
route add default gw 192.168.1.1 wlan0
ifconfig wlan0 up

我设法克隆了 pc1 并通过 pc2 访问互联网,但 pc1 失去了与互联网的连接。pc2 工作正常,就好像他将 pc1 踢出了网络。我真的找不到这个问题的合理解释。为什么 pc1 失去了连接?路由器不应该能够区分它们,而 pc1 应该保持与互联网的连接

答案1

这种行为是预料之中的,也是正常的,因为地址解析协议

答案2

802.11 网络与有线网络不同,它使用确认来指示已成功接收帧。之所以使用确认,是因为链路损耗很大,大多数上层都无法应对如此高的损耗率,因此缺少确认将导致重新传输。它还解决了另一个问题:802.11 网络是共享媒体网络,因此如果两个站点同时发送,就会发生冲突,两个站点的帧都会丢失。

如果开放网络中的两个 WLAN 站使用相同的 MAC 地址,则这两个站的网络可能会迅速瘫痪,因为数据接收很可能会失败:

  • 如果两个站点都成功接收到来自 AP 的帧,则两个站点将同时确认。我所说的“同时”是指帧接收结束后 10µs。因此可以保证两个确认将相互冲突,并且 AP 将不会接收它,因此将重新传输。

  • 如果一个站成功接收到帧,但另一个站没有接收到,则第一个站将确认,而另一个站将永远不会接收到该帧。

这样,当你的网络彻底瘫痪时,就会出现断线或者巨大的性能损失,第一个断线的人就会失败。

如果您的网络受到 WPA/RSN-PSK(不带 SAE)保护,并且两个站都知道 PSK,那么还存在另一个问题:PSK 本身不是加密密钥,而是用于在四次握手期间派生随机生成的临时加密密钥。

当一个站点处于连接状态时,如果另一个站点正常发起连接,则 AP 很可能会忘记旧的加密密钥,并使用新 4 次握手协商的密钥。根据前一个站点的实施情况,它可能会默默断开连接,或参与新的 4 次握手。如果两个站点都参与相同的握手,由于 4 次握手的典型实施方式,第一个响应的站点获胜,另一个站点将断开连接,因为它将无法对 AP 进行身份验证。

如果攻击者获取了临时加密密钥(例如,通过窃听前一个站点进行的四次握手,并知道 PSK),他将很难注入帧:每个帧都有一个防重放序列号,如果 AP 检测到重放,它就知道某处有攻击者。由于 CCMP 是安全的,AP 可能会选择简单地忽略检测到的重放,因此,第一个发送具有可接受序列号的数据包的人将获胜。而且,最重要的是,您仍然有 ACK 冲突问题。

因此,如果攻击者想要在不断开其他站点的情况下注入帧,就需要更加聪明:他可以随意传输帧,但不应确认收到的帧,并且必须具有比原始站点更好的链路质量,以免丢失太多帧。如果攻击者可以使用相同的 IP 地址但不同的 MAC 地址,并忽略所有 ARP 请求,那么他的工作就会简单得多:他可以注入 IP 数据,并且会丢失一半的接收数据(取决于其链路质量),但不会以任何方式降低其他站点的连接性。

如果他必须使用相同的 MAC 地址,那么他只能在网络开放时注入帧,等待确认,如果未收到确认则重试,并希望前一个站点不会因在非预期时收到确认而感到困惑。攻击者仍然必须被动地监视信道,并且仍然会错过大量入站数据。

攻击很难,即使 802.11 让攻击变得容易。


顺便说一句,ifconfigroute在 Linux 上已弃用。请改用ip linkip addrip route。此外,您还可以使用ip link set wlan0 address xx:xx:xx:xx:xx:xx代替macchanger

#!/bin/sh
ip link set wlan0 down
ip link set wlan0 address ac:81:12:a2:4e:3a
ip addr add 192.168.1.5/24 dev wlan0
ip link set wlan0 up
ip route add default via 192.168.1.1

相关内容