Envenenamiento del Protocolo ARP
En este artículo estaremos indagando sobre el envenenamiento del protocolo ARP, también conocido como ataque de Man in The Mittle (Hombre en el medio). Veremos en detalle los tipos de ataque a través de la herramienta bettercap, como así también la forma de cuidarnos y aplicar seguridad para no ser una víctima del mismo. Para entender mejor la siguiente información, se recomienda saber sobre conexiones en red y protocolo TCP.
Table of Contents
ToggleProtocolo ARP
El protocolo ARP (Adress Resolution Protocol) se encarga de indentificar un host en la red mediante el uso de la dirección MAC. Recordemos que los dispositivos como Switch o Puntos de acceso, pertenecientes a nuestra puerta de enlace o gateway, no “entienden” de direcciones IP. Para ello, cuando reciben un paquete en la red de un dispositivo A para ser dirigido a un dispotivo B, el gateway, enviará un mensaje de broadcast a todos los nodos conectados a la red para saber quién tiene la dirección MAC perteneciente a dicha IP.
Por lo tanto, el sistema operativo que lo recibe, lo procesa y devuelve al interesado la dirección MAC asociada a la IP. Resumiendo, se trata de un protocolo usado para que en la red exista una asociación de dirección MAC-IP y guardarla en una tabla, o caché, con direcciones Dinámicas y Estáticas (debido al cambio constante de IP en las máquinas). De esta forma, se busca hacer la comunicación más eficiente.
ARP Poisoning Atack
La idea del envenenamiento del protocolo ARP es hacer “creer” a un ordenador, que una dirección IP (sistema operativo) está asociada con una MAC (una tarjeta de red) que no es realmente la suya. Por tanto, por definición del propio protocolo TCP/IP, esto hará que los switches dirijan el tráfico al dispositivo de red que tenga esa dirección MAC. Es decir, si conseguimos confundir la caché de cada sistema operativo donde se almacena la información de la pareja IP-MAC, y se le hace creer que la IP está asociada a otra MAC, será el dueño de la misma a donde se dirija realmente el tráfico cuando pase por un Switch o Punto de acceso.
De esta forma, el atacante solo tiene que enviar constantemente, y de forma regular (para que la caché no se actualice con los datos reales), una asociación IP-MAC falsa en la red. Con estos datos en caché, el sistema queda confundido y envía siempre al dueño de esa MAC la información, aunque lo que desee realmente es enviarla al dueño de la dirección IP.
Uso de bettercap
A continuación, estaremos demostrando cómo instalar la herramienta bettercap para realizar el envenenamiento del protocolo ARP y conocer en detalle su funciomiento. Para ello, primero mostraremos los primeros pasos y su instalación de la siguiente manera:
apt-get install -y bettercap
Una vez instalado, cuando ejecutemos el programa veremos lo siguiente:
Esta herramienta nos permite realizar diversos ataques a través de diferentes parámetros y comandos. Si queremos ver todas sus fucniones podemos presionar “help”.
Ahora bien, lo primero que haremos será visualizar los dispositivos conectados en nuestra red (como hacemos con nmap). Para esto, colocaremos primero net.probe on y luego net.show (o ticker on para verlo en directo). Por lo que se nos aparecerá el siguiente cuadro:
Como vemos, se nos listan direcciones IP-MAC dentro de nuestra red. La interfaz de red eth0 especifica nuestra IP, no obstante algo importante que podemos observar, son los datos de gateway (en recuadro rojo) y de nuestra máquina víctima Windows (en recuadro verde)
ARP Attack
El primer paso para realizar un envenenamiento del protocolo ARP es colocarnos entre el router y la máquina Windows de la siguiente manera:
Estas opciones representan lo siguiente:
set arp.spoof.fullduplex true: indicamos que tanto los objetivos como la puerta de enlace sea atacado
set arp.spoof.targets 192.168.100.1, 192.168.100.19: Indicamos que todo lo que pase por la puerta de enlace y la máquina vícitma sea interceptado.
arp.spoof on: Habilitamos el spoofing.
net.sniff on: Habilitamos el sniffing para visualizar la interacción de paquetes entre la máquina y la puerta de enlace.
Podemos comprobar que el spoof ha funcionado a través de la tabla de direcciones IP-MAC vía el comando arp -a en la máquina Windows:
Como vemos la dirección MAC de nuestra máquina kali (192.168.100.18) y la puerta de enlace (192.168.100.1) son las mismas. Esto significa que la máquina víctima “entiende” que dicha dirección mac es su puerta de enlace, por lo que envirá todo su tráfico hacia la misma.
Para visualizar el tráfico de dicha máquina, procederemos a enviar creedenciales a través de una página vulnerable de práctica de Acunetix. Para ello, colocamos usuario y contraseña y veremos lo siguiente en nuestra máquina Kali:
Recordemos que estos datos podemos verlos debido a que el protocolo utilizado por el sitio web es http. Por tal motivo, también podemos usar la herramienta de Wireshark para estos casos.
Tener en cuenta
Un dato importante es que con la opción arp.ban on generaremos una denegación de servicio en toda la red, quedano esta inutilizable. Podemos ver las opciones de arp.spoof, o de cualquier parámetro, con help como se muestra a continuación:
DNS Spoofing Attack
A continuación procederemos a realizar un ataque similar al anterior, pero redirigiendo a la víctima a un dominio falso generado por nosotros.
Para ello, le indicaremos a bettercap que siempre que el usuario quiera entrar a debian.org sea redirigido hacia un servidor web apache. Entonces primero habiliamos el servicio realizando systemctl start apache2 y luego modificamos el archivo index.html ubicado en /etc/var/www/html/.
Podemos visualizar dicha página desde nuestra dirección local 127.0.0.1:
Luego procederemos a ejecutar los siguientes parámetros en bettercap:
Como vemos, con la opción dns.spoof podemos redirigir a la víctima hacia otro servidor alojado en nuestra máquina kali, cuya dirección ip es 192.168.100.18.
Por lo tanto, desde la máquia víctima Windows, cuando quiera dirigirse hacia debian.org verá lo siguiente:
Detección Manual de Ataque ARP
En el caso de sospechar que estamos siendo víctima de un ataque de envenenamiento del ptocolo arp, podemos listar las direcciones IP realizando arp -n (la opción -n se utiliza para no resolver nombres) como vemos a continuación:
Como vemos, solo tenemos dos direcciones IP cuya dirección MAC es distinta. Si bien puede existir el caso en que dos direcciones IP tengan las mismas MAC, debemos verificar que una de ellas no corresponda a la puerta de enlace o gateway, ya que será el principal objetivo por parte de un atacante. Para ello hacemos uso del comando ip route.
De esta manera podemos verificar que la entrada de paquetes es por la 192.168.100.1 a nuestra máquina cuya IP es la 192.168.100.18.
Bloquear ataques con ARPon
Para instalar esta herramienta procedemos a ejecutar las siguientes líneas:
apt-get install -y arpon
Ahora bien, procederemos a configurar el archivo /etc/arpon.conf para cambiar el la dirección mac de nuestra puerta de enlace en modo estático. Recordemos que en la imagen anterior nuestra dirección de gateway 192.168.100.1 corresponde a la MAC a0:a3:3b:20:1b:66. Por lo tanto, la configuración sería la siguiente:
A modo de ejemplo lanzaremos un ataque para visualizar los cambios e interacción de esta herramienta frente a dichos ataques. Para ello usaremos una máquina atacante con las siguientes direcciones IP-MAC:
Una vez hecho esto, si creemos que estamos siendo víctimas de envenenamiento del protocolo arp, podemos lanzar arpon en modo híbrido. De esta forma, arpon se basará en los cambios realizados anteriormente con respecto a la direcciones estáticas, como así también en el tráfico dinámico arp. Para ello usamos el comando arpon de la siguiente manera:
Como se observa, arpon está bloqueando los paquetes cuya MAC (perteneciente a la máquina atacante) es distinta a la que hemos configurado en /etc/arpon.conf.
Cabe mencionar que arpon intentará bloquear cualquier tráfico malicioso, no solo para direcciones estáticas. Sin embargo, con direcciones estáticas funcionará mucho más rápido que con dinámicas, ya que aplicará el bloqueo cuando detecte una cantidad muy grandes de paquetes arp hacia dichas direcciones. Podemos visualizar dichos cambios en la tabla arp con watch arp -n.
Detectar ataque ARP en Windows
Para estos casos vamos a estar haciendo uso de la herramienta arp-monitor de binary-plant cuyos enlaces para descargar el programa y la librería winpcap son los siguientes:
https://binaryplant.com/arp-monitor
https://www.winpcap.org/install/default.htm
Primero veamos la tabla arp que tenemos en nuestra máquina Windows, con respecto a la puerta de enlace.
Ahora bien, ejecutaremos arp-monitor y se nos aparecerá la siguiente ventana:
Como vemos, esta herramienta va agregando las nuevas direcciones que están activas y han interactuado con el equipo dentro del visor de eventos. Por ejemplo, si hacemos ping a varias máquinas activas, las mismas quedarán registradas dentro de dicha lista. También, podemos visualizar sus direcciones MAC dentro del apartado “IP – MAC”.
Por lo tanto, este software nos alertará la sobre la aparición de distintos eventos que son configurables dentro del apartado de “Options”. Veamos el mismo a continuación:
Podemos apreciar que todos los eventos vienen activados. Sin embargo, el que nos interesa para ataques de envenenamiento del protocolo arp es Flip Flop cuya función será alertarnos ante el cambio de direcciones MAC, es decir, cuando una dirección IP pasa a puntar a otra tarjeta de red.
Por lo tanto, lanzaremos un ataque ARP desde nuestra máquina kali, cuya direcciones IP-MAC son las mismas que la anterior. Entonces en nuestra máquina Windows veríamos lo siguiente:
También podemos visualizar y verificar dichos cambios en la tabla de resolución arp
Conclusión
Teniendo en cuenta el funcionamiento de este tipo de ataque en la red, es fundamental que siempre estemos atentos a las conexiones y dominios que nos conectemos. Debemos recordar siempre usar el protocolo https, verificar que el dominio donde estemos conectados sea auténtico para no caer en la estafa de un phishing o malware, tener una fuerte autenticación o contraseñas seguras y realizar copias de seguridad.
Por lo tanto, aplicando estos pasos podemos aumentar demasiado la seguridad de nuestro equipo en la red ya que los datos, por más que sean interceptados, viajarán de forma cifrada y segura.