Spoofing l'indirizzo MAC su OS X/macOS

Questo può essere utile quando si viaggia.

Funzione

Si può mettere questo nel .zshrc/.bashrc/ecc.

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
}

Descrizione

spoof <adapter>

La funzione genera un indirizzo MAC casuale, prende le misure necessarie per mettere la scheda nel suo stato manipolativo, assegna il nuovo indirizzo alla scheda selezionata (per esempio spoof en0 per Airport/Wi-Fi) e stampe l'indirizzo MAC appena assegnato sullo schermo.

❯ 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

Aiutanti

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

Configurazione

  • OS X 10.11 El Capitan
  • ZSH con .zshrc