Menú principal

jueves, 3 de marzo de 2011

Detectar ataques Man in the Middle con Ettercap y arp_cop

Quizá los ataques más comunes y peligrosos en las redes locales sean los conocidos como ataques de "Hombre en medio" - Man in The Middle (MitM) -. En ellos el objetivo del atacante es conseguir que las comunicaciones que genera la víctima, ya sean con su puerta de enlace a Internet o con cualquier servidor interno, pasen por el equipo del atacante con el fin de simplemente capturar información sensible no cifrada, como vimos en el caso de las credenciales de usuario de la red MSN con el cliente aMSN, o manipularle y engañarle con ataques más elaborados, como por ejemplo cambiar los datos de las transacciones de Paypal con la herramienta para iPhone que no comprobaba el certificado digital correctamente.

Una vez que la víctima tiene controlado su canal de comunicaciones no podría fiarse de ninguna información que recibiera, ya que podrían, por ejemplo, manipularle las respuestas de los servidores DNS y hacer que navegara hacia sitios falsos o podrían manipularle las respuestas de incluso los servidores de software para realizar ataques evilgrade que ejecutaran software malicioso en la máquina, por citar alguna de los muchos ataques que se podrían realizar a posteriori. 

La forma más común de hacer un ataque de MitM es mediante el envenenamiento de la caché ARP de la víctima con información falsa. Para ello, el atacante hace que, en la tabla de direcciones MAC asociadas a direcciones IP que guarda cada sistema operativo, la víctima piense que la dirección MAC de su puerta de enlace - o cualquier otro servidor interno que el atacante desee suplantar - sea la del equipo que realiza el ataque MitM. Así, cualquier mensaje enviado a la dirección IP de Internet que debiera pasar por la puerta de enlace, será enviado sin saberlo al atacante que capturará la información y/o la manipulará para reenviarla después a sus destino.

Detectar ataques MitM mediante inspección de la red

Existen muchas soluciones para detectar los ataques MitM, pero hoy vamos a hablaros de como puede detectarse en Mac OS X mediante el análisis de los paquetes ARP que circular por la red. Ésta tarea puede parecer muy tediosa, pero existen diversas aplicaciones que nos simplifican esta tarea. De hecho, este método que vamos a ver es utilizado por Sistemas de Detección de Intrusiones (IDS) profesionales que suelen implantarse en redes corporativas. Para este ejemplo vamos a utilizar un plugin para Ettercap llamado arp_cop que realiza un análisis de los paquetes ARP mostrando posible actividad sospechosa desde máquinas que estén realizando este tipo de ataques.

Para llevar a cabo la instalación de Ettercap más sus módulos podemos realizarlo mediante los Darwin ports con el comando /opt/local/bin/port install ettercap-ng +gtk +plugins. De este modo se instalará tanto Ettercap con soporte para interfaz gráfico como una lista de plugins útiles para análisis y ataques de red.

Figura 1: Instalación de Ettercap con los plugins

Posteriormente, hemos realizado un pequeño script para mejorar la eficacia del plugin arp_cop, forzando a realizar previamente un escaneo ARP de los equipos de la red para generar un estado inicial. De este modo, nada más arrancar el plugin ya se dispondrá de una lista completa de la los equipos de la red con la asociación de dirección IP y dirección MAC de cada uno de ellos. Uno de los requisitos para realizar el escaneo ARP es tener instalada la aplicación nmap y disponer de permisos de rootnmap también puede ser instalada a través de los Darwin ports mediante /opt/local/bin install nmap. Para una mejor usabilidad es aconsejable copiar este script en /bin/arpscan y proporcionarle permisos de ejecución mediante el comando chmod o+rx /bin/arpscan.

#!/bin/bash (sudo nmap -sP 192.168.0.0-255 > /dev/null &) & /opt/local/bin/ettercap -T -q -d -i en0 -P arp_cop

La generación de este escaneo previo permitirá conocer cuál es la asignación de direcciones MAC y direcciones IP en un estado inicial en la que nuestro equipo, recién conectado a la red, no está atacado para así poder comparar con él viendo las modificaciones que se suceden en la asignación de direcciones. Evidentemente, si la red está atacada en ese momento no se podrá tener la garantía absoluta de que funcione la detección y es por ello que, lo ideal, sería que hubiera una construcción manual de esta tabla y/o una verificación de los valores obtenidos.

Una vez está todo instalado, podemos monitorizar los ataques o actividades extrañas que se realicen en el protocolo ARP de la red a la que estamos conectados, tal y como se ve en la siguiente captura. En ella se puede ver como arp_cop detecta en tiempo real cuando nuevos equipos entran en la red, mostrando su dirección IP y su dirección MAC asociada, y cuando alguien trata de suplantar la dirección IP de otro equipo, como en el ejemplo que se ve, donde el equipo con la dirección IP 192.168.0.121 trata de realizar un ataque MitM haciéndose pasar por la dirección 192.168.0.253.

Figura 2: arp_cop detectando suplantación de direcciónes

Otras medidas de respuesta contra ataques MitM

Como usuario de una red nueva, con este pequeño script se puede realizar la detección de actividad sospechosa, que te puede ayudar a conocer el nivel de riesgo que tienes en la red en la que te estas conectando. Sin embargo, si eres un usuario ‘vengativo’, tras detectar un ataque de este tipo, existen herramientas de respuesta al ataque que pueden ser realizadas a través de la misma terminal de monitorización, ya que, en realidad, se trata de la interfaz de consola de Ettercap.

Si se desea ver la lista de plugins disponibles es posible hacerlo mediante la tecla ‘p’. Entre los plugins disponibles se puede hacer uso de dos_attack, tal y como se ve a continuación, que realiza un intento de ataque de Denegación de Servicio contra la dirección IP que trataba de realizarnos un ataque de MiTM.

Figura 3: Puglings de respuesta y ataque DOS

En realizad un usuario no debería encargarse de las medidas de monitorización y detección de ataques en la red, sino que debería ser responsabilidad de los equipos de seguridad y red, pero debido a la proliferación de las redes y a la necesidad de transmitir datos confidenciales en redes de terceros por motivos de movilidad, hace que no venga de más tener claro que sucede en la red a la que te estás conectando.

Por último, queremos recordar que el uso de nmap puede ser detectado en algunas redes como un ataque, así que, si la red tiene un IDS, no deberías ejecutarlo en script y, simplemente, tener arp_cop lanzado. Su eficacia será menor, pero no levantarás las alertas en todos los sistemas de protección de la red, si los tuviesen.

1 comentario:

Artículos relacionados

Otras historias relacionadas

Entradas populares