A MAC changing utility that uses both ifconfig and GNU-Macchanger (checks if mac changer exists, if not, uses ifconfig) to spoof ones MAC with a totally random value. Written in Python.
be6130bf64c1b4bd8dff08738fd95e00e2600a3558797364ad485593266a1157
#!/usr/bin/env python
# HideMAC - 0x4641494c - v1.2
# By infodox - credit to Trip from Hak5 for the getmac function, as mine did not work!
# Credits to Mario Scondo for randomMAC function!
import os
import commands
import sys
import random
# Function: amiroot()
def amiroot():
if os.geteuid() != 0:
print "[-] sorry, you need to run this as root"
sys.exit(1)
else:
pass
# Function: randommac()
def randomMAC():
mac = [ 0x00,
random.randint(0x00, 0xff),
random.randint(0x00, 0xff),
random.randint(0x00, 0xff),
random.randint(0x00, 0xff),
random.randint(0x00, 0xff) ]
return ':'.join(map(lambda x: "%02x" % x, mac))
return newmac
# Function: getmac(iface)
def getmac(iface):
data = commands.getoutput("ifconfig " + iface)
words = data.split()
found = 0
for x in words:
#print x
if found != 0:
mac = x
break
if x == "HWaddr":
found = 1
if len(mac) == 0:
mac = 'Mac not found'
mac = mac[:17]
print mac
# Function: check()
def check():
if os.path.isfile("/usr/local/bin/macchanger") == True:
print("MAC Changer is installed, using it...")
macchanger_changemac(iface)
else:
print("MAC Changer is not installed, using ifconfig method!")
ifconfig_changemac(iface)
# Function: macchanger_changemac(iface)
def macchanger_changemac(iface):
print("[+] Changing your MAC address to something totally random...") # More statuses
os.popen("macchanger --random " + iface) # CHANGES MAC ADDRESS!!!!!!!
# Function: ifconfig_changemac(iface)
def ifconfig_changemac(iface):
print("[+] Changing your MAC address to something totally random...") # More statuses
os.popen("ifconfig " + iface + " hw ether " + randomMAC())
# Main part!!!
print("Welcome to HideMAC - 0x4641494c - v1.2 by infodox")
print("This code is still under development - I have a lot of work to do!")
print("Have fun...")
amiroot()
iface = raw_input("what interface are you changing: ") # Sets the interface to fuck with...
print("[*] Your Current MAC address is: ")
getmac(iface)
os.popen("ifconfig " + iface + " down") # Puts interface down :(
check()
os.popen("ifconfig " + iface + " up") # Puts interface back up :)
print("[*] Your New MAC address is: ")
getmac(iface)