Windows 8.1 has a "feature" that restricts the values you can set the mac address on a wireless network adapter (note: this restriction does not apply to ethernet adapters), even if your network adapter itself contains no restrictions and gives you the full ability to change the mac address to any value you like (which can be confirmed by booting into any other OS, such as BSD or Linux, and changing the mac address there)
This question was already asked here: Change Windows 7/8 Wi-Fi Mac Address to custom value
However the users who answered ignored what the poster said and provided instructions for changing the mac address through the methods which he (and I) are already using to change it. These methods do not get around the restriction, and you are still only able to change the address to values that match the following patterns:
X2-XX-XX-XX-XX-XX
X6-XX-XX-XX-XX-XX
XA-XX-XX-XX-XX-XX
XE-XX-XX-XX-XX-XX
So for example, if you change the mac address to 02:E3:14:D7:4C:00
, the change will take effect. If you try to change it to 24:E3:14:D7:4C:00
, it will not take effect. This value will still be displayed in the "network address" field in the driver advanced settings, but the OS will force the mac address back to the default value for that card
Also here is a couple of screenshots just to illustrate the problem:
changing mac address works if first octet is 02
changing mac address fails if first octet is 24
To add insult to injury, that user's question was also incorrectly marked as a duplicate of a general question asking how to change mac addresses in general. That is not what he was asking, and that is not what I am asking. So before you answer, please make sure you understand what I am asking:
I am NOT asking how to change my mac address in general. I know how to do this. I know the method to change it in the adapter advanced menu, I know the method to change it using the command line, i know the method to change it by editing the registry, I am familiar with common mac address changing tools like TMAC, SMAC, macshift, etc. All of these tools are just abstractions to the methods listed above. I KNOW all these methods ALREADY.
What I AM asking is how to change the mac address successfully to something that does not start with 02, 06, 0A, or 0E on Windows 8.1, because there is a "feature" in the operating system that will override whatever value you set it to to the default NIC mac address if the first octet is not one of those values. In other words, I am asking if there is any method to disable this restriction feature, or get around it somehow.
Best Answer
So I've found a method to work around this restriction and figured I would post it here as I imagine many others are also frustrated by this problem and would like to know how to bypass it.
Be advised, however, that this method is FAR from pretty, and will require a substantial amount of resources. The connection will also suffer from some added latency (but will still be usable.)
To use this method, you will need:
VMWare Workstation Player (I am using version 12)
A Kali Linux VMWare image.
A USB Wireless Adapter
Once you have installed VMWare player and downloaded the Kali Linux image, here is what you do:
Now, in the guest VM:
nm-connection-editor
10.42.0.1
)Now, in the host machine (your Windows box):
10.42.0.2
255.255.255.0
ifconfig eth0 | grep netmask
in the guest10.42.0.1
)You should now have a working tunnel from your host OS's VMNet1 interface to the wlan0 interface on the guest OS via its eth0 interface (a tunnel to a tunnel, heh.) You can use the guest to spoof macs and do whatever you want with the card without microsoft's BS arbitrary restrictions
I am going to try and find a more elegant way to do this as I am not a terribly big fan of Linux. Ideally I'd like to set up a compact BSD-based CLI-only VM to handle this instead of running a bloated Linux distro, but in the meantime this method is working for me and hopefully it will help others facing the same issue.
Also note that you could do something similar with a separate physical device (like a Raspberry Pi) instead of a VM if you have one (unfortunately I don't have another device at the moment), the basic concept is the same only you will have one less step to worry about (configuring the virtual network adapter.)