viernes, 2 de noviembre de 2012

De los bloqueos por MAC y demas hierbas

Primer post desde la tierra Kiwi (aaah cierto, me fui a New Zealand de paseo un tiempo :D). Las primeras impresiones del país son muy positivas, limpio, ordenado, las cosas funcionan, PERO... Internet es prácticamente inexistente. Suena muy loco en un país tan desarrollado, pero aparentemente se puede vivir sin estar conectado 24x7 (APARENTEMENTE!!!).

Este va a ser un post sencillo, para evadir una restricción de igual naturaleza. Cuando uno se encuentra en una red LAN básicamente (redes tipo ethernet, 802.11 wi-fi y otras mas) se encuentra identificado por una dirección MAC (sisi, también por una dirección IP, pero en primera instacia solo por la dirección MAC, :D, don't panic!). Se dice que una dirección MAC (http://es.wikipedia.org/wiki/MAC_address) identifica unívocamente a un adaptador de red físico, consiste en 48 bits formados por 6 bloques de 8 bits. Por ejemplo: 00:16:1b:5f:57:c3. Se supone que esta dirección es propia del adaptador de red y NO se puede cambiar, por este motivo muchas veces es utilizada para restringir el acceso a los servicios en una LAN.
Bien, resulta ser de que esta dirección SI se puede cambiar. Cambiándola se pueden conseguir cosas muy interesante, como el famosos ataque de MIM (man in the middle, hombre en el medio), pero eso no viene al caso ahora :D. Cambiando esta dirección en una LAN sobre la que no tenemos control nos permite básicamente cambiar nuestra identidad y por ejemplo permitiría cambiar la dirección IP en caso de que el DHCP las asigne estáticamente o hacernos pasar por otro miembro de la red.

Las pruebas se hicieron sobre mi laptop y en particular sobre la interfaz wlan0 (el adaptador de red wifi).

Ver la dirección MAC actual:

juan@moon:~$ ifconfig wlan0
wlan0     Link encap:Ethernet  direcciónHW 00:16:1b:5f:57:c3 
          Direc. inet:172.31.62.24  Difus.:172.31.255.255  Másc:255.255.0.0
          Dirección inet6: fe80::216:1bff:fe5f:57c3/64 Alcance:Enlace
          ACTIVO DIFUSIÓN FUNCIONANDO MULTICAST  MTU:1500  Métrica:1
          Paquetes RX:17814 errores:0 perdidos:0 overruns:0 frame:0
          Paquetes TX:10555 errores:0 perdidos:0 overruns:0 carrier:0
          colisiones:0 long.colaTX:1000
          Bytes RX:12942393 (12.9 MB)  TX bytes:2236128 (2.2 MB)

juan@moon:~$


En este caso la MAC de mi adaptador wlan0 es 00:16:1b:5f:57:c3.

Posiblemente en alguna distribución se requiera permisos de root para utilizar ifconfig o utilizar el path completo /sbin/ifconfig. En ubuntu no es necesario :D.
Para facilitar la tarea del cambio de mac utilicé una aplicación llamada (extrañamente xD) macchanger (se puede obtener mediante: apt-get install macchanger).

Primero detenemos el servicio network-manager para que el adaptador de red no esté en uso:

root@moon:/home/juan# /etc/init.d/network-manager stop
Rather than invoking init scripts through /etc/init.d, use the service(8)
utility, e.g. service network-manager stop

Since the script you are attempting to invoke has been converted to an
Upstart job, you may also use the stop(8) utility, e.g. stop network-manager
network-manager stop/waiting


Cambiamos la dirección MAC por una aleatoria utilizando macchanger. El parámetro -a indica que la MAC a asignar será aleatoria y de cualquier fabricante, y luego se indica sobre qué adaptador de red debe hacer el cambio (wlan0 en este caso):

root@moon:/home/juan# macchanger -a wlan0
Permanent MAC: 00:25:e2:24:24:1a (Azurewave Technologies, Inc)
Current   MAC: 00:16:1b:5f:57:c3 (Micronet Corporation)
New       MAC: 00:14:7b:74:b2:95 (Iteris, Inc.)


Iniciamos nuevamente el network-manager:

root@moon:/home/juan# /etc/init.d/network-manager start
Rather than invoking init scripts through /etc/init.d, use the service(8)
utility, e.g. service network-manager start

Since the script you are attempting to invoke has been converted to an
Upstart job, you may also use the start(8) utility, e.g. start network-manager
network-manager start/running, process 3171


Y ahora comprobamos la nueva configuración del adaptador wlan0:

juan@moon:~$ ifconfig wlan0
wlan0     Link encap:Ethernet  direcciónHW 00:14:7b:74:b2:95 
          Direc. inet:172.31.65.63  Difus.:172.31.255.255  Másc:255.255.0.0
          Dirección inet6: fe80::214:7bff:fe74:b295/64 Alcance:Enlace
          ACTIVO DIFUSIÓN FUNCIONANDO MULTICAST  MTU:1500  Métrica:1
          Paquetes RX:25972 errores:0 perdidos:0 overruns:0 frame:0
          Paquetes TX:14249 errores:0 perdidos:0 overruns:0 carrier:0
          colisiones:0 long.colaTX:1000
          Bytes RX:14604765 (14.6 MB)  TX bytes:3433891 (3.4 MB)

juan@moon:~$


Vemos que cambió la dirección MAC y también la dirección IP, dado que el servidor DHCP identificó a la dirección MAC como un nuevo dispositivo y le asignó una IP diferente a la anterior. Con esto nos alcanza para evadir ciertas restricciones como cuando nos limitan a por ejemplo una X cantidad de MB diarios gratis, generalmente este tipo de controles se realizan por MAC.

Otra posibilidad que nos brinda macchanger es elegir qué MAC ponerle al adaptador de red, ya se imaginarán para que puede servir eso jajaja.