Cargando



Ataque Man in the Middle MitM (ARP Spoofing) simple

Tutorial de Seguridad IT que describe la mecánica de un ataque del tipo Hombre en el Medio (MitM) utilizando la técnica ARP Spoofing con ARP Poisoning.


nov 06 2014 23:12
Profesional
oct 31 2016 22:24

¿Qué es ARP Spoofing?
La técnica ARP Spoofing consiste básicamente en explotar una vulnerabilidad de diseño del protocolo ARP y la implementación de caché ARP en los hosts.

 

En la capa de Red (ISO/OSI) los sistemas origen y destino quedan bien definidos por sus direcciones IP, pero a nivel de la capa de Enlace, es necesario determinar las direcciones MAC de cada host.

 

ARP (RFC 826) es un protocolo de traducción de direcciones entre dos esquemas de direccionamiento diferentes, tal y como ocurre entre el protocolo IP y el protocolo MAC. Básicamente su función en una red Ethernet consiste en determinar la dirección MAC de una estación dada su dirección IP. La traducción se lleva a cabo mediante un intercambio de mensajes de consulta y respuestas ARP.

 

El mecanismo básico funciona enviando un mensaje de 28 octetos a la dirección de difusión y sólo el host correcto responde directamente al emisor de la consulta.

 

Para que la consulta ARP llegue a todos los dispositivos, se especifica la dirección MAC de destino FF:FF:FF:FF:FF:FF (A.K.A. Dirección MAC de difusión o Broadcast). Cuando un Switch recibe una trama con destino FF:FF:FF:FF:FF:FF procede a reenviar dicha trama a través de todos los demás puertos (la intención es que todos los hosts “escuchen” la pregunta).

 


 

La respuesta obtenida es utilizada para determinar la dirección MAC de destino y así la transmisión puede comenzar.

 

 

La relación IP-MAC obtenida será almacenada temporalmente en una tabla de entradas ARP (cache ARP) de modo tal que si Bob en un futuro intenta nuevamente enviar datos a Alice, bastará con que consulte la tabla de caché ARP para determinar la MAC de Alice sin necesidad de “volver a preguntar”.

 

Dependiendo de la implementación del sistema operativo, estas entradas de caché ARP podrán ser actualizadas en función de su último uso, última vez que se “observó” la dirección MAC, etc. También podrán ser fijadas estáticamente, mediante configuración manual.

 

En todos los casos, el protocolo ARP no valida los datos obtenidos en la respuesta ARP, es decir, si Bob recibe una respuesta ARP que indica que cierta MAC está vinculada a la IP de Alice, Bob aceptará la información “sin dudarlo”. Está permitido enviar respuestas ARP sin una pregunta previa, y se denominan mensajes “gratuitous ARP”. Estos mensajes serán utilizados por los sistemas que lo reciban para actualizar la información de la tabla de cache ARP.

 

Un atacante puede enviar deliberadamente respuestas ARP sin una pregunta previa (“gratuitous arp”), indicando que su propia MAC se corresponde con la IP de Alice, y Bob aceptará estas respuestas como “información de último momento”, y procederá a actualizar la entrada en la tabla de caché ARP para la IP de Alice con la MAC del atacante.

 

La técnica ARP Spoofing consiste en enviar información incorrecta respecto a la traducción MAC-IP; cuando Bob utiliza esta información falsa para actualizar su caché ARP, se produce una situación de envenenamiento ARP (ARP Poisoning).

 

Esta situación provocará que las tramas que envíe Bob a la IP de Alice, sean entregadas por el Switch al puerto del Atacante (recordar que el Switch mira MACs).

 

Ahora bien, si el atacante aplica la misma técnica hacia Alice, convenciendo a Alice de que la dirección MAC del Atacante se corresponde con la dirección IP de Bob, entonces el atacante ha convencido a Bob de que él es Alice y a Alice de que el es Bob, logrando una situación de intermediario (Man in the Middle).

 

Será responsabilidad del Atacante realizar el reenvío de las tramas a cada sistema para mantener el tráfico activo y evitar problemas de comunicación en capa superior. Adicionalmente el Atacante podrá inspeccionar el tráfico, obtener datos sensibles, manipular información, etc.

 

 

Sistemas involucrados

 

Sistemas de uso para el testing
Bob AA:BB:CC:11:22:33 (192.168.0.1/24)
Alice AA:BB:CC:22:33:44 (192.168.0.2/24)
Atacante AA:BB:CC:88:88:88 (192.168.0.3/24)

 

Para el sistema atacante se utilizará GNU/Linux Ubuntu y para las víctimas utilizaré Windows XP SP3 pero realmente da igual el sistema operativo víctima. En primer lugar, deberá utilizarse alguna herramienta que permita realizar el envío de mensajes con ARP Spoofing hacia las víctimas para probar el ARP Poisoning. Para este tutorial utilizaré “dsniff”, que es básicamente un set de herramientas para sniffing de passwords.

 

Entre las herramientas incluidas en el paquete dsniff, se encuentra “arpspoof”, que básicamente realiza el ARP Spoofing sobre la víctima señalada.

 

Para instalar dsniff tipear en un terminal:

$ sudo apt-get install dsniff
Con ello lo instalas.

 

 

Análisis previo al ataque


En el instante inicial, Bob tiene una entrada en su caché ARP que indica que la dirección IP de Alice corresponde a la MAC AA:BB:CC:22:33:44.

 

Para visualizar la tabla de cache ARP, ir a:

  • Inicio
  • Ejecutar
  • cmd

 

En la terminal de windows, escribir:

C:\ arp -a
Se obtendrá el contenido actual de la tabla de cache ARP de Bob:

 

3.png

 

Del mismo modo en el PC de Alice:

 

4.png

 

 

 

Ataque


En primer instancia deberá activarse el bit de forwarding en el sistema Atacante:
# echo 1 > /proc/sys/net/ipv4/ip_forward
De este modo se evita la pérdida de paquetes, Bob y Alice podrán interactuar como si nada sucediera.

 

El comando arpspoof se utiliza del siguiente modo:

# arpspoof -i INTERFAZ_LAN -t IP_VICTIMA_POISONING IP_VICTIMA_SPOOFED
De donde:

 

INTERFAZ_LAN
Placa de red que utilizaremos para el ataque, se tomará la dirección MAC de esa interfáz para los mensajes ARP Spoofing.

 

IP_VICTIMA_POISONING
Es la dirección IP de la víctima a la que se intenta envenenar la tabla de cache ARP.

 

IP_VICTIMA_SPOOFED
Es la dirección IP que indica la entrada en la tabla de cache ARP de la víctima a la que se va asociar la MAC del Atacante.

 

Para convencer a Alice, de que Bob tiene la MAC AA:BB:CC:88:88:88, en la terminal del sistema Atacante ejecutar arpspoof del siguiente modo:

# arpspoof -i eth0 -t 192.168.0.2 192.168.0.1
Se enviarán mensajes de respuesta ARP a Alice con información manipulada:

 

6.png

 

Iniciar OTRA terminal (no debe interrumpirse la anterior) y ejecutar el ataque en el sentido inverso, para convencer a Bob, de que Alice tiene la MAC AA:BB:CC:88:88:88, en la terminal del sistema Atacante ejecutar arpspoof del siguiente modo:

# arpspoof -i eth0 -t 192.168.0.1 192.168.0.2
Se enviarán mensajes de respuesta ARP a Bob con información manipulada:

 


7.png

 

A partir de este punto, el Atacante mantiene la situación de intermediario (MitM) mediante el envío de mensjaes ARP manipulados:

 

 

Repitiendo los primero pasos, es posible comprobar como las entradas de cache ARP de Bob y Alice han sido actualizadas con la MAC del Atacante:

 

Cache ARP de Bob:

 

9.png

 

Cache ARP de Alice:

 

10.png

 

Las tramas que Bob envía a Alice son entregadas al Atacante y éste las reenvía a Alice. Del mismo modo las tramas enviadas por Alice son entregadas al Atacante y éste las reenvía a Bob.

 

 

El atacante podría capturar tráfico con su placa de red en modo promiscuo y obtener por ejemplo credenciales de acceso a un portal web que no utilice SSL.

 

Por ejemplo, en la captura de tráfico siguiente, un atacante ha conseguido las credenciales de acceso a un portal de PHPMyAdmin: (Usuario “root”, password “ad00”)

 

 

Finalmente, para cerrar el ataque sin interrumpir las comunicaciones, el atacante detiene la terminal de “arpspoof” presionando teclas:

 

 

Ctrl + C

 

 

Y la herramienta automáticamente enviará consultas ARP a cada víctima para que se actualice la información de caché ARP con los datos correctos.

 

Para este entonces, el Atacante libera las comunicaciones y puede desconectarse de la red para analizar el tráfico ya obtenido.

 

Algunos sistemas antivirus monitorean los cambios de entradas en la tabla de caché ARP, incluso para GNU/Linux existe una herramienta llamada “ARPWatch” que alerta ante un cambio de relación ARP-IP en las tablas de caché ARP del sistema.

 

En otro artículo se analizarán las técnicas posibles para prevenir ataques MitM basados en ARP Spoofing y ARP Poisoning.


¿Te ayudó este Tutorial?


9 Comentarios


Cesar Ortiz
nov 07 2014 00:04

Espectacular tutorial explicando perfectamente el ataque Mitm, enhorabuena Silvestre, genial aporte

De 10 este Tutorial!!! Cómo nos tienes acostumbrados... lo has explicado de forma clara y útil. thx!

Por fin un tutorial donde se explica este ataqueeeeee en condiciones... Me uno al equipo de seguridad, estoy realizando yo otro hehe.

saludos Hack Team!

Silvestre Figueroa
nov 07 2014 01:04
Muchas gracias gente ! Me alegro sea de vuestro agrado e interés! Un saludo grande!

David Sanz
nov 07 2014 15:50

Muchas gracias gente ! Me alegro sea de vuestro agrado e interés! Un saludo grande!


Está genial la explicación del ataque. A mi también me ha venido muy bien. Y he entendido todo de forma perfecta. Buena explicación y la parte práctica clara. voto de 10 por supuesto.

Lucas Rodriguez
nov 07 2014 15:51
Ya sé cómo va este ataque, lo digo para securizar unos servers hehe. Me pongo a la cola de los demás que aportes jeje.

Yo estoy terminando uno de sistemas :)
Buenisimo!!! ahora entiendo el ataque de hombre en el medio. thanks!!!!

Silvestre Figueroa
nov 13 2014 06:00
Es un ataque interesante la verdad. Próximamente publicaré un tutorial respecto al ataque DHCP Spoofing que puede también inducir a una situación MitM.

Muy buena explicación de ataque MITM, para entenderlo desde dentro. saludos.

No esperes más y entra en Solvetic
Deja tus comentarios y aprovecha las ventajas de la cuenta de usuario ¡Únete!

X