Usurpation de l’adresse MAC sous OS X/macOS

Cela peut être utile lorsque vous voyagez.

La fonction

Vous pouvez mettre ceci dans votre .zshrc/.bashrc/etc.

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
}

Description

spoof <adapter>

La fonction génère une adresse MAC aléatoire, fait les démarches nécessaires pour mettre la carte dans sa condition manipulatrice, assigne la nouvelle adresse à la carte sélectionnée (par exemple spoof en0 pour Airport/Wi-Fi) et imprime l’adresse MAC nouvellement attribuée à l'écran.

❯ 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

Aides

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

Configuration du système

  • OS X 10.11 El Capitan
  • ZSH avec .zshrc