Changer l'adresse MAC dans OS X Yosemite

34

J'ai généralement changé mon adresse MAC avec les commandes suivantes:

# Get a New MAC Address
openssl rand -hex 6 | sed 's/\(..\)/\1:/g; s/.$//'
# Changing the MAC Address
sudo ifconfig en0 ether d4:33:a3:ed:f2:12

Quand j'entre:

ifconfig en0 |grep ether

Je reçois toujours l'ancienne adresse MAC :( - Qui peut m'aider? J'aimerais avoir un script ou un système pour le changer automatiquement au démarrage du système.

Lupo
la source
3
Avez-vous essayé SpoofMAC ( pip install SpoofMAC)? Cela fonctionne toujours sur Yosemite pour moi.
L3viathan

Réponses:

35

Un problème possible est que les MAC générés aléatoirement échoueront la moitié du temps. Le premier octet d'une adresse MAC doit être pair (par exemple, fin en 0, 2, 4, 6, 8, A, C, E).

Ainsi, par exemple, 3b: 92: 22: cf: 55: 7e ne fonctionnerait pas car «3b» est étrange. Voir l' article sur l' adresse MAC de Wikipedia pour les détails (pair = unicast, impair = multicast).

Pour éviter ce problème, vous pouvez modifier légèrement votre commande random-MAC sed pour forcer le deuxième quartet à 0.

openssl rand -hex 6 | sed 's/\(..\)/\1:/g; s/./0/2; s/.$//'

Combiner cela avec la réponse de hrbrmstr a fonctionné pour moi:

sudo /System/Library/PrivateFrameworks/Apple80211.framework/Resources/airport --disassociate
sudo ifconfig en0 ether $(openssl rand -hex 6 | sed 's/\(..\)/\1:/g; s/./0/2; s/.$//')
networksetup -detectnewhardware
seren
la source
2
Cette méthode a fonctionné pour moi. Cela doit aller plus haut sur la liste de réponses.
Feng Huo
Une chose pour le raccourcir un peu: sudo /System/Library/PrivateFrameworks/Apple80211.framework/Resources/airport -z; sudo ifconfig en0 ether a0$(openssl rand -hex 5 | sed 's/\(..\)/:\1/g'); networksetup -detectnewhardware cela le rend un peu moins aléatoire.
Kevin Lyda
27

Vous devez dissocier l'appareil avant de modifier l'adresse MAC. Car en0, ce sera:

sudo /System/Library/PrivateFrameworks/Apple80211.framework/Resources/airport -z
sudo ifconfig en0 ether d4:33:a3:ed:f2:12
networksetup -detectnewhardware
hrbrmstr
la source
J'ai essayé ça, et ça n'a toujours pas fonctionné pour moi.
Feng Huo
@FengHuo, cela a fonctionné pour moi, le 10.11.2 (même si j'ai utilisé une adresse MAC différente)
Mint
Œuvre le 10.11.6
Paweł Szczur
2
Vous venez de rendre nos vacances en famille beaucoup plus agréables pour les parents. J'ai dû mettre l'Apple TV sur le réseau de l'hôtel derrière un écran de connexion et l'usurpation de l'adresse MAC a fonctionné un charme :)
stevenhaddox
6

Ferros a créé un outil de nœud doux pour faire exactement cela https://github.com/feross/spoof

Il a également une version Python https://github.com/feross/SpoofMAC

Tyler Buchea
la source
5
Installer node.js pour faire quelque chose qui peut être fait en exécutant simplement ifconfigsemble un peu exagéré ...
nohillside
2
Cela va sans dire que c'est une solution pour les utilisateurs de nœuds. Il a également une version Python (qui est préinstallée sur Mac) github.com/feross/SpoofMAC
Tyler Buchea
ifconfign'est pas multiplateforme; cette «surcharge de nœuds» fonctionne sous Windows, Linux et macOS. Plus $ spoof resetfait le contraire, en 2 mots.
fregante
4

Cette commande fonctionne bien pour moi, le script aléatoire que j'ai pris de cette réponse: https://serverfault.com/a/299564 de MadHatter.

sudo ifconfig en0 ether $(perl -e 'for ($i=0;$i<5;$i++){@m[$i]=int(rand(256));} printf "02:%X:%X:%X:%X:%X\n",@m;') && sudo ifconfig en0 down && sudo ifconfig en0 up
Tukan3
la source
1

Utilisez ceci

sudo ifconfig en0 lladdr d4: 33: a3: ed: f2: 12

Voir la page de manuel d'ifconfig

homme ifconfig

Clive819
la source
0

Voici ma contribution pour changer votre adresse MAC: https://gist.github.com/vinyll/b511159cce2d25edafe78403749088ca

#/bin/sh

# Instructions:
# 1. Copy this script locally and run the following `chmod +x mac-address-spoofer.sh`
# 2. Later, run the following: `./mac-address.spoofer.sh` and see your MAC address changing.

echo "origin MAC address: " `sudo ifconfig en0 ether | grep ether`
sudo ifconfig en0 ether `openssl rand -hex 6 | sed 's/\(..\)/\1:/g; s/.$//'`
echo "new MAC address: " `sudo ifconfig en0 ether | grep ether`
vinyll
la source
-1

Cela marche!

Pas:

  1. Obtenez l'adresse MAC de votre Apple TV et notez-la. Il se trouve dans les paramètres réseau.

  2. Obtenez l'adresse MAC de votre MacBook (version Yosemite OS). Tapez "ifconfig" dans une fenêtre de terminal. Ce sera dans la section "En0".

  3. Coupez / collez ce qui suit (en remplaçant les X par votre adresse MAC Apple TV) dans une fenêtre de test:

changer MAC OSX en Apple TV MAC

sudo /System/Library/PrivateFrameworks/Apple80211.framework/Resources/airport -z

sudo ifconfig en0 ether XX: XX: XX: XX: XX: XX

networksetup -detectnewhardware

  1. Entrez votre mot de passe si vous y êtes invité et répétez l'étape 3, si nécessaire **

  2. Reconnectez-vous à l'hôtel sans fil avec votre MAC (pas Apple TV) et acceptez les conditions de service.

  3. Coupez / collez ce qui suit dans la fenêtre du terminal (remplacez les Y par votre adresse MAC MAC OSX)

remplacer l'adresse MAC par l'original

sudo /System/Library/PrivateFrameworks/Apple80211.framework/Resources/airport -z

sudo ifconfig en0 ether YY: YY: YY: YY: YY: YY

networksetup -detectnewhardware

  1. Connectez-vous à l'hôtel sans fil avec votre Apple TV.
marque
la source
1
Comment cela est-il lié au problème décrit dans la question?
nohillside
-1
sudo ifconfig en0 ether `openssl rand -hex 5|perl -nE '$s.=join":",/../g}{say"02:$s"'`&& sudo ifconfig en0 down && sudo ifconfig en0 up

Mon est beaucoup plus intelligent :)

Mantovani
la source
Qu'est-ce qui rend votre réponse plus intelligente? Que signifie plus intelligent dans ce contexte?
Michael Ozeryansky