¿Es posible cambiar la dirección MAC de mi tarjeta de red?

Un breve tutorial sobre que es y como cambiarle la dirección MAC a una tarjeta de red
Alejandro Garrido Mota, <garridomota@gmail.com>


  1. ¿Qué es la dirección MAC de una tarjeta de red?
  2. Alterando la dirección MAC
  3. ¿Cómo la instalamos?
  4. ¿Cómo lo uso?
  5. Copyrigth y licencia.


1. ¿Qué es la dirección MAC de una tarjeta de red?

Si ya tienes idea sobre los conceptos básicos sobre las direcciones MAC te recomiendo que saltes esta parte y empieces a leer "Alterando la dirección MAC".

Es importante tener claro que las tarjetas de red son únicas en el mundo, es decir, no pueden haber dos tarjetas de red iguales. Es casi seguro que existan dos tarjetas de red iguales pero en diseño electrónico y en los circuitos que posean pero lo que verdaderamente hace que cada tarjeta de red del planeta tierra sea _distinta_ a otra es que las dos poseen una dirección que es única, esta dirección está formada por números y letras(en realidad por bits). A esta dirección única se le acordó llamar MAC, que es el acrónimo de "Media Access Control address".

Por ejemplo, la dirección MAC de mi tarjeta de red es "00:E0:7D:F9:EA:6D", ¿Cómo lo se? mas adelante hablaremos sobre eso pero lo que quiero que noten es que es una dirección formada por números y letras. Esa dirección MAC de mi tarjeta de red es única, ninguna otra tarjeta de red en el mundo tiene la misma dirección MAC que la mía, por lo que quiere decir que jamas verán un tarjeta de red con la siguiente dirección: 00:E0:7D:F9:EA:6D.

Seguro estarán pensado, ¿Cómo hacen los fabricantes de hadware para que por coincidencia no se repitan las direcciones MAC en una tarjeta de red? La respuesta a esto es sencilla, en pocas palabras se ponen todos de acuerdo y listo, ¿Cómo así? La dirección MAC está conformada por 48 Bits, por lo que la IEEE(The Institute of Electrical and Electronics Engineers o Instituto de Ingenieros Eléctricos y Electrónicos) es la que le asigna los primeros 24 bits a los fabricantes de tarjetas de red y los otros 24 bits quedan a elección del fabricante de tarjetas de red. Por supuesto bajo supervisión y respetando que no se repitan ninguna dirección MAC.

2. Alterando la dirección MAC

Primero que nada, antes de empezar a explicar como alterar la dirección MAC de una tarjeta de red tengo que explicarles como averiguar la dirección de dicha tarjeta. Tienes dos formas(al menos yo conozco estas dos) de averiguar la dirección MAC de una tarjeta de RED:

  1. Ejecutar el comando: ifconfig eth0 y buscar el campo que dice HWaddr:. El argumento eth0 significa la interfaz de red(o la tarjeta de red), recordemos que las tarjetas de red en Unix/Linux se denotan con ethX dónde X es el número de tarjeta de red, si sólo tenemos una será eth0, si tenemos dos será eth0 y eth1 y así sucesivamente. A continuación del campo HWaddr: se debe encontrar la dirección MAC. Por ejemplo en mi caso aparece así: HWaddr 00:E0:7D:F9:EA:6D

  2. La otra manera es desarmando nuestra máquina y ojeando la tarjeta de red, deberíamos encontrar un papelito adhesivo con la dirección MAC de la tarjeta.

Bien, ya hemos visto como visualizar la dirección MAC de cualquier tarjeta de RED. Ahora ¿Cómo hacer si queremos cambiar la dirección MAC de la tarjeta de red? Hay dos respuestas a esto, o mejor dicho sólo conozco dos respuestas a esto, es decir, conozco dos maneras de cambiarle la dirección MAC a una tarjeta de red. Seguidamente voy a explicar la primera

La manera más sencilla de alterar la dirección MAC de una tarjeta de red es utilizar una herramienta que me permita hacer esto, nosotros vamos a utilizar MACchanger. Esta herramienta es Software Libre y está liberada bajo una licencia GPL. Aclaro que es muy pero muy sencillo de usar.

3. ¿Cómo la instalamos?

4. ¿Cómo lo uso?

Primero que nada no debemos olvidar que para poder cambiar la dirección MAC debemos tener la red abajo, es decir, bajar las interfaces de red. ¿Cómo hacemos esto?

# /etc/init.d/networking stop

Si nuestro sistema no tiene este script podemos bajar las interfaces con ifconfig de la siguiente manera:

# ifconfig INTERFAZ down

En mi caso viene siendo así:

# ifconfig eth0 down

Una vez que tenemos las interfaces de red desactivadas es que podemos proceder a interactuar con la la dirección MAC de nuestra tarjeta de Red. Primero que nada debemos de llamar al programa que va a actuar sobre la dirección MAC. Lo invocamos de esta manera:


  $ macchanger
  
  GNU MAC Changer
  
  Usage: macchanger [options] device
  
  Try 'macchanger --help' for more options.

Ya con ejecutar este comando nos damos cuenta de que se instaló correctamente el programa, si se fijan bien nos da una salida indicándonos que nos faltan opciones y argumentos para utilizar el programa. Si le pasamos la opción --help vamos a tener la ayuda sobre la sintaxis del programa.

Bien Ahora vamos al grano. Ya tenemos las interfaces de red desactivadas y lo que falta es cambiar la dirección MAC de nuestra tarjeta de red. Recomiendo que anotes tu verdadera MAC(recuerda en la sección anterior como ver tu dirección MAC) antes de empezar a jugar con MACchanger una hecho eso ya puedes empezar a juguetear con el programa.

Estas son las principales opciones que se le puede pasar al MACchanger. Opciones con la que nos permitirá controlar distintos aspectos que tendrá la dirección MAC a alterar.

  1. --help <-- Nos da una ayuda acerca de la sintaxis y uso del programa
  2. --version <--Nos imprime en la pantalla la versión del MACchanger que estamos usando
  3. --endding <-- Esta opción genera una nueva dirección MAC sin cambiar los bit del vendedor
  4. --random <-- Genera una MAC aleatoriamente
  5. --mac XX:XX:XX:XX:XX:XX <-- Aquí nosotros mismos definimos la dirección MAC que queremos para nuestra tarjeta de red

4.1. Algunos ejemplos

Aquí voy a poner algunos ejemplos donde cambio la dirección MAC de mi tarjeta de red:


  # macchanger --endding eth0
  
  Current MAC: 00:e0:7d:f9:ea:6d (Netronix, Inc.)
  
  Faked MAC:   00:e0:7d:eb:fa:f1 (Netronix, Inc.)

Aquí estamos cambiando nuestra dirección MAC por otra dirección que pertenece al mismo vendedor de nuestra tarjeta de red. La última linea del comando(La que dice 'Fake MAC') es la que nos indica la nueva dirección MAC que posee nuestra tarjeta de red. La primera linea nos dice que la MAC que teníamos antes de hacer el cambio, y la segunda linea nos dice ya la dirección MAC falsificada.


  # macchanger --mac 00:5D:6E:4D:5W:4B eth0
  
  Current MAC: 00:e0:7d:eb:fa:f1 (Netronix, Inc.)
  
  Faked MAC:   00:5d:6e:4d:05:4b (unknown)

En este ejemplo estoy introduciendo manualmente la dirección MAC de mi tarjeta de red. ¿Por qué ese número? Lo acabo de inventar, ni siquiera lo pensé, lo invente y lo coloqué. Por supuesto que ustedes pueden agarrar y colocar por ejemplo la dirección MAC de alguna otra máquina. De hecho noten que el programa no me coloca entra parénesis el nombre de la empresa que la fabrica, me coloca 'unknown' ya que no reconoce el la compañia, lo cual es lógico porque es la dirección MAC es inventada.


  # macchanger --random eth0
  
  Current MAC: 00:e0:7d:f9:ea:6d (Netronix, Inc.)
  
  Faked MAC:   54:c6:0b:29:73:e5 (unknown)

En este ejemplo pueden notar que estoy generando una dirección MAC aleatoriamente. Una dirección MAC que no pertenece a ninguna empresa que fabrique tarjetas de Red, en pocas palabras una dirección MAC que nos existe.

4.2. Otra manera de cambiar la dirección MAC de nuestra tarjeta de red

También es posible utilizar el mismo programa ifconfig para cambiar la MAC de nuestra tarjeta de red. Lo haríamos de la siguiente manera:

# ifconfig eth0 hw ether 00:01:02:03:04:08

Creo que está demás decir que igualmente necesitas tener todas las interfaces de red detenidas, si no es así probablemente te dará un error como este: SIOCSIFHWADDR: Dispositivo o recurso ocupado

Si te fijas bien con el comando ifconfig estamos seleccionando la interfaz a la cual le queremos cambiar la dirección MAC y luego le estamos diciendo que es una dirección MAC lo que queremos cambiar (esto se lo decimos con la opción 'hw').

5. Copyrigth y licencia.

Copyright (c) 2006 Alejandro Garrido Mota.

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".