Gophish – configuración, creación y envío de campañas

Ya hemos visto como instalar la herramienta Gophish con Docker en una entrada anterior (accede aquí). Ahora vamos a ver cómo configurar la herramienta, crear todos los elementos involucrados en la preparación de una campaña y hacer el envío de esta. Let’s go!!!


Consideraciones previas

Lo primero que debemos de tener en cuenta es que para configurar la plataforma y las campañas debemos de empezar de abajo hacia arriba en el menú principal, tal y como veremos a continuación.

Recomiendo tener conocimientos de HTML y CSS para desarrollar tanto la página como el formulario de entrada de datos, y también del lenguaje MJML para el desarrollo de la plantilla del email que será enviado a las víctimas, con el fin de que sea visible por cualquier cliente de correo, navegador y dispositivo. De esta forma crearemos una campaña de calidad, aumentando su garantía de éxito.

Al final de esta entrada se mostrarán los enlaces a los recursos de los que estamos hablando.


Acceso

Las credenciales por defecto son:

  • Usuario admin.
  • Contraseña gophish.
Login page

Configuración (Settings)

En la sección de configuración podemos cambiar las credenciales del usuario o crear uno nuevo.

El inconveniente es que no existe una sección en donde se muestren todos los usuarios creados, y por tanto para conocer este dato tendremos que acceder a la base de datos para realizar la consulta.

También disponemos de la API Key que nos permitirá interactuar con la herramienta desde cualquier lenguaje de programación o scripting, por si preferimos usar otro método que no sea su interfaz web.

La documentación oficial para su API se puede consultar en el enlace pinchando aquí.

También disponen de un cliente específico para Python. la documentación oficial se puede consultar pinchando aquí.

Settings

Como recomendación, en la pestaña UI Settings podemos habilitar la opción para mostrar los resultados de cada campaña en un mapa, por si las víctimas accedieran a la campaña desde distintos países. El panel de la campaña queda muy elegante, tal y como veremos más adelante.

Mostrar mapa en las campañas

Perfiles de envío (Sending Profiles)

Debemos de configurar desde donde se van a enviar los mensajes, es decir, un servidor de correo.

Indicamos el nombre del perfil que vamos a crear.

Importante indicar una dirección válida en el campo From e indicar un servidor junto al puerto que usará la herramienta para realizar el envío, host:port, por ejemplo mail.example.com:25.

Indicamos las credenciales de la cuenta que vamos a utilizar para el envío, si las tuviera. Si por el contrario usamos un relay sin buzones ni validación podemos dejar ambos campos vacíos.

Si tuviéramos problemas con el certificado, bien porque sea autofirmado o porque provenga de una entidad certificadora (CA) de poca confianza, o si directamente no lo tuviéramos, podemos descartar cualquier problema con su chequeo.

Esta sección permite también agregar las cabeceras personalizadas que queramos.

Editar configuración servidor de correo

Además podemos probar la configuración antes de guardarla, enviando un mensaje a cualquier destinatario, y en donde se probarán también ciertas etiquetas que serán utilizadas en la campaña.

Probar configuración servidor de correo

 

Destino para la prueba de correo

Página destino (Landing Page)

El siguiente paso es configurar la página destino a la que será redirigida la víctima si pincha en el enlace del correo recibido. Con esta página se pretende capturar sus credenciales.

Configuración página destino

Es recomendable crear una página lo más parecida posible a la que pretendemos suplantar.

Existe una opción para importar una página, pero me ha fallado en la mayoría de las ocasiones, sobre todo cuando intentamos traer el código de una página desarrollada en otro lenguaje que no sea HTML, o con Frameworks de JS como JQuery o Node. Lo más recomendable es crearla desde cero.

Debemos de tener en cuenta que las etiquetas <input></input> deben contener su atributo name, ya que de lo contrario tras introducir los datos en el formulario y darle al botón de envío no va a pasar nada. Un ejemplo de la configuración de estas etiquetas sería:

<input type='email' name='email' placeholder='example@example.com'>
<input type='password' name='password' placeholder='Pwd'><br>

Esta página es almacenada en la base de datos configurada en el sistema, asignándole un ID (parámetro rid) para crear la URL completa que usaremos en las campañas en donde está involucrada.

Configuración página destino

Podemos escoger la opción de capturar o no las credenciales introducidas por el usuario. Si no escogemos esa opción la contraseña no será almacenada en la campaña. De lo contrario solo se almacenarán los campos del formulario que no sean de tipo password. OJO, las credenciales se almacenan en formato texto plano.

También podemos redireccionar a la víctima a otra URL una vez envíe los datos del formulario. Así podemos mostrarle una página que le indique que ha sido víctima de una campaña de phising u ocultar cualquier sospecha redireccionando a una web legítima.


Plantilla de email (Email Template)

En esta sección vamos a crear el email que será enviado a las víctimas. Este email contiene la URL que redirecciona a la página en donde tenemos el formulario para capturar las credenciales de las víctimas, comentada en el apartado anterior.

Configuración plantilla de email

Personalmente he tenido muchos problemas a la hora de desarrollar un email en formato HTML con hojas de estilos, en resumidas cuentas, que se vea bonito. Cada cliente de correo y navegador formatea los mensajes de manera distinta, aceptando algunas etiquetas / atributos y descartando otros. Esto hacen de esta labor una auténtica pesadilla.

Para redactar un buen email en formato HTML recomiendo el uso de la herrmaienta MJML, accede a su web oficial haciendo click aquí. Este no es más que otro lenguaje de etiquetas con el que se genera el código HTML para que sea visto correctamente en la mayoría de los clientes de correo y webmail. Requiere de aprendizaje en su sintaxis y atributos, pero teniendo conocimientos de HTML y CSS esto no será un problema.  Esta entrada no se centra en explicar este software, por lo que os animamos a buscar entre la abundante documentación que hay online.

Si por el contrario solo queremos enviar un email en texto, sin formato, podemos hacer uso de código HTML sencillo, con etiquetas simples como párrafos y enlaces.

Esta sección también ofrece  el poder importar una web externa, pero, como comenté en el apartado anterior, yo tuve problemas con esta opción. Lo mejor es crearlo de cero.

La plantilla permite agregar determinadas variables, las cuales corresponden con los datos que hemos introducido cuando agregamos las direcciones a un grupo, como veremos más adelante, además de otros datos. Estas variables son:

  • {{.RId}} El ID de la página objetivo.
  • {{.FirstName}} Nombre agregado al buzón.
  • {{.LastName}} Apellido agregado al buzón.
  • {{.Position}} La posición del objetivo.
  • {{.Email}} Dirección del email introducido.
  • {{.From}} El remitente configurado para la campaña.
  • {{.TrackinURL}} El elemento que indica si el email ha sido abierto. Los clientes de correo lo interpretan como una imagen, por lo que si este ha bloqueado las imágenes del mensaje no se ejecuta la acción, pero si el usuario descarga las imágenes si la ejecuta.
  • {{.Tracker}} Es un alias de la etiqueta <img src=»{{.TrackingURL}}»/>.
  • {{.BaseURL}} URL completa con el rid de la Landing Page configurada.
  • {{.URL}} URL con la Landing Page creada en el apartado anterior, a donde pretendemos redirigir a la víctima.

Estas variables serán sustituidas por la información del usuario en cada mensaje enviado, uno por cada dirección agregada al grupo configurado, víctima de la campaña.

La variable {{.Tracker}} es imprescindible. Si no la agregamos podemos seleccionar la opción para que lo haga la propia herramienta durante la creación de la plantilla.

Tabién podemos agregar un archivo adjunto, en donde podemos incluir un Payload o Malware, o simplemente una función personalizada o un enlace a otra URL en donde capturar la información, pudiendo ser la misma Landing Page configurada en el apartado anterior.

Configuración plantilla de email

Usuarios y grupos (Users & Groups)

En esta sección damos de alta los grupos de víctimas a las que irán dirigidas las campañas.

Configuración de destinatarios

La información opcional a agregar sería:

  • Nombre (First Name).
  • Apellidos (Last Name).
  • Posición en la empresa (Position).

El campo obligatorio es el de Email, ya que sin él no permite la creación del usuario ni del grupo.

Se puede hacer una importación en bloque mediante la carga de un archivo exclusivamente en formato .CSV y con la siguiente sintaxis:

First Name,Last Name,Email,Position
Manolo,Fernández,manolo@example.com,Gerente
Pepe,,pepe@example.com,
María,García,mgarcia@example.com,Secretaria

Prestar atención a las entradas que no disponen de alguno de los apartados. Se dejarían en blanco. Imprescindible indicar siempre la cabecera tal y como se muestra en el ejemplo, y por cada entrada cuatro campos con contenido o bien y separados por comas.


Campañas (Campaigns)

En esta sección crearemos la campaña para su envío.

Configuración de campaña

En esta se indican los siguientes datos:

  • Nombre de la campaña.
  • Plantilla creada previamente para el envío de la campaña.
  • Página creada previamente a donde redirigimos a la víctima para capturar sus datos.
  • URL del servidor en donde tenemos Gophish instalado. Es la URL Base del enlace a la Landing Page.
  • Programación cuando queremos enviar la campaña.
  • Opcionalmente podemos indicar la fecha y hora finales del envío, de tal forma que el sistema programa los envíos durante el periodo de tiempo indicado entre esta y la fecha de inicio.
  • Perfil de envío del servidor de correo que usaremos para la campaña.
  • Grupo víctima de la campaña.

Al enviar la campaña esta será programada para la fecha y horas indicadas, o si es una fecha anterior a la actual el sistema la enviará inmediatamente.

Una vez creada la campaña podemos acceder a su estado, estadísticas, duplicarla o eliminarla.

Listado de campañas

Te recomiendo que antes de enviar una campaña a las víctimas se hagan pruebas con cuentas propias para confirmar que todo se vea y funcione correctamente. De lo contrario la campaña puede ser un auténtico fracaso.


Estadísticas de la campaña

Una vez creada una campaña, podemos acceder a su estado para comprobar si las víctimas han abierto el mensaje, pulsado en el enlace a la Landing Page y enviado el formulario con datos. La opción de Email Reported está en fase  beta, destinada a introducir algún elemento que permita a la víctima a usarlo para alertar que es un phishg, y por tanto confirmar que es una víctima concienciada con este riesgo.

Estadísticas de la campaña

También podemos ver el estado y la información de cada buzón, junto a un mapa desde donde cada usuario accede al mensaje.

Estadísticas de la campaña

También en esta sección disponemos de las opciones de:

  • Exportar el estado de la campaña en formato .CSV.
  • Completar la campaña, bloqueando el acceso a la Landing Page creada.
  • Borrar la campaña.
  • Recargar la pantalla con la información de la campaña. Esta se autorecarga frecuentemente.

Una vez queramos finalizar la campaña usaremos la opción Completar campaña para deshabilitar la URL de acceso a la Landing Page, es decir la URL base seguido del rid de esta página. Los usuarios no podrán acceder de nuevo al enlace del mensaje recibido, y por tanto enviar sus datos.


Panel (Dashboard)

En esta sección podemos ver un resumen de todas las campañas configuradas, completas o no, con la información global de todas ellas.

Panel general de campañas

También podemos acceder a las estadísticas de cada campaña o eliminarla.

Panel general de campañas

Resumen

En resumen, esta potente herramienta con licencia libre nos permite realizar campañas de concienciación para identificar posibles víctimas a través de las cuales pongamos en riesgo la información privada de una compañía.

Espero que esta entrada sea de utilidad para todo aquel que quiera usar esta herramienta. Cualquier duda me podéis preguntar usando el formulario de contacto pinchando aquí, o si ya eres un usuario registrado en el blog agregando un comentario.

Aaaadios!!!!


Recursos

Gophish página oficial pincha aquí.

Gophish documentación oficial pincha aquí.

MJML página oficial pincha aquí.

HTML recursos pincha aquí.

CSS recursos pincha aquí.