Seguridad: Spoofing. Capítulo Segundo -> MAC Spoofing
- Martes, 2 de febrero del 2010
- Publicado en Artículos . Internet . Programas . Seguridad . Windows
- Por Theliel
- Publicar un comentario
ATENCION: Los ejemplos que se van a mostrar y “tutoriales” tan solo tienen carácter educativo. En ningún aspecto comparto filosofías de invasión a la intimidad, ataques contra un sistema informático o cuestiones similares. En la medida que sea posible siempre se usarán ejemplos y formas que puedan ser usados por cualquier persona, de forma que pueda verificar los contenidos escritos. No obstante, por motivos más que obvios, materiales como contraseñas, nombres de usuarios o de hosts, serán omitidos o modificado en las capturas de pantallas realizadas (o las lineas escritas). Es decir, los ejemplos serán completamente reales, los datos mostrados a vosotros necesarios para poder pertrechar estos ejemplos no siempre lo serán (Sí lo serán los resultados). Para que esto conste de forma clara, todo material sensible modificado o falso estará resaltado en ROJO. Por motivos de seguridad, todo el material que sea expuesto aquí (exceptuando software propietario o libre, citaciones expresas o código de terceros) tanto texto, imágenes y código son propiedad del autor y está completamente prohibido su reproducción completa o parcial en otros lugares, espero que se comprenda.
MAC Spoofing
Mientras que podemos decir que la IP es la dirección de nuestros dispositivos y nodos de red, esto tan solo es cierto a partir del nivel 3 del modelo OSI (Nivel de Red). Por debajo del nivel 3 (el Nivel 2 o Nivel de Enlace de datos y Nivel 1 o Nivel físico), tan solo se entiende de direcciones MAC. La dirección MAC es un ID compuesto por 6 octetos que es grabado a cada dispositivo de red en fábrica. Así, los 3 primeros octetos son asignados a cada empresa (las empresas deben de comprar su ID), y los siguientes 5 octetos son administrados por la empresa como ella quiera, normalmente según modelos y otros. No obstante, en el primer octeto (el más significativo) queda reservado sus dos últimos bits. Si el bit 7 es un ’1′ la MAC establecida no pertecene a nadie, usada para asignación manual y ’0′ si pertenece a una empresa (o aun está disponible para comprarla para ser asignada). Si el bit 8 del primer octeto es un 1, la direccin MAC pertenecerá a una dirección Multicast (Mismo grupo de direcciones, para poder enviar datos simultaneos a varios clientes), mientras que si es ’0′ la dirección será Unicast, es decir, individual.
Sabiendo esto, hay que comprender la importancia de una dirección MAC. Dependiendo del ámbito en el que estemos, tendrá una importancia mayor o menor. Si nos encontramos en una red Local ethernet su importancia es mayor incluso a la IP, dado que incluso la IP de cada dispositivo podemos decir que está “asociada” a cada MAC (luego veremos esto en detalle). En cambio, por encima de nuestra red local su importancia puede ser mucho menor. Por ejemplo, para nuestro ISP ADSL la MAC de nuestro router no es importante, dado que la IP que nos asigna nuestro proveedor no está basada en MAC alguna, sino que la IP se asigna mediante protocolo PPPoE (usuario y contraseña) y la conexión es directa a nuestra casa. En cambio en conexiones cables sí la MAC es importante, dado que es esta la que suele reconocer el proveedor por cable para asignar incluso la velocidad de conexion.
¿Cual es el sentido pues de MAC Spoofing? El mismo que en IP Spoofing básicamente:
- Suplantación de identidad
- Acceso a servicios no contratados
- Evasión de filtros MAC
- Anonimato
- Envenenamiento ARP
Hay que tener en cuenta que las direcciones MAC suelen actuar a un nivel más básico que IP, esto puede ser bueno o malo según se mire. Para poder entender la importancia de estas direcciones, hay que entender como funcionan o por qué. ¿Como sabe un Router o un Switch a que destino enviar un paquete? La respuesta que se pueda esperar es la IP de dicho cliente claro, pero esto no soluciona el problema. Para que el paquete se dirija a una IP concreta, esa IP debe de estar asociada de alguna manera a un medio físico, un ID único… y esta es la MAC. Dado que la MAC en teoría es única, los dispositivos de red guardan tablas de equivalencias entre estas IPs y sus respectivas MACs. Si un paquete llega a un Switch, el Switch mirará en su tabla que puerto ethernet (en redes ethernet) corresponde a la MAC destino, y será por dicho puerto o interfaz por donde envíe el paquete. Se podría pensar que la IP por tanto podría suprimirse, pero nada mas lejos!! al igual que la MAC es completamente necesaria. Cuando un dispositivo se conecta a un Switch pro ejemplo, lo único que posee este es una MAC. El Switch registra esta MAC en su tabla y de este modo conocerá en que puerto está conectado. A partir de este momento se realiza la asignación de IPs y bueno… esto se comprenderá mejor cuando se explique el envenenamiento ARP (ARP es un protocolo para asociar IPs a MACs, por así decirlo).
Por tanto, al igual que con IP Spoofing, el empleo de MAC Spoofing puede ser usado para la suplantación de identidad. Si la dirección MAC es única a cada dispositivo, podemos suponer que esta virtud puede ser usada en multitud de sistemas para mejorar la seguridad de estos. Uno de los usos más extendido de esto es la misma premisa que con IP Spoofing. Si podemos ocultar nuestra MAC podemos ocultar un ID que es único para nuestro adaptador. También podemos cambiarlo por otro que pertenezca a un cliente legítimo para hacernos pasar como si fuésemos ellos mismos. Un ejemplo extendido a esto, cuando se desea engañar a un router que esté asignando direcciones IPs de forma estática dependiendo de su dirección MAC. Dicha IP concreta tan solo es posible obtenerla con una MAC concreta, y con dicha IP concreta y MAC concreta podremos simular ser un cliente quizás legítimo en la red.
Veamos un ejemplo de MAC Spoofing para obtener una IP que no podríamos obtener de forma legítima:
La red está configurada para asignar IPs de forma dinámica por medio de DHCP dentro del rango 192.168.2.100-192.168.2.150. Por otro lado la red está configurada para que el rango 192.168.2.2-192.168.2.20 tenga acceso tanto al router como a otras tareas de administración. Por seguridad, dicho rango tan solo es asignado de forma estática por el router según la MAC del cliente. Aun cuando se intentase una asignación IP manual dentro de dicho rango, si la MAC no pertenece a dicha IP, el router no le concederá acceso a la red. A través de MAC Spoofing modificaremos nuestra MAC para que coincida por la de un cliente válida.
Fase 1: Conexión estandar al router de un cliente cualquiera:
Anarchy:/home/theliel# nmap -n -sP 192.168.2.1-255
Starting Nmap 5.21 ( http://nmap.org ) at 2010-01-30 23:18 CET
Host 192.168.2.1 is up (0.00057s latency).
MAC Address: 00:25:9C:11:22:33 (Cisco)
Host 192.168.2.2 is up (0.00055s latency).
MAC Address: 00:24:8C:11:22:33 (Asustek Computer)
Host 192.168.2.3 is up (0.00016s latency).
MAC Address: 00:24:8C:22:33:44 (Asustek Computer)
Host 192.168.2.8 is up (0.0092s latency).
MAC Address: 00:1C:BF:11:22:33 (Intel Corporate)
Host 192.168.2.13 is up (0.00039s latency).
MAC Address: 00:1D:60:33:44:55 (Asustek Computer)
Host 192.168.2.131 is up.
Nmap done: 255 IP addresses (6 hosts up) scanned in 3.94 seconds
Con el escaner anterior tendríamos listados todos los host conectados, así como la dirección MAC de cada uno de ellos. Para el último host, no se muestra su MAC dado que es el “atacante” que ha realizado el escaner. Como se puede obsevar tenemos host pertenecientes a la red “segura” y la IP del atacante asignada por DHCP. Por otro lado los datos de red del atacante:
Anarchy:/home/theliel# ifconfig
eth0 Link encap:Ethernet HWaddr 00:11:22:33:44:55
inet addr:192.168.2.131 Bcast:192.168.2.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fefe:567d/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:4323 errors:0 dropped:0 overruns:0 frame:0
TX packets:5107 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:5075469 (4.8 MiB) TX bytes:433030 (422.8 KiB)
C:\Users\Theliel>ipconfig /all
Configuración IP de Windows
Adaptador de Ethernet Local Area Connection:
Sufijo DNS específico para la conexión. . :
Descripción . . . . . . . . . . . . . . . : Marvell Yukon PCI-E Gigabit Ethernet Controller
Dirección física. . . . . . . . . . . . . : 00:11:22:33:44:55
DHCP habilitado . . . . . . . . . . . . . : sí
Configuración automática habilitada . . . : sí
Dirección IPv4. . . . . . . . . . . . . . : 192.168.2.131(Preferido)
Máscara de subred . . . . . . . . . . . . : 255.255.255.0
Fase 2: MAC Spoofing
Con los datos de los hots anteriores, podemos realizar el cambio de MAC de una forma muy simple por otra que corresponda a un host que pertenezca a la sección segura. Por razones evidentes, lo ideal es realizar el cambio en un momento en el que el host a sustituir no esté conectado en dicho momento, sino produciría un conflicto entre los dos hots. En este caso vamos a hacernos con el host 192.168.2.13.
Anarchy:/home/theliel# ifconfig eth0 hw ether 00:1D:60:33:44:55
Anarchy:/home/theliel# ifconfig
eth0 Link encap:Ethernet HWaddr 00:1D:60:33:44:55
inet addr:192.168.2.131 Bcast:192.168.2.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fefe:567d/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:4466 errors:0 dropped:0 overruns:0 frame:0
TX packets:5197 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:5091981 (4.8 MiB) TX bytes:445543 (435.1 KiB)
Fase 3: Renovación IP por DHCP.
Dado que la IP ha sido asignada previamente por DHCP, es necesario renovar la IP para que el router reasigne la IP de la MAC falseada:
Anarchy:/home/theliel# dhclient
Internet Systems Consortium DHCP Client V3.1.3
Copyright 2004-2009 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Listening on LPF/eth0/00:1D:60:33:44:55
Sending on LPF/eth0/00:1D:60:33:44:55
Sending on Socket/fallback
DHCPREQUEST on eth0 to 255.255.255.255 port 67
DHCPNAK from 192.168.2.1
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 4
DHCPOFFER from 192.168.2.1
DHCPREQUEST on eth0 to 255.255.255.255 port 67
DHCPACK from 192.168.2.1
bound to 192.168.2.13 — renewal in 2147483648 seconds.
C:\Users\Theliel>ipconfig /renew
Configuración IP de Windows
Adaptador de Ethernet Local Area Connection:
Sufijo DNS específico para la conexión. . :
Dirección IPv4. . . . . . . . . . . . . . : 192.168.2.13
Máscara de subred . . . . . . . . . . . . : 255.255.255.0
Puerta de enlace predeterminada . . . . . : 192.168.2.1
Esto que parece realmente muy sencillo, puede resultar tremendamente útil para un atacante en multitud de escenarios. Por ejemplo cuando se desea evadir un filtrado MAC (típico en las conexiones WIFI) para poder acceder a la red. Numerosos AP de bares, particulares, redes públicas… poseen filtrados MAC para permitir o denegar la conexión a sus redes. Dado que no estamos conectados físicamente a la red no podemos hacer uso de escaneos de puertos y otros sistemas, pero en cambio podemos usar utilidades para poder escanerlas, como por ejemplo Airodump-ng. Una vez optenidas MAC válidas que pueden conectarse al AP, podemos proceder a modificar la nuestra tal y como se ha explicado con anterioridad:
CH 13 ][ Elapsed: 30 sec ][ 2010-01-31 01:57 ]
BSSID PWR Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID
00:25:9C:11:22:33 - -70 120 57 0 13 54e WPA2 CCMP PSK Theliel
BSSID STATION PWR Rate Lost Packets Probes
00:25:9C:11:22:33- 00:1C:BF:11:22:33 - 32 54-0 7 245 Anarchy
(not associated) -00:1C:BF:22:33:44 - 7 11-0 5 23
Anarchy:/home/theliel#airodump-ng -c 13 -w dump wlan0
Dentro también de las aplicaciones prácticas de ello podría incluirse la piratería de conexiones a Internet instaladas por algunos ISP de cable. Esta tecnología suele usar un cable de fibra óptica que es común a una zona de abonados. La conexión a estos ISP es simple, tan solo hace falta un módem suministrado por ellos y un terminal que conectar a dicho módem. Luego la pregunta es inmediata. Si el cable es común a todos los abonados y no se requiere de ningún tipo de identificación ¿Cómo conoce/diferencia el ISP al cliente conectado o que servicios tiene contratado? Por la MAC de dicho módem, ni más ni menos. Si se modificase la MAC de nuestro módem por una que tenga contratada 10MB, en teoría, a efectos prácticos nuestro ISP nos daría esos 10MB. El problema evidentemente es modificar la MAC de dichos Módem, los cuales la mayoría de las veces es necesario realizarlo mediante una modificación hardware.
Por último, la técnica de MAC Spoofing juega un papel fundamental en los ataques de envenenamientos ARP, pero esto será tratado en otro artículo.
Hemos hablado de aplicaciones prácticas, pero ¿Cómo podemos evitar este tipo de ataques a nuestros sistemas? Al igual que dijimos en IP Spoofing, usar siempre que sea posible protocolos seguros como IPSec en los que sea necesario tunelizar todo el tráfico dentro de una misma red. Por otro lado separar físicamente las redes que serán usadas para propósitos diferentes, y si se requiere, colocar un firewall en la puerta de entrada a las partes sensibles de nuestra red. Por otro lado, si la estructura de nuestra red es relativamente estable, el uso de tablas MAC estáticas asignadas específicamente a cada uno de los puertos de nuestro Switch.
En cambio proteger nuestra red contra MAC Spoofing es más complicado, por ello la única seguridad que podemos aplicar es en primer lugar no permitir conexiones wifi cuando sea posible, y si se deben de usar, usar siempre un nivel de encriptación mínimo de WPA2-PSK, siendo prácticamente obligado el uso de WPA2 más algún protocolo EAP, trabajando así con servidores Radius y certificados digitales. Pero desde luego nunca presuponer que un filtrado MAC garantizará absolutamente nada.


Hola, muy completo tu articulo, pero sucede que se me presenta un problema cuando escaneo la red con nmap -n -sP , ya que la mac que me da para la serie de ip es la misma en todas:
Hola, muy completo tu articulo, pero sucede que se me presenta un problema cuando escaneo la red con nmap -n -sP , ya que la mac que me da para la serie de ip es la misma en todas: 00:30:B8:CC:58:A0 (RiverDelta Networks), me podrias explicar por que?
No me das muchos datos, así que vamos por partes:
hace ya tiempo que -sP es obsoleto (la sintaxis), desde hace un tiempo se usa -sn,aunque el escaner es exactamente el mismo. Personalmente creo qeu se cambió para precisamente no confundir con un escaner ping.
Aunque el mismo nmap dice que se trata de descubrimiento de equipos por ping, esto NO ES CIERTO. -sn (o -sP) en realidad es un sistema para descubrimiento de host basados en ARP, no en paquetes ICMP ping. Esto es muy importante, pq no tiene absolutamente nada que ver una cosa con la otra. -sn lo que realiza es una petición ARP de todos los hosts especificados. Por ejemplo
nmap -sn 192.168.0.1/24
Lo que realizará será enviar una petición ARP a cada una de las 256 direcciones, desde la 192.168.0.0-192.168.0.255. Si sabes que es ARP perfecto, sino el capítulo tercero explicaba perfectamente que es.
Estas peticiones ARP se envían a la dirección MAC de broadcast, es decir ff:ff:ff:ff:ff:ff:
mensaje ARP: Quien es la IP 192.168.0.x? -> enviar a todos los equipos de la red, contestar a equipo CarlGarcia (con IP tal y MAC tal). Si por ejemplo el host con ip 0.5 está en la red conectado y en linea, cuando reciba la petición ARP para la IP 0.5 responderá con una respuesta ARP al host que realizó la petición, con lo que el host que realizó el escaner tendrá respuesta por cada uno de los host que RESPONDIERON.
Ahora bien. Que puede estar pasando? Dos puntos interesantes:
-los mensajes ARP se envían a toda la red, son visibles para TODOS
-Hoy por hoy todos tenemso Switchs, con lo que si un hosts se encuentra disponible (a menos que esté configurado para no responder a paquetes ARP, lo cual es muy pco probable) contestará de manera fial.
Si unimos estaos dos premisas yo sacaría en claro lo siguiente:
El router.
Una de tres:
1º. No había en dicho momento ningún host conectado a la red y la caché ARP del router contestó a cada una de las peticiones como si fuese el mismo todos los hosts. No conozco ningún router que se comporte así, pero supongo que podría ser configurado para tal fin. No creo que sea esta de todos modos la respuesta correcta
2º. Todo el tráfico de la red local está siento “rutado”, es decir, pasado por el router. En teoría, en las redes de hoy en día tenemos Switchs, que por decirlo de algún modo (aun no tengo terminado el capítulo 4º) conectan directamente los dos equipos que tienen que entablar la comunicacion. La teoría dice que a una peticion ARP, la respuesta irá directamente al host que realizó la petición, sin pasar por el router, directamente gracias al Switch. Si no es el caso primero, lo que nos quedaría es que todo el tráfico estaría entrando en el router, lo que me dice que sería algún Switch con prestaciones avanzadas que permitiese la separación de cada uno de sus puertos.
Este ultimo sistema tan solo puede ser util en grandes redes en las que no se permiten además la comunicación entre dos hosts, así cada host está completamente aislados de la red: Host aislados, redes grandes, dispositivos relativamente avanzados… todo ello me haría pensar en una red pública tipo… ¿una red de alguna Universidad tal vez? Quizás una biblioteca… cosas así, donde se desea dar acceso a muchas personas pero eliminando la red local.
3º. Y por último, que el propio Switch tuviese alguna protección para el envenenamiento ARP y que a partir de X peticiones ARP él mismo las desechase y entregase simplemente una MAC cualquiera (Suya, del router…), aunque no es algo normal, recordemos
De las tres opciones yo me quedaría con la 2º. En realidad no hay que ser tan estricto y decir que no hay comunicación entre dos equipos, es simplemente lógica. Si todo pasa por el router, la sobrecarga de este sería brutal, pensemos por ejemplo en que 10 host estén transfiriendo archivos de unos a otros como locos… TODO pasaría por el router!! Yo apuesto por la segunda
Se me está ocurriendo que podría ser tb una red bastante más amplia, y que estés intentando escanear un segmento de tu ISP, a fin de cuentas muchos ISP en todo el mundo usan redes “LAN” entre todos sus clientes para proporcionar acceso a internet. Es decir… cientos miles de clientes conectados todos a una red, y los equipos del ISP son los que una vez en ellos multiplexan y rutean los datos de todos los clientes.. quizás alguna cablera o algun ISP que brinde servicios a través de redes inalámbricas.
Pero aun así, la explicación sería la mismal, el punto segundo.