While I am at it figured I would post this little snippet aswell.
I do realize there are other utilities to spoof the MAC address of devices, but I would rather us my own solution. (plus I was bored).
General Usage:
-h print help
-s generate random mac address and assign it
-u set mac address to what it was from the beginning
ToDo:
- add CLI flag to define interface
- add CLI flag to manually define mac address
- resolve issue with assigning the MAC, ifconfig has issues with certain mac address's not sure why yet.
Download: mediafire.com/download.php?hean10e25zi
Code:
All feeback welcome, I would love to hear your thoughts.Code:#!/bin/bash # # Synopsis: MAC address spoofing utility # Author: thims (thims DOT local AT gmail DOT com) # Version: 0.1 # Date: 20091104 # Comments: # ToDo: # - figure out why certain MAC addresss cause ifconfig to exit with error (Error: could not set spoofed MAC address, possibly try running againg) # Editable variables iface=wlan0 #desired interface origMAC=ff:ff:ff:ff:ff:ff #original MAC address ### Code Begins ### spfMAC= alph=(0 1 2 3 4 5 6 7 8 9 A B C D E F) alph_len=${#alph[*]} function help() { cat << EOF Usage: $0 [args] -h, --help - Print this help and exit -s, --spoof - Spoof MAC address to a randomly generated address -u, --unspoof - Return spoofed MAC address to original MAC address EOF } function die() { if [ -n "$1" ] ;then echo "$1" fi exit 1 } function genMAC() { for i in $(seq 6) do for x in $(seq 2) do spfMAC=${spfMAC}${alph[$((RANDOM % alph_len))]} done spfMAC=${spfMAC}: done spfMAC=${spfMAC:0:17} } function changeIface() { MAC="$1" ifconfig $iface &> /dev/null if [ $? -gt 0 ] ;then die "Error: IFACE $iface does not exist(possibly down?)" fi ifconfig $iface down ifconfig $iface inet hw ether $MAC up &> /dev/null # the following if is in place because ifconfig was being picky about certain MAC addresss if [ $? -gt 0 ] ;then die "Error: could not set spoofed MAC address, possibly try running againg" fi } if [ $UID -gt 0 ] ;then die "Error: Sorry dude, gotta be root!" fi while [ $# -gt 0 ] do case "$1" in "-h"|"--help") help die ;; "-s"|"--spoof") genMAC changeIface $spfMAC ;; "-u"|"--unspoof") changeIface $origMAC ;; *) help die ;; esac shift done