To start this Pyhack series, we will learn what MAC is and how to change MAC with Python. Mac is unique address There are 6 pairs of 2-digit numbers assigned by the manufacturer to each piece of network hardware (wireless card or Ethernet card). Mac stands for Media Access Controland each address (code) is unique to a device. I will use the Linux environment to implement this series, more specifically Kali Linux. In this article we will learn how to change MAC using python.
Join the channel Telegram belong to AnonyViet 👉 Link 👈 |
PyHack is a hacking series in python. Where you will learn python programming and ethical hacking at the same time. To understand the article better, please go through the course basic python before.
Why do we have to change MAC?
- Increased properties anonymous.
- Impersonation other devices.
- Overcome filters.
Simulates how Mac works
As mentioned above, MAC addresses are unique. Likewise, when manufacturers want to update firmware, they will be able to update specific devices more easily thanks to MAC. Packages will also know where they should wait to be sent thanks to the assigned MAC addresses.
How to change MAC using python
On Windows, you can easily change it MAC using TMAC software .
In Linux, we can completely change MAC with python in a very simple way. In this article, I will change the MAC of eth0 (network card) and wlan0 (wifi card). We follow these steps:
- First, we will disable that MAC device:
sudo ifconfig wlan0 down
- Next, we will change the MAC:
sudo ifconfig wlan0 hw ether 00:11:22:33:44:55
Where 00:11:22:33:44:55 is the new MAC address, wlan0 is the device name, specifically here is the wifi card - Finally, turn that MAC device back on:
sudo ifconfig wlan0 up
To change MAC, we must access and run commands on the shell. Python supports us in running commands on the system using modules subprocess. The commands will depend on the operating system you are using.
Syntax:
import subprocess
subprocess.call(“COMMAND”, Shell=True)
Based on the above syntax and adding a few basic python lines, we will have code like this.
When running it will look like this.
Next, we will add a parser to the program. Parser are arguments that support users when using our program.
For example: when we type sudo ifconfig --help
then it will return to us the arguments of that command.
To use parser, we use module optparse.
So that the user can enter interface and new MAC when running the file, we add variables options and arguments equal parser.parse_args(). The options variable now contains two values: interface and new_mac. To call up those two values, use the command options.interface or options.new_mac.
We will enter interface and new MAC when running the program file.
Oops, error. Note, you can only set the address unicast Have octet First, there are only even numbers. The MAC address I set has the first 2 numbers being odd, 99. So an error will occur. To solve this problem, you just need to change the first 2 numbers of the new MAC address to even numbers.
But here, we have another problem. When the user enters incorrect syntax or a system command error, the program still prints the print statement. So how do we check for errors, and if there is an error, how can we print out what the error is?
The optparse module already knows this situation, so it allows us to use the if statement to check whether there is a system command error or not.
We put the optparse code into the function get_arguments()
and subprocess code into the function change_mac()
Completed the first lesson of the PyHack series, how do you feel? You join the group Anonyviet to view my PyNight series and see the latest information about this PyHack series.