Spoof Your Ethernet MAC Address Using FreeBSD
Guide Overview
An Ethernet MAC, or Media Access Control, address is a 12 character hexadecimal hardware address that uniquely identifies every Ethernet device in the world. Here's how to change your Ethernet MAC from the original vendor MAC to a spoofed, or false, 12 character hexadecimal address of your choosing, staying within the given MAC character limits of 0-9, A-F or a-f and back to the original MAC address without bringing down the Network Interface using FreeBSD as a desktop Operating System.
As root, run the command "ifconfig -a" and make note of your Network Interface Designation, shown in the following example for this machine as bge0, and your original Ethernet MAC address so you can change it back when you choose. This way you can see for yourself that the MAC has changed by running it again after the command to spoof it is issued.
This command will allow you to change your current ether MAC on your FreeBSD desktop without bringing down the network interface. In this instance it is shown using the designated network interface of my machine and spoofed Ethernet MAC address as an example. When you want to change it back use the original Ethernet MAC you made note of:
ifconfig bge0 ether DE:AD:B0:0B:DE:AD
Below is an example of how to find out your original MAC address, how it's spoofed and then set back to the original Ethernet MAC address using the steps I have outlined.
First run the command and make note of your original Ethernet MAC address on the ether line:
root@jigoku:/ # ifconfig -a bge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=c019b<RXCSUTXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4,VLAN_HWTSO,LINKSTATE> ether b0:0b:de:ad:b0:0b inet 192.168.1.7 netmask 0xffffff00 broadcast 192.168.1.255 media: Ethernet autoselect (100baseTX <full-duplex>) status: active nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL> lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384 options=680003<RXCSUM,TXCSUM,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6> inet6 ::1 prefixlen 128 inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2 inet 127.0.0.1 netmask 0xff000000 groups: lo nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL> pflog0: flags=141<UP,RUNNING,PROMISC > metric 0 mtu 33160 groups: pflog
Now issue the command to spoof your MAC address, in this instance showing the example given, then check to make sure it changed:
root@jigoku:/ # ifconfig bge0 ether DE:AD:B0:0B:DE:AD root@jigoku:/ # ifconfig -a bge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=c019b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4,VLAN_HWTSO,LINKSTATE> ether de:ad:b0:0b:de:ad hwaddr 1c:75:08:22:06:65 inet 192.168.1.7 netmask 0xffffff00 broadcast 192.168.1.255 media: Ethernet autoselect (100baseTX <full-duplex>) status: active nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL> lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384 options=680003<RXCSUM,TXCSUM,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6> inet6 ::1 prefixlen 128 inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2 inet 127.0.0.1 netmask 0xff000000 groups: lo nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL> pflog0: flags=141<UP,RUNNING,PROMISC > metric 0 mtu 33160 groups: pflog
Now we'll switch it back to the original MAC address shown in the first command issued, then check again to make sure it changed:
root@jigoku:/ # ifconfig bge0 ether b0:0b:de:ad:b0:0b root@jigoku:/ # ifconfig -a bge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=c019b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4,VLAN_HWTSO,LINKSTATE> ether b0:0b:de:ad:b0:0b inet 192.168.1.7 netmask 0xffffff00 broadcast 192.168.1.255 media: Ethernet autoselect (100baseTX <full-duplex>) status: active nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL> lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384 options=680003<RXCSUM,TXCSUM,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6> inet6 ::1 prefixlen 128 inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2 inet 127.0.0.1 netmask 0xff000000 groups: lo nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL> pflog0: flags=141<UP,RUNNING,PROMISC> metric 0 mtu 33160 groups: pflog
This will not change your Internet Protocol Address, or IP number. It will, however, show your spoofed MAC so keep that in mind.
If you have problems getting online make sure your router isn't set to only allow certain MAC addresses Internet access from your LAN.
Trihexagonal