Inundación de MAC con MACOF

Para entender un poco mejor este ataque primero tenemos que saber lo que es la tabla CAM (Content Addressable Memory)o memoria de contenido direccionable, en esta tabla el switch anota, entre otras cosas, el puerto y la dirección MAC a medida que va recibiendo paquetes.

¿Qué es?

Lo que hace MACOF es inunda la tabla CAM del switch de direcciones MAC aleatorias, por lo que las nuevas direcciones MAC no se pueden guardar y el switch empieza a enviar los paquetes a todos los puertos (como un hub) y, por lo tanto, podemos monitorear el tráfico que pasa a través de él.

Opciones de sintaxis:

  • i:interfaz Especifique la interfaz a enviar. Ejemplo: -i eth0
  • s:src Especifique la dirección IP de origen.Ejemplo: -s 192.168.41.11
  • d:dst Especifique la dirección IP de destino. Ejemplo: -d 192.168.1.1
  • e:Especifique la dirección de hardware de destino. Ejemplo: -e AA:BB:CC:00:11:22
  • x:deporte Especificar puerto de origen TCP.
  • y:dport Especifique el puerto de destino TCP.
  • n:veces Especifique el número de paquetes a enviar. Ejemplo: -n 25

Inundación simple o dirigida:

La inuncadión simple consiste en lo que hemos visto anteriormente, MACOF envía tramas aleatorias llenando la tabla CAM del switch, éste se comporta como un hub enviando todos los paquetes que le llegan por todos sus puertos y pudiendo monitorear el tráfico de la red.

ejemplo: macof -i eth0 -d 192.168.1.1

Contramedidas:

  • Podemos limitar el número de direcciones MAC que se conectan a un solo puerto en el Switch.
  • Implementación de 802.1X: ofrece un mecanismo de autenticación para dispositivos que deseen unirse a uno de los puertos de acceso.
  • Filtrado de MAC: limita el número de direcciones MAC

Ataque con MACOF:

Para empezar con el ataque, lo primero que tendremos que hacer es conectarnos a un switch y estar en su mismo segmento de red. A continuación, tenemos que tener Kali Linux en una máquina virtual, ya sea VMWare, virtual box, etc.

El esquema de red sería algo así:

imagen1
Esquema de red

Primero de todo vamos a cerciorarnos de que nuestras máquinas estén conectadas al switch, para esto vamos a nuestro navegador y escribimos la siguiente dirección: 192.168.1.1. En la pestaña llamada “clientes” vemos cómo hay 4 máquinas conectadas (tres máquinas físicas y una máquina virtual con Kali Linux):

imagen 8
Clientes en la red

Una vez ya conectados nos vamos a la máquina con Kali, abrimos un terminal y escribimos el siguiente comando: “man macof”, lo que nos muestra el comando “man” es una ayuda sobre el programa que queramos ejecutar, como podemos observar, nos muestra parámetros que podemos utilizar junto al comando “macof”

imagen9
Opciones de MACOF

En la imagen 8 vemos cómo nuestra máquina está configurada con una dirección IP estática, para aprenderá configurarla de esta manera seguimos los siguientes pasos:

1-. Volvemos al terminal y escribimos: nano /etc/network/interfaces

imagen10
Nano

2-. Ahora introducimos los siguientes parámetros:

imagen11
Interfaz eth0 estática

3-. Ejecutamos el comando “ifdown eth0“y después “ifconfig eth0”:

imagen12
Ifdown eth0

4-. Como podemos observar ahora no tenemos dirección IP, esto es porque hace falta “levantar” el adaptador, para ello ejecutamos el comando “ifup eth0”:

imagen13
Ifup eth0

Después de este inciso abrimos un Wireshark para comprobar que el tráfico de red que generen las dos máquinas restantes podemos tener acceso a ellos. Lo podemos abrir buscándolo o desde el terminal:

imagen14
Wireshark

De las interfaces de red que nos salen elegimos “eth0”

imagen15
Capture eth0

Volvemos al terminal y escribimos “macof –i eth0 –d 192.168.1.1”:

imagen16
Ataque MACOF dirigido
imagen17
Realizando el ataque

Ahora abrimos un Wireshark y vemos cómo nos llega todo el tráfico generado por la máquina1 a la máquina2 en forma de ping (paquetes de tipo ICMP)

imagen18
Capturando paquetes ICMP

Vemos cómo la máquina1 (1.0.0.70) envía pings a la máquina2 (1.0.0.2) y yo tengo la IP 1.0.0.69:

imahgen19
IP 1.0.0.69

Conclusiones:

En el último ejercicio se encuentran direcciones IP de diferentes redes, como por ejemplo la 192.168.1.230 y la 1.0.0.70, esto se debe a que hemos intentado hacer el ejercicio varios días y cada día le asignábamos IP diferentes.

Nos costó mucho tumbar al switch y cuando por fin lo hacíamos, Wireshark no nos mostraba el tráfico de red así que decidimos hacer el ejercicio con un switch diferente, en este caso uno de Cisco SG300-28 de 28 puertos Gigabit.

Para más información

Enlace a la práctica

Enlace al vídeo

Deja un comentario