MAC 地址欺骗问题

MAC 地址欺骗问题

我正在使用以下方式更改/欺骗我的 MAC

sudo ifconfig wlan0 down
sudo ifconfig wlan0 hw ether  xx:xx:xx:xx:xx:xx
sudo ifconfig wlan0 up

但问题是当我尝试连接 AP 时,它不允许我连接。然后我的 MAC 会自动更改为我的原始 MAC。

显然我可以连接到 AP。

问题的原因是什么。据我所知,网络应该是允许的。因为更改 MAC 后。我像新设备一样连接。

那么解决方案是什么呢?

我也尝试过从 GUI,编辑连接

Ubuntu 版本是 14.04

答案1

网络管理器正在干扰 mac 地址的更改。

您可以使用 udev 规则自动执行 mac 欺骗。它将在启动时自动应用。

/etc/udev/rules.d/99-mac-spoofing.rules创建包含以下内容的文件

ACTION=="add", SUBSYSTEM=="net", ATTR{address}=="XX:XX:XX:XX:XX:XX", RUN+="/sbin/ip link set dev %k address YY:YY:YY:YY:YY:YY"

XX:XX:XX:XX:XX:XX旧的 mac 地址和YY:YY:YY:YY:YY:YY新的mac 地址在哪里。

甚至可以使用随机 mac 地址macchanger-r 工具在 udev 规则中。

wifi AP 可能启用了 MAC 地址过滤。

答案2

注意事项:a) 网络管理器存在问题,重新启动后会恢复到原始硬件 mac 地址 b) 停止然后重新启动网络管理器时,VPN 的 GUI 不再可见 c) 带交换机的 Macchanger 不工作或在启动时工作

因此我编写了一个如下脚本来构建随机 MAC 并将其分配给 wlan0

    ##################################################
    #!/bin/bash

    #add chars to the mac
    this+=$(echo "obase=16; $(shuf -i 0-15 -n 1) " | bc ) 
    this+=$(echo "obase=16; $(shuf -i 0-15 -n 1) " | bc )
    this+=":"
    this+=$(echo "obase=16; $(shuf -i 0-15 -n 1) " | bc ) 
    this+=$(echo "obase=16; $(shuf -i 0-15 -n 1) " | bc )
    this+=":"
    this+=$(echo "obase=16; $(shuf -i 0-15 -n 1) " | bc ) 
    this+=$(echo "obase=16; $(shuf -i 0-15 -n 1) " | bc )
    this+=":"
    this+=$(echo "obase=16; $(shuf -i 0-15 -n 1) " | bc ) 
    this+=$(echo "obase=16; $(shuf -i 0-15 -n 1) " | bc )
    this+=":"
    this+=$(echo "obase=16; $(shuf -i 0-15 -n 1) " | bc ) 
    this+=$(echo "obase=16; $(shuf -i 0-15 -n 1) " | bc )
    this+=":"
    this+=$(echo "obase=16; $(shuf -i 0-15 -n 1) " | bc ) 
    this+=$(echo "obase=16; $(shuf -i 0-15 -n 1) " | bc )

    sudo ifconfig wlan0 down

    sudo ifconfig wlan0 hw ether $this

    sudo ifconfig wlan0 up

    ######################################################

在网络管理器 GUI 中,取消选择“启用 wifi”,然后选择“启用 wifi”。您可以执行 ifconfig 来确认 mac 已更改。网络管理器仍然可见并可连接到您的 VPN。

相关内容