ARPspoof es una técnica usada comúnmente por atacantes en redes internas para ataques MITM, DOS o para explotar algún fallo en la victima para obtener acceso al equipo en combinación con técnicas como DNSspoof y sniffing, entre otras.

Address Resolution Protocol (ARP por su siglas en inglés) es un protocolo de capa 2 en el modelo OSI de comunicaciones, que básicamente se encarga de resolver direcciones IP y MAC.

Cuando se envía un paquete de un host a otro hay que indicar en su cabecera la dirección física (MAC), que es un identificador fijo y único asignado a cada tarjeta de red. Cuando una aplicación se quiere comunicar con otra a través de una red usará el protocolo IP para identificar la máquina de destino, pero teniendo en cuenta que las direcciones  IP pueden variar se hace imprescindible asociarlas a las direcciones físicas (MAC). Para ello, se utiliza el protocolo ARP, de modo que cuando un paquete llega a una máquina, esta comprueba que en la cabecera se indique su MAC y si no coincide con la suya, ignorará el paquete.

Todos los datos asociados a las dirección tanto IP como MAC pueden verse en una tabla de ARP, y puede darse el caso de que una aplicación quiera enviar un paquete a una IP que no se encuentra en dicha tabla (al iniciar la PC, esa tabla se encuentra vacía). En ese caso es necesario preguntar quién tiene la IP deseada, y para ello también se usa el ARP. Para realizar dicha pregunta, la máquina enviará un paquete especial dirigido a la MAC ff:ff:ff:ff:ff:ff (broadcast), cuyo contenido será del estilo “¿quién tiene la ip x.x.x.x?”, por lo que cuando las máquinas de la red vean este paquete dirigido a esa dirección MAC especial, leerán el mensaje y únicamente la máquina que tenga la dirección IP por la que se pregunta responderá con otro paquete diciendo “Yo, x:x:x:x:x:x, tengo la dirección IP x.x.x.x”. Lo interesante, es que todas las máquinas de la red recibirán ese paquete, lo leerán y actualizarán sus tablas de IP y MAC con la nueva información, no solo la que hizo la pregunta.

En la siguiente imagen se muestra a modo de ejemplo cómo se ven estas tablas; para poder observar esta información es necesario en Windows ir a inicio à ejecutar à en el recuadro que aparece escribir cmd à presionar Enter à una vez en la consola de Windows ejecutar el comando arp -a:

TablaARP1

El envenenamiento de las tablas ARP o ARPspoof consiste básicamente en inundar la red con paquetes ARP indicando que nuestra  mac address es la asociada a la IP de nuestra víctima y que nuestra MAC está también asociada a la IP del router (puerta de enlace) de nuestra red. De esta forma, todas las máquinas actualizarán sus tablas con esta nueva información maliciosa. Así, cada vez que alguien quiera enviar un paquete a través del router, ese paquete no será recogido por el router, sino por la máquina atacante, ya que se dirige a su dirección MAC, y cada vez que el router u otro equipo envíen un paquete a la víctima sucederá lo mismo. Como la máquina atacante sabe que “está envenenando el protocolo ARP” sí conocerá las direcciones MAC reales de todas sus víctimas, por lo que la podremos configurar para que reenvíe esos paquetes a su verdadero destinatario, así nadie notará que se ha metido en medio.

Así se vería la tabla envenenada, en este caso el atacante es el equipo con dirección 192.168.0.7, ya que previamente conocemos la mac address del router y es xx:xx:xx:xx:xx:xx:

TablaARP2

Debido a que absolutamente toda la información de la víctima pasa por el equipo del atacante, este es capaz de leer y modificar en tiempo real absolutamente todos los paquetes, desde leer y capturar credenciales, como son las de páginas de e-mails o bancos, pasando por la modificación de conversaciones de chat, solicitudes a páginas web, inclusive hasta redirigir una consulta a un host que contenga código malicioso, para que una vez ejecutado pueda tomar control del equipo víctima.

Próximamente, publicaremos la parte práctica de estos tipos de ataques, para ver el alcance y entender cómo funciona en conjunto con otras herramientas y técnicas. Para protegerse de ataques de este tipo, es necesario evitar conectarse a redes wifi desconocidas y/o públicas, y fundamentalmente no ingresar a servicios web que requieran credenciales de acceso como usuario y contraseña. Pero lo más importante, es poder combinar estas buenas prácticas de navegación con una solución antivirus actualizada, como las de ESET, de modo que puedan agregar una barrera más de protección a sus equipos.