Mercure – Facilitando la pesca

El phishing, aunque es uno de los vectores de ataque de los más antiguos, sigue siendo uno de los preferidos y más utilizados hoy en día por los ciberdelincuentes, ya que en la mayoría de los casos ataca directamente al eslabón más débil: el ser humano.

Por suerte, los mecanismos de defensa han avanzado lo suficiente como para ponerlo bastante difícil. Un claro ejemplo son los avanzados filtros antispam que incorporan hoy en día la mayoría de los clientes de correo electrónico. Pero como sabemos, la seguridad total no existe, por lo que los criminales siempre encuentran un medio para que el phishing sea todavía una técnica de ataque eficaz.

En esta entrada vamos a analizar la herramienta Mercure,  utilizada para llevar a cabo ataques de este tipo de una manera sencilla, y que en nuestro caso puede servirnos para poner a prueba el grado de concienciación de los usuarios de nuestra organización (con las autorizaciones correspondientes). Una de sus mayores bondades es que es Open Source y se encuentra escrita en Python, por lo que las modificaciones resultan bastante sencillas de realizar. Podemos descargarla desde su GitHub. Tenemos dos maneras de instalar Mercure, utilizando el típico git clone o desplegando el docker que nos facilita su creador. Cualquiera que elijamos se encuentra perfectamente detallada en su README.

En este caso, yo he elegido la opción de clonar el repositorio utilizando git clone. Una vez instaladas las dependencias y ejecutados todos los pasos para su puesta en marcha, arrancamos el servidor mediante la siguiente línea de comandos:

./manage.py runserver 

Como podemos observar, el servidor se ha iniciado en el puerto 8000 y podemos acceder a él a través de un navegador web. Lo primero que nos encontramos es un formulario de login, donde debemos ingresar las credenciales del usuario que hemos creado durante la instalación.

Si todo ha ido bien, ya podemos comenzar a utilizar Mercure, pero primero veamos las opciones que nos ofrece muy resumidamente.

  • Campaigns: Aquí veremos los resultados de las distintas campañas que se han llevado a cabo y las que se están ejecutando en ese momento, datos estadísticos y algunos representados en gráficas.
  • Email Templates: Las diferentes plantillas que se utilizan en los correos deben ser definidas en esta sección. Se puede utilizar tanto texto plano como una plantilla de HTML + CSS.
  • Attachments: En esta sección se pueden subir todos los posibles adjuntos de los correos y se le asigna un nombre identificativo a cada uno de ellos. Esto es fundamental, ya que cuando se define la plantilla del correo es posible elegir los ficheros que irán adjuntos.
  • Landing page: Una opción que permite establecer cuál será la página que se muestre al usuario cuando acceda a un determinado enlace definido en la plantilla del correo. Se puede definir una desde cero escribiendo el propio código HTML, o incluso importar una página web indicando su dirección URL.
  • Targets: Mercure permite definir aquí distintos grupos de destinatarios que serán utilizados como tales cuando se realice una campaña.

La interfaz web que nos ofrece es muy intuitiva y crear una campaña es sólo cuestión de minutos, siempre y cuando ya tengamos creada la plantilla del correo que se enviará. Como prueba de concepto he creado una pequeña campaña de prueba con un enlace que redirige a una Landing Page donde se encuentra un formulario de acceso. Lógicamente, la estética del correo ni la de la página a donde se redirige al usuario es la correcta, ya que como he dicho se trata de una prueba para que veamos qué información se muestra y de qué manera.

Después de definir como Target un correo de pruebas de Gmail y crear la Landing Page con el formulario de acceso, he definido una plantilla de correo bastante simple. Como se puede observar, es necesario que el enlace del correo apunte a la variable de Mercure {{ landing_page_url }}.

De esta manera, cuando el usuario pinche en el enlace será redirigido a la Landing Page que se ha indicado en la creación de la plantilla del correo.

Con la plantilla ya creada, se define la campaña especificando la plantilla de correo, el grupo de destinatarios y el servidor SMTP que se utiliza para realizar el envío de los correos.

Si todo ha ido bien, los usuarios que han sido especificados como Targets recibirán el correo. Si el usuario accede al enlace, este es redirigido a la Landing Page que se ha especificado en la campaña.

Como se puede observar he simulado la acción completa, el usuario ha accedido al enlace y además ha ingresado datos en el formulario, unas supuestas credenciales. Todas estas acciones son capturadas por Mercure y se pueden consultar en el Report de la campaña creada. Se indica por cada destinatario (en este caso sólo hay uno) si el correo se ha enviado con éxito, si el usuario ha accedido al enlace y si ha ingresado datos (en caso de haber un formulario en la Landing Page).

En definitiva, Mercure es una herramienta muy potente que permite llevar a cabo ataques de phishing de una manera facil y controlada. Tiene mucho potencial, pero todavía hay detalles que se deben pulir como la actualización de las gráficas, que no funciona adecuadamente. Es relativamente “nueva” y de código abierto, si nos manejamos bien con Python, no tendremos mucho problema en añadir funcionalidades o modificar las que ya nos ofrece.

Existen otras herramientas que nos permiten realizar estas acciones, como por ejemplo GoPhish. Esta se encuentra en un estado más avanzado y funciona perfectamente, si tienes un buen nivel de Golang o simplemente te sobra con las funcionalidades que ofrece, quizás esta sea la mejor opción. Hay sutiles diferencias entre Mercure y Gophish, pero eso ya os lo dejo a vosotros.

Dejando de lado el evidente uso delictivo que se le puede dar a este tipo de aplicaciones (herramientas que en cualquier caso los atacantes ya conocen), son extremadamente útiles para “entrenar” a nuestros usuarios y evitar que en caso de ser objeto de un ataque de phishing real, sepan identificar las señales y no “picar”. Como es evidente y aunque sobre decirlo, es mejor recordar que la realización de ataques de phishing sobre cualquier colectivo de usuarios sin las debidas autorizaciones y permisos, ya sea con esta u otra herramienta, puede implicar serias consecuencias legales.

Comments

  1. necesito correrlo desde algun linux cierto?

    #noobask