- Solved: Change MAC Address in Linux [Temp & Persistent]
- Overview on MAC Address
- Method-1: Change MAC Address of Network Adapter (Non-Persistent)
- Step 1: List Network Interfaces
- Step 2: Disable Interfaces
- Step 3: Change MAC Address
- Step 4: Verify the new MAC Address
- Method-2: Change MAC Address of Network Adapter (Persistent)
- Set MAC address to default
- You must log in to answer this question.
- Related
- Hot Network Questions
- Subscribe to RSS
- Change the MAC address of your Linux system
- Command line
- machanger
- About Us
Solved: Change MAC Address in Linux [Temp & Persistent]
When it comes to networking, you’ve probably heard of the term MAC addressed a lot. MAC Address is a physical identity assigned to each interface. Now you may wonder when the MAC Address is already assigned to an interface then why would we want to change it? Well there can be a number of scenarios, speaking from my personal experience
- We had a very old rack server where we failed to installed RHEL 8 and the MAC address of the interfaces from this server kept changing after every reboot. So we decided to update the PCI ID of each interface using udev rule bundled inside initrd to overcome this issue.
- For PXE boot we perform network based installation. Now this should not be a problem when we are using DHCP but if you want to use static IP then you must define the MAC Address of the interface and the IP to be assigned. Now imagine you have 100s of servers, so connecting to each one and getting the MAC can be nasty so we can just change the MAC address of these servers as per our need and then just use them to perform PXE boot.
In this tutorial, I will cover what we mean by MAC address, what it’s used for, and how to change it. We will use Kali Linux to demonstrate the steps from this article.
Overview on MAC Address
- MAC address stands for Media Access Control, and it’s a permanent, physical, and unique address assigned to network interfaces by the device manufacturer.
- So whether you have a wireless, wired, or Ethernet, each of these network cards comes with a specific address unique to this card. There are no two devices in the world that would have the same MAC address.
- This address will always be the same to this specific device; even if you unplug it from your computer and connect it to another computer, this network device will always have the same address.
- Not only that but the MAC address is often used by filters to prevent or allow devices to connect to networks and do specific tasks on the web.
- Changing your MAC address to another device’s MAC address will allow you to impersonate this device and will enable you to do things that you might not be able to do.
- So you’d be able to bypass filters or connect to networks that only specific devices with specific MAC addresses can relate to, and you will also be able to hide your identity. Now changing the MAC address is very simple, so let me show you how to do that.
Method-1: Change MAC Address of Network Adapter (Non-Persistent)
Step 1: List Network Interfaces
First, I will use the ifconfig command to list all the network interfaces available on my Kali machine. What I mean by network interface is any device that allows us to connect to a network.
An example is a Wi-Fi card or an Ethernet card, and so on. So you can see first of all we have eth0 , which is a virtual interface created by virtual box when we set Kali to use NAT network.
You can see the interface name is eth0, and you can see it has an IP address because, as I said, it’s connected to a network.
If we go here, we can see it saying Wired Connected. The interface represents the wired network that Kali is connected to, which is a virtual NAT network.
You can also see the netmask, the broadcast, and an essential piece of information: the ether, which is the MAC address of this virtual interface.
Now, you can see similar information for my other two interfaces, the lo and the wlan0. The only thing is you can see for both of these interfaces. We do not have an IP address. And the main reason for that is that none of these interfaces is connected to a network.
Now lo is the default interface created by Linux, and wlan0 is my genuine wireless adapter. I can use it to connect to Wi-Fi networks. But if I go on the web in here, you’ll see Wi-Fi is not connected because I didn’t connect to any network, and that’s why it does not have an IP address.
Now, this doesn’t matter because we want to change the MAC address, which is again shown under the ether part, similar to what you see here for eth0 .
Step 2: Disable Interfaces
Now, to change any of the values you see here, you first have to disable the interface. In this example, we want to change the MAC address to represent it by the ether, and the value is right here.
To disable an interface, we’re going to do ifconfig followed by the interface name, wlan0 in my example, followed by down to disable it.
Now, if I hit Enter, you’ll see the command runs with no errors, so it means that it got correctly executed. And the next thing that we need to do is change the option that we want to change. And in this example, we want to change the ether, which is the MAC address.
Step 3: Change MAC Address
First, we’re going to type ifconfig , type the interface that we want to change, one of its options, then type the option we want to change. And what we want to change is the hardware address, so we’re going to do hw ether. Then we’re going to give it the lesson that we want to change the MAC address.
For this example, I’m going to use 00:89:76:88:82:33 . Very, very simple command, we’re doing ifconfig wlan0 to select the interface that we want to change its option, we want to set the hardware address, and we want to put this address to this specific address.
So you can use any address that you want, following the same format shown here. Just make sure your address starts with 00 . So I’m going to hit Enter, and again, we don’t see any error messages, so it means the command got appropriately executed.
And finally, we need to enable the interface because we disabled it by doing ifconfig wlan0 down , so we need to do ifconfig wlan0 up to allow it. Now the interface is enabled, and if we do ifconfig again, and look at the ether part here, you can see that it is changed to the MAC address that we specified.
Step 4: Verify the new MAC Address
Now, this is done, and your MAC address has changed. Now, you can go ahead and start using the interface, and it’ll appear to have this MAC address instead of its original MAC address. And like I said, this can be useful in so many scenarios.
Now, keep in mind, the MAC address will revert to the original one once you restart the computer because we’re only changing the MAC address in memory. We’re not changing the physical MAC address.
Method-2: Change MAC Address of Network Adapter (Persistent)
In this section we will change MAC Address of a network adapter permanently which will be persistent across reboots.
Set MAC address to default
So, to set the MAC address back to its default (assuming GNU grep here):
set_to_real() ( for i do mac=$(ethtool -P "$i" | grep -iEom1 '([0-9a-f]:)[0-9a-f]') && ip link set dev "$i" address "$mac" done ) set_real eth0
Your «real MAC» might be reported by the kernel on boot, so have a look at
and try using your ip link set. with the MAC you find there.
Well, I was looking for something else (like eth0 address «set-to-real») but this is also a solution, thanks! 🙂
There is a macchanger tool which allows to do it. From man macchanger :
macchanger [options] device -p, --permanent Reset MAC address to its original, permanent hardware value.
So assuming your interface is eth0, you run:
# macchanger -p eth0
You must log in to answer this question.
Related
Hot Network Questions
Subscribe to RSS
To subscribe to this RSS feed, copy and paste this URL into your RSS reader.
Site design / logo © 2023 Stack Exchange Inc; user contributions licensed under CC BY-SA . rev 2023.7.14.43533
Linux is a registered trademark of Linus Torvalds. UNIX is a registered trademark of The Open Group.
This site is not affiliated with Linus Torvalds or The Open Group in any way.
By clicking “Accept all cookies”, you agree Stack Exchange can store cookies on your device and disclose information in accordance with our Cookie Policy.
Change the MAC address of your Linux system
Still today, some network monitoring tools and security systems rely on the MAC address of the host. However, a MAC address is not an authentication mechanism! It can be easily changed. More precisely, by default most operating systems will use the MAC address burnt into the network interface as the source MAC address for all emitted Ethernet frames. But you can easily reconfigure your system to change this behavior. Here is how to do that on a Linux computer.
Command line
From the command line, let’s list the network interfaces and current MAC addresses:
To change the MAC address, we must actually turn the network interface down, then set the MAC address, and finally turn it up again:
sudo ip link set dev down sudo ip link set dev address sudo ip link set dev up
But pay attention, this modification will be discarded after reboot.
machanger
macchanger is a small tool that makes it even easier to change your MAC address from the command line.
Installation is as simple as:
sudo apt install macchanger
macchanger can change your MAC address each time you plug a network cable or connect to a wifi, but I would not use this feature, so better answer «No»:
macchanger has 3 main commands:
- assign a random MAC address to an interface;
- assign a provided MAC address;
- restore to the default MAC address.
To assign a random MAC address:
To assign a provided MAC address:
Finally, to reset the default MAC address:
How to detect filtered (and opened) outgoing ports on a network?
Sometimes you want to access services running on unusual ports, like a SSH server running on port 2222 for example. If connection fails, how can we detect the outgoing ports that are filtered or open on the network?
Adv-Bot: Realistic Adversarial Botnet Attacks against Network Intrusion Detection Systems
Due to the numerous advantages of machine learning (ML) algorithms, many applications now incorporate them. However, many studies in the field of image classification have shown that MLs can be fooled by a variety of adversarial attacks. This raises many questions in the cybersecurity field, where a growing number of researchers are recently investigating the feasibility of such attacks against machine learning-based security systems, such as intrusion detection systems.
SQLMap : additional techniques
In a previous blog post, we have explained what SQL injection is, and how to exploit it using sqlmap. In this blog post, we will show some additional techniques: how to exploit web applications that use clean URLs, how to exploit a POSTed form, how to hide traces etc.
About Us
We are the Cyber Defence Lab of the Royal Military Academy (Belgium). We aim to be a center of excellence in all aspects of cyber defence: protection, detection, incident response and management.