viernes, 11 de febrero de 2022

Jugando con Bettercap (Man in the Middle)

¿Qué es un ataque Man in the Middle?

Ocurre cuando un atacante puede interceptar o manipular tráfico entre dos partes conocidas como víctima y receptor.

La víctima es aquella persona que envía un mensaje a otro individuo esperando una respuesta, mientras que el receptor es la parte que recibe la información para luego analizarla y responder a la solicitud enviada.

El atacante aparte de interceptar todos los datos que son enviados entre las dos partes podría llegar a manipular los datos para obtener información confidencial, modificar transferencias bancarias e incluso suplantar la identidad ya sea de la víctima o el receptor.

A continuación, te muestro un ejemplo gráfico en donde el usuario 1 se intenta comunicar con el usuario 2 y un atacante ubicado en el medio podrá interceptar toda la comunicación, tanto de uno como del otro.

 
Antes de continuar profundizando sobre el ataque de MitM, debemos conocer que ARP (Address Resolution Protocol) es el protocolo responsable de encontrar una MAC asociada a una determinada dirección IP dentro de una red. Para comprender un poco mejor dicho protocolo, imagina que en una red el dispositivo 1 hace un ARP request preguntando por la MAC de otra determinada IP (en este caso el dispositivo 2), con el fin de intercambiar información con él.

Una vez dicho esto, te explicaré algunos de los tipos de ataques de MitM.

  • Suplantación de IP (IP Spoofing): Es una técnica que consiste en enviar paquetes de datos TCP/IP o UDP/IP con una dirección IP de remitente falsa.
  • Ataques basados en servidores DHCP (DHCP Spoofing): Una variante del ataque MitM es el ataque man-in-the-browser, el cual consiste en instalar malware en el navegador de los usuarios de Internet con el objetivo de interceptar sus datos.
  • Simulación de punto de acceso inalámbrico: Este ataque radica en configurar un ordenador de tal manera que se convierta en una vía para acceder a internet. De esta manera, un atacante podrá generar un punto de acceso inalámbrico que permitirá engañar a los usuarios para que proporcionen los datos de su sistema sin que se den cuenta.
  • Suplantación de ARP (ARP Poisoning o ARP Spoofing): En este ataque se envenena la caché ARP por medio del envío de un ARP falso a una LAN para que la dirección del MAC del atacante pueda vincularse a su dirección y, de esta manera, reciba toda la información que se supone va dirigida a nosotros. Por tanto, un atacante podría suplantar un router/switch e interceptar todos los paquetes que un usuario intercambia con el router/switch cuando navega por Internet y, posteriormente, el atacante vuelve a enviar al usuario esos datos para que no sospeche nada.
  • Suplantación de DNS (DNS spoofing): Para comprender mejor este ataque primero debemos conocer que el protocolo DNS se encarga de convertir un nombre de servidor, como por ejemplo www.ejemplo.com, en una dirección IP compatible con el ordenador, como 10.10.10.2. Para acelerar los procesos en línea los servidores recuerdan estas traducciones y las guardan en una caché, la cual puede ser accedida por los atacantes para cambiar las traducciones y redirigir automáticamente a los usuarios a un sitio malicioso cuando intenten comunicarse con el sitio real. Esto conlleva a la víctima a enviar información confidencial a un host malicioso creyendo que está enviando datos a una fuente confiable.
  • Suplantación de DNS multicast (mDNS spoofing): El DNS de multicast a diferencia de DNS, se realiza en una red de área local (LAN) mediante difusión como ARP y es utilizado por dispositivos de red tales como: impresoras, televisores, sistemas de entretenimiento, etc., para conectarse a la red. El ataque radica en que los usuarios simplemente dejan que el sistema resuelva y encuentre la dirección para comunicarse, debido a que generalmente se encuentran en redes confiables. En el momento en que una aplicación intenta conocer la dirección de cualquier dispositivo, un atacante podría responder a las solicitudes de conexión con datos falsos para que se redirija a una dirección controlada por él mismo. Los dispositivos al mantener un caché local de direcciones provocarán que la víctima considere el dispositivo del atacante como confiable durante cierto periodo de tiempo.

Algunos métodos o técnicas para realizar este tipo de ataques son:

  • Suplantación de HTTPS. El HTTPS es la clave del certificado de un sitio web que indica que sus transacciones en ese sitio están cifradas y que, por tanto, sus datos están a salvo. Esta técnica consiste en instalar un certificado de seguridad falso para que el navegador crea que es de confianza y le proporcione la clave de cifrado necesaria para descifrar los datos que los usuarios envían. De esta manera, un atacante puede recibir y descifrar la información, leerla, volver a cifrarla y enviarla a su destino sin que el usuario sospeche que se interceptó la comunicación.
  • Vulneración de seguridad del navegador contra SSL/TLS (BEAST): La técnica BEAST (Browser Exploit Against SSL/TLS) consiste en aprovechar la vulnerabilidad del cifrado por bloques (CBC cipher-block chaining) en el protocolo SSL para capturar y descifrar los datos que se transmiten entre el navegador y el servidor web.
  • Secuestro de SSL: Se produce cuando el navegador se conecta primero a un protocolo no seguro (HTTP) y luego el servidor redirige al usuario a la versión segura (HTTPS) del sitio. El atacante actúa justo antes de que se produzca ese cambio desviando la ruta del tráfico hacia su equipo.
  • Stripping de SSL: Este ataque radica en que un atacante cambia el método de un sitio web de HTTPs (sitio seguro) a HTTP (sitio no seguro). Una vez hecho esto, utiliza un servidor proxy o realiza una suplantación de ARP para situarse entre la víctima y la conexión segura. De este modo, toda la información, como por ejemplo contraseñas y datos bancarios, llegará al atacante en texto claro antes de que el protocolo HTTPS los encripte y sin que la víctima detecte alguna anomalía.

¿Como podemos evitar este tipo de ataques?

  • No conectarse a redes públicas y en caso de hacerlo utilizar una VPN.
  • Contar con antivirus actualizado y un Firewall.
  • Tener el sistema operativo actualizado.
  • Acceder solo a páginas web que tengan certificado SSL y usen el protocolo HTTPS.
  • Sentido común, es decir, no hacer clic en enlaces peligrosos, tener cuidado con los correos que se abren y las aplicaciones que permiten descargar archivos maliciosos.
  • Cifrar el contenido confidencial o sensible.
  • Utilizar contraseñas que sean fuertes y complejas.

¿Como detectar un ataque de “Man in the Middle”?

Algunas formas comunes de identificar que estamos siendo víctimas de un ataque MitM son:

  • Las aplicaciones tardan mucho en cargar y no existe algún motivo aparente.
  • Emisión del certificado del sitio web por parte de una CA no legítima.
  • Las páginas son forzadas a usar HTTP en lugar de HTTPS.

Existe otro método para detectar este tipo de ataque que consiste en escribir en el símbolo del sistema (cmd) el comando arp -a para obtener tanto la tabla de direcciones IPv4, como las direcciones físicas y el tipo de direccionamiento (estático/dinámico). De esta manera, si observamos que nuestra IP no está conectando directamente con el router y en su lugar conecta con otra IP local significa que estamos siendo víctimas de un ataque MITM. Para evitar confusiones es preferible empezar limpiando la caché ARP de la siguiente manera:

Y luego debemos comprobar de nuevo con el comando arp.


Existen algunas herramientas que se podrían emplear para llevar a cabo ataques de MitM, como por ejemplo Bettercap. Esta herramienta está escrita en GO, es bastante potente y permite realizar ataques MitM tanto en redes IPv4 como en redes IPv6. A su vez, permite ejecutar reconocimientos y ataques en Redes WiFi, dispositivos Bluetooth Low Energy y dispositivos HID inalámbricos.

A continuación, podéis observar un ejemplo de cómo utilizar Bettercap para realizar este tipo de ataque.

Primero, ejecutamos Bettercap en la terminal de Linux.




Luego procedemos a escribir el comando net.probe on para que detecte los dispositivos que están conectados a la red mediante una búsqueda activa de todos los hosts.

Para visualizar todos los equipos escribiremos el siguiente comando:



Después, habilitamos la suplantación de ARP dúplex completo (para que el objetivo piense que nosotros somos el enrutador).



Ahora lo que haremos será indicar nuestro objetivo (en este comando tenemos que indicar al final la IP objetivo).


Luego habilitamos el ataque ARP.



Y posteriormente activamos el ataque.




Con net.sniff lo que hacemos es visualizar todo el tráfico de la víctima.

Ahora si ejecutamos las tablas ARP en la máquina que estamos atacando veremos que hay por lo menos 2 IPs distintas asociadas a la misma MAC. De hecho, si te fijas bien observarás que una de ellas es la puerta de enlace.



Una vez hecho esto podríamos ejecutar Wireshark o la propia terminal para observar el tráfico del chat al que ingresó la víctima en una página web, con el fin de capturar su usuario (email) y contraseña.



Captura del equipo víctima.

Por otra parte, si ejecutamos el comando help podríamos visualizar los módulos que estamos ejecutando.


Para levantar un entorno gráfico en el navegador que nos permita llevar a cabo las mismas operaciones que hicimos en la terminal debemos ejecutar el siguiente comando:

sudo bettercap -caplet http-ui


Si abrimos el navegador web e ingresamos a http://127.0.0.1 observaremos que tenemos acceso a la interfaz gráfica de la funcionalidad Login.


El nombre de usuario es user y la contraseña es pass, las cuales se encuentran situadas en el fichero de configuración.


Una vez introducidas las credenciales visualizaremos un panel como el siguiente:


Como se puede observar en la imagen existen diferentes módulos, como por ejemplo Caplets y LAN, que se pueden utilizar para controlar el tipo de información que visualizamos, realizar ataques de ARP Spoofing, monitorear el estado de la red, etc. Los caplets son scripts con extensión .cap que vienen preconfigurados, aunque también se pueden editar para realizar ataques más específicos, y por cada línea dispone de una instrucción a ejecutar. Para comprender la función que brinda cada Caplet podéis ingresar en el siguiente link:

https://github.com/bettercap/caplets

En cuanto al módulo LAN podréis utilizar esta opción para seleccionar el objetivo o los objetivos a los que queremos escanear sus puertos y/o realizar ARP Spoofing.


Si necesitamos ejecutar uno, tan solo tenemos que seleccionar el caplet específico y apretar el botón de play (run):


También se podría realizar la ejecución de un Caplet desde la terminal y observar los que hay disponibles mediante el comando caplets.show.


Existe un Caplet conocido como hstshijack que se suele utilizar para degradar las conexiones HTTPS a HTTP siempre y cuando las aplicaciones no tengan habilitado el HSTS (Strict-Transport-Security), debido a que es un mecanismo de seguridad diseñado para asegurar las conexiones HTTPS contra ataques Man in the Middle y secuestros de sesión.

Como podéis ver Facebook implementa el uso de HSTS dado que utiliza la cabecera “Strict Transport Security”.


Otra manera de comprobar si la aplicación a la que quieres atacar tiene implementado HSTS es ingresando en la página hstspreload.org.


En la página oficial de Bettercap podéis obtener más información sobre cómo se usan los diferentes Caplets.

Hasta aquí el tutorial básico de Bettercap.


Autor: Héctor Berrocal - CCNA, CEH, ITILF, MCP
Dtpo. Auditoría