无法更改我的 MAC 地址 - 无法分配请求的地址

无法更改我的 MAC 地址 - 无法分配请求的地址

我想知道,为什么我不能通过这样做来更改我的 mac 地址:

sudo ifconfig wlan0 down
sudo ifconfig wlan0 hw ether 03:a0:04:d3:00:11

错误在于SIOCSIFHWADDR: Cannot assign requested address我用 Google 搜索过但没有发现任何有价值的东西。

附言和往常一样,我做不到这一点。什么都不起作用。我取了新的 mac 地址,它比我当前的 mac 地址增加了 1(旧的11:11:11:11:11:cf, 新的11:11:11:11:11:d0

sudo ifconfig wlan0 down
sudo ifconfig wlan0 hw ether 11:11:11:11:11:d0

没有错误,在我这样做之后它甚至自动连接到了 wifi(尽管我没有这样做sudo ifconfig wlan0 up)。我以为它赢了。然而,当我这样做时

sudo ip addr

我看到了和以前相同的 MAC 地址。什么都没有改变。

答案1

03:a0:04:d3:00:11不是单播地址,因为第一个八位字节必须是偶数。查看下图以更好地理解它。此图片来自维基百科 - MAC 地址页面

所以改为02:a0:04:d3:00:11例如

在此处输入图片描述

答案2

试试这个 c 实际上会发生什么情况,有一个特定的 mac 地址模式,它是仅注册的一个,所以使用随机 mac 地址你就无法更改该地址。

ifconfig | grep HWaddr
ifconfig eth0 down
ifconfig eth0 hw ether 00:1E:68:35:FF:91
ifconfig eth0 up
ifconfig eth0 hw ether 00:1d:92:43:f1:29

祝你好运

答案3

我假设,由于您尝试更改无线接口的 HWaddr,因此您正在尝试进行一些无线渗透测试并需要欺骗您的 HWaddr。好吧,有几种方法可以做到这一点,但我将向您提供我的方法,因为我没有看到它包含在这里。以下 bash shell 代码是我创建的非常基本的随机 HWaddr 生成器。它并不完美,确实存在一些错误(例如,某些生成的 MAC 不允许进入设备)。

这是 bash 的随机 HWaddr 函数:

#!/bin/bash

RAND_MAC() {

gen() {
NUM="$(tr -dc '0-9a-f' </dev/urandom | head -c 2)"
echo -n "$NUM:"
}

for c in {1..6}; do

   if [ "$c" -lt "6" ]; then
      gen
   else
      gen | tr -d ':'
   fi

done
}

RAND_MAC

现在我将解释一下这个函数的作用:

RAND_MAC()将是函数声明。这基本上是让 bash shell 解释器知道“嘿,这里有一个函数。”并让它寻找开括号和闭括号{}。声明函数后RAND_MAC(),有一个{后面跟着嵌套的新函数声明,称为gen()。嵌套基本上只是意味着函数内部还有一个函数。函数gen()将随机生成随机 HWaddr 的八位字节。是gen()一个自包含函数,仅在for其执行的循环期间激活。当gen()被调用时,名为的变量NUM被分配命令输出的值。NUM被分配的命令是。这将使用数字af /dev/urandom`$(tr -dc '0-9a-f' </dev/urandom | head -c 2)输出一个 2 个字符的字符串。0-9 and lower case lettersin random order by pulling from

现在,函数gen()已经基本解释清楚了,主函数的其余部分RAND_MAC()将控制显示。for循环将迭代 6 次。第 6 次迭代后,循环for移动到done并结束。结果是新生成的 HWaddr,您现在可以将其用于您的wlan0接口或任何接口名称。我们为此使用 bash 函数的原因是为了防止此脚本的数据处于全局范围内。我们希望将此类脚本保持在本地以消除我不会在这里讨论的错误。将函数保存到文件(例如类似)后/usr/bin/macgen,授予其执行权限。

user@group:~# chmod +x /usr/bin/macgen

现在,您可以随时从终端命令行使用新的 HWaddr 生成脚本。您可以使用以下命令调用该工具macgen

现在来介绍如何使用尚未给出的方法来分配这个新的 HWaddr。

许多人建议使用ifconfig或 甚至iwconfig来更改无线接口的 HWaddr。好吧,ifconfig和 甚至iwconfig是已弃用的工具,并且几乎已被称为ip和 的工具所取代iw。我将在此回答中使用的工具是iw。以下命令将是您需要遵循的命令,以创建虚拟接口、欺骗其 HWaddr 并避免更改真实物理硬件的 HWaddr。对我来说,这种方法更加合理和安全,因为我们可以简单地将我们的真实物理接口关闭,ifconfig并使用完全虚拟和虚假的接口来完成我们想要做的所有事情:

首先,我们将生成要使用的新的 HWaddr。

user@group:~# macgen

然后我们将用ifconfig它把真实的设备关闭。

user@group:~# ifconfig wlan0 down

现在我们可以使用 创建 VNIC iw

user@group:~# iw dev wlan0 interface add mon0 type monitor addr (new mac here)

最后,我们打开界面。

user@group:~# ifconfig mon0 up

现在您应该有一个处于监控模式的伪造无线接口以及该接口的伪造 mac 地址。如果您需要将其模式从监控更改为托管,以便您可以使用它连接到接入点,只需执行以下操作:

关闭 VNIC:

user@group:~# ifconfig mon0 down

改变模式:

user@group:~# iwconfig mon0 mode managed

[快速提示] 在更改模式之前,请确保所有其他管理模式接口都已关闭,否则,您将切换错误标志iwconfig

恢复接口:

user@group:~# ifconfig mon0 up

使用以下命令检查配置是否正确:

user@group:~# iw dev

输出应类似于此:

phy#0
      Interface wlo1
           ifindex 3
           wdev 0x1
           addr 00:11:22:33:44:55
           type managed
           channel 161 (5805 MHz), width: 40 MHz, center1: 5795 MHz
           txpower 50.00 dBm

当您准备摆脱 VNIC 时,只需将其删除:

user@group:~# iw mon0 del

然后恢复你的真实界面:

user@group:~# ifconfig wlan0 up

希望这些信息对您有所帮助。如果您对此有任何疑惑,请随时询问。

答案4

http://www.microhowto.info/howto/change_the_mac_address_of_an_ethernet_interface.html

看看这个

它说第一个数字应该是偶数 它对我有用

相关内容