Cambiar la dirección MAC en OS X Yosemite

34

Por lo general, cambié mi dirección MAC con los siguientes comandos:

# 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

Cuando entro:

ifconfig en0 |grep ether

Todavía recibo la antigua dirección MAC :( - ¿Quién puede ayudarme? Me encantaría tener un script o sistema para cambiarlo automáticamente en el arranque del sistema.

Lupo
fuente
3
¿Has probado SpoofMAC ( pip install SpoofMAC)? Esto todavía funciona en Yosemite para mí.
L3viathan

Respuestas:

35

Un posible problema es que los MAC generados aleatoriamente fallarán la mitad del tiempo. El primer byte de una dirección MAC debe ser par (por ejemplo, terminar en 0, 2, 4, 6, 8, A, C, E).

Entonces, por ejemplo, 3b: 92: 22: cf: 55: 7e no funcionaría porque '3b' es extraño. Consulte el artículo de la dirección MAC de Wikipedia para obtener detalles (even = unicast, odd = multicast).

Para evitar este problema, puede editar ligeramente su comando sed aleatorio-MAC para forzar el segundo mordisco a 0.

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

Combinar esto con la respuesta de hrbrmstr funcionó para mí:

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
fuente
2
Este método funcionó para mi. Esto debe ir más arriba en la lista de respuestas.
Feng Huo
Una cosa para hacerlo un poco más corto: sudo /System/Library/PrivateFrameworks/Apple80211.framework/Resources/airport -z; sudo ifconfig en0 ether a0$(openssl rand -hex 5 | sed 's/\(..\)/:\1/g'); networksetup -detectnewhardware lo hace un poco menos aleatorio.
Kevin Lyda
27

Debe desasociar el dispositivo antes de cambiar la dirección MAC. Para en0, será:

sudo /System/Library/PrivateFrameworks/Apple80211.framework/Resources/airport -z
sudo ifconfig en0 ether d4:33:a3:ed:f2:12
networksetup -detectnewhardware
hrbrmstr
fuente
Intenté esto, y todavía no funcionó para mí.
Feng Huo
@FengHuo funcionó para mí, el 10.11.2 (aunque usé una dirección MAC diferente)
Mint
Funciona el 10.11.6
Paweł Szczur
2
Acabas de hacer que nuestras vacaciones familiares sean mucho más agradables para los padres. Tuve que poner el Apple TV en la red del hotel detrás de una pantalla de inicio de sesión y falsificar la dirección MAC funcionó de
maravilla
6

Ferros hizo una herramienta de nodo dulce para hacer solo esto https://github.com/feross/spoof

También tiene una versión de Python https://github.com/feross/SpoofMAC

Tyler Buchea
fuente
55
Instalar node.js para hacer algo que se puede hacer simplemente ejecutando ifconfigparece un poco exagerado ...
nohillside
2
No hace falta decir que es una solución para usuarios de nodos. También tiene una versión de Python (que viene preinstalada en Mac) github.com/feross/SpoofMAC
Tyler Buchea
ifconfigno es multiplataforma; ese "overkill de nodo" funciona en Windows, Linux y macOS. Plus $ spoof resethace lo contrario, en 2 palabras.
Fregante
4

Este comando funciona bien para mí, el script aleatorio que tomé de esta respuesta: 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
fuente
1

Utilizar esta

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

Consulte la página del manual de ifconfig

hombre ifconfig

Clive819
fuente
0

Aquí está mi contribución para cambiar su dirección 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`
vinil
fuente
-1

¡Esto funciona!

Pasos:

  1. Obtenga la dirección MAC de su Apple TV y anótelo. Se encuentra en la Configuración de red.

  2. Obtenga la dirección MAC de su MacBook (versión del sistema operativo Yosemite). Escriba "ifconfig" en una ventana de terminal. Estará en la sección "En0".

  3. Corte / pegue lo siguiente (reemplazando las X con la dirección MAC de su Apple TV) en una ventana temporal:

cambiar MAC OSX a la 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. Ingrese su contraseña si se le solicita y repita el paso 3, si es necesario **

  2. Vuelva a conectarse a la conexión inalámbrica del hotel con su MAC (no Apple TV) y acepte las condiciones del servicio.

  3. Corte / pegue lo siguiente en la ventana del terminal (reemplace las Y con su dirección MAC MAC OSX)

cambiar la dirección MAC a la original

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

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

networksetup -detectnewhardware

  1. Conéctese a la conexión inalámbrica del hotel con su Apple TV.
marca
fuente
1
¿Cómo se relaciona esto con el problema descrito en la pregunta?
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

Mi es mucho más inteligente :)

Mantovani
fuente
¿Qué hace que tu respuesta sea más inteligente? ¿Qué significa más inteligente en este contexto?
Michael Ozeryansky