Hace pocos días vimos en detalle qué es un ataque Man In The Browser (MITB), y te explicábamos que para un atacante era posible utilizarlo para interceptar el tráfico de tu navegador. Para profundizar aún más sobre este punto, decidimos llevar a cabo una prueba de concepto en la que demostraremos el potencial de este ataque si no se toman los recaudos necesarios.

Prueba de concepto - Man In The Browser

Esta situación fue llevada a cabo en un laboratorio virtual controlado, con el propósito de mostrar las consecuencias de un MITB. Contamos con una máquina víctima, como se aprecia en la siguiente captura:

maquina-virtual
En el primer recuadro rojo puede verse la dirección IP del equipo víctima, y en el tercero se marca la tabla ARP. Aquí el sistema operativo reconoce qué dirección mac (dirección física de placa de red) corresponde a cada dirección IP dentro de la red a la que se encuentra conectado.

Por último, se usa la utilidad de red para saber si un equipo responde -en este caso el comando ping hacia el sitio Facebook.com, con la finalidad de saber su estado. En caso afirmativo, nos devuelve la dirección IP real del servidor, tal como se muestra en el último recuadro rojo.

Del otro lado, el atacante está a la escucha y con sus herramientas ya pudo determinar que el usuario accede a Facebook. Con esta información, decide crear un clon de la red social y montarla en un servidor web en su equipo. Una vez hecho esto, redirigirá las peticiones que su víctima haga: en lugar de ir al sitio oficial, la solicitud irá a la máquina atacante.

Mientras tanto, la víctima decide abrir su navegador web para acceder a Facebook. Al ingresar la dirección en la barra de su navegador, accederá al siguiente portal:

Facebook01
Si miras cuidadosamente, puedes observar que en la dirección del sitio no aparece el HTTPS con el candado que indica que la comunicación es segura (cifrándola con SSL). En esta prueba de concepto decidimos ignorar esto para mostrar cómo sigue el funcionamiento del ataque. Entonces, el usuario víctima ingresa su usuario y contraseña para acceder a su perfil.

Sin tener éxito en su inicio de sesión, en lo que parece ser un simple error del sitio, el usuario ingresa reiteradas veces su usuario y contraseña intentando acceder.

Mientras tanto, el atacante va almacenando toda esta información que ingresa la víctima en un simple archivo de texto (también puede ser una base de datos). En la siguiente captura puede verse cómo se van guardando todos los datos:

contraseñas-robadas

De la misma manera, en el sitio falso creado por el atacante, este podría inyectar código malicioso para infectar a su víctima, pudiendo así tomar control de su equipo. Un claro ejemplo sería el que se muestra a continuación, donde se utiliza una falsa actualización de Java para explotar una vulnerabilidad en una versión sin actualizar:

Java-facebook
En este ejemplo, de no estar atentos a lo que ejecutamos, se podría terminar descargando un código malicioso, como se ve en la siguiente captura:

certificado-facebook
Observando más detalles, advertimos que arriba en la barra de dirección, sigue sin aparecer HTTPS. En segundo lugar, la ventana que arroja antes de ejecutar nos avisa que la actualización del complemento proviene de origen desconocido. Si esta información se pasó por alto, aquí se está ejecutando el código malicioso, es decir que en este punto se infecta el equipo.

Del otro lado, el atacante ve algo como lo siguiente:

atacante

De aquí en adelante, puede hacer y deshacer a voluntad, como por ejemplo tomar capturas de pantalla del escritorio de la víctima:

Screenshot-victima

Si estuviera conectada una cámara web a la PC, como vimos en entradas anteriores un atacante podía tomar control de la webcam desde un enlace de Facebook y observar a quien esté frente a la cámara, o inclusive podría iniciar una consola remota en el equipo víctima, pudiendo ejecutar aplicaciones y comandos directamente. Veamos el siguiente ejemplo:

mensaje-atacante
Como se ve en la captura, se ejecutó la consola de Windows y desde ahí se usó un comando para dejarle un mensaje a la víctima. El mensaje en la computadora víctima se ve así:

pc-owneada

¿Cómo prevenir MITB?

Como fuimos viendo a lo largo de este post, se pasaron por alto varios detalles. Desde el Laboratorio de investigación de ESET Latinoamérica recomendamos, en primer lugar, contar con una solución de seguridad instalada y actualizada, ya que nos avisará cuando se esté efectuando un ataque manipulando ARP y DNS -técnica conocida como envenamiento de ARP y DNS- tal como se muestra en esta captura:

EnvenenadoDNS

También actúa como escudo a la hora de instalar aplicaciones maliciosas descargadas.

Otra forma de saber si están manipulando el tráfico es ejecutar la consola de Windows, para lo cual debes ir a:

                               Inicio > [en la barra de búsqueda escribir el comando] cmd > [Enter]

Una vez que se inicia la ventana de comandos, puede usarse el comando ping para ver si responde el sitio. Si responde, en su respuesta se observará la dirección IP del servidor. A continuación se muestra una captura de pantalla, donde es ejecutado:

comando-ping
Como se ve en la primera parte, desde que el atacante ejecuta sus técnicas para manipular las consultas de red, al hacer ping a Facebook, muestra la dirección IP de la maquina atacante y no la real de Facebook, esto es debido a que el atacante está haciéndose pasar por Facebook.

Por último, otra herramienta a tener en cuenta es el comando arp, que muestra la dirección de red (IP) y dirección física de cada placa de red (mac address). En la segunda parte de la captura se ve que la dirección física (mac address) de la dirección IP del atacante (terminada en .152) y la del router (terminada en .2) poseen la misma dirección mac, esto quiere decir que el atacante se está haciendo pasar por el router para interceptar y modificar las comunicaciones. Esperamos que con estos consejos, puedas evitar el robo de tu información personal y sensible.