MAC Address Spoofing unter OS X/macOS

Das kann auf Reisen nützlich sein.

Funktion

Sie können dies in Ihre .zshrc/.bashrc/etc. einsetzen.

spoof () {
    CRED='\033[0;31m'
    CBLUE='\033[0;34m'
    getmac () {
        ifconfig "$1" | grep -o -E '([[:xdigit:]]{1,2}:){5}[[:xdigit:]]{1,2}'
    }

    macorig=$(networksetup -getmacaddress "$1" | grep -o -E '([[:xdigit:]]{1,2}:){5}[[:xdigit:]]{1,2}')
    macprev=$(getmac "$1")
    macrand=$(openssl rand -hex 6 | sed 's/\(..\)/\1:/g; s/.$//')
    sudo /System/Library/PrivateFrameworks/Apple80211.framework/Resources/airport -z;
    sudo ifconfig "$1" ether "$macrand"; networksetup -detectnewhardware;
    macnass=$(getmac "$1")
    echo "Original MAC: ${macorig}";
    echo "Previous MAC: ${macprev}";
    echo "Your new MAC: ${CBLUE}${macnass}";

    if [ "${macnass}" == "${macprev}" ] ; then
        echo "${CRED}ATTENTION: NO NEW MAC ASSIGNED DUE TO LAG IN OS X";
    fi
}

Beschreibung

spoof <adapter>

Die Funktion generiert eine zufällige MAC-Adresse, leitet die erforderlichen Maßnahmen ein um den Adapter in einen manipulative Zustand zu versetzen, weist die neue Adresse dem ausgewählten Adapter zu (z.B. spoof en0 für Airport/Wi-Fi) und gibt die neu zugewiesene MAC-Adresse auf dem Bildschirm aus.

❯ spoof en0
Original MAC: 0c:b6:8a:4d:07:00
Previous MAC: 0c:0b:1d:19:9b:bb
Your new MAC: 1c:cf:63:59:8c:f7

Helfer

# For OS X 10.10 Yosemite and later
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder; say -v Jill flushed

System-Setup

  • OS X 10.11 El Capitan
  • ZSH mit .zshrc