- Phishing con Gophish – Parte 1: instalación, configuración y acceso al laboratorio
- Phishing con Gophish – Parte 2: preparativos y configuraciones adicionales
- Phishing con Gophish – Parte 3: envío de campañas
Hola de nuevo 🫡
Tranquilos 🤭, ya hemos llegado a la chicha que mola. Vamos a usar gophish para lanzar las campañas. ¡Al turrón!
Nos dirigimos al panel de administración de gophish (puerto 3333).
Sending profiles
Lo primero que tenemos que hacer antes de nada es configurar los perfiles de envío. Esto no es más que decirle a Gophish que MTA (mail transfer agent) tiene que utilizar. Vamos a crear dos, uno de pruebas (mailhog) y otro en producción (postfix).
Es importante localizar las IPs de ambos servicios. Para ello:
#La IP de Mailhog
sudo docker container inspect mailhog | grep "IPAddress"
#La IP de postfix
sudo docker container inspect postfix | grep "IPAddress"
Mailhog
Establecemos los siguientes parámetros:
- Nombre: MAILHOG
- SMTP From: hamilton@test.com. No confundir este campo con el «from» del correo. Se trata de la cuenta del servicio SMTP desde la cual se envía el correo. Puede coincidir perfectamente con «from». No obstante, esto puede variar perfectamente. Esta cuenta será la que utilicen los MTA para devolver errores de entrega de correos (return-path)
- Host: vuestra IP asignada a Mailhog con puerto 1025.
- Marcar «Ignorar errores de certificado»
- Podéis establecer una cabecera personalizada.
Antes de guardar podéis enviar un mail de prueba.
Postfix
- Nombre: POSTFIX
- SMTP From: max.verstappen@gophish.dfirpills.com. No confundir este campo con el «from» del correo. Se trata de la cuenta del servicio SMTP desde la cual se envía el correo. Puede coincidir perfectamente con «from». No obstante, esto puede variar perfectamente. Esta cuenta será la que utilicen los MTA para devolver errores de entrega de correos (return-path). En este caso, si debéis hacer uso del dominio que hayáis configurado.
- Host: vuestra IP asignada a Postfix con puerto 25.
- Marcar «Ignorar errores de certificado»
- Podéis establecer una cabecera personalizada.
Antes de guardar podéis enviar un mail de prueba a una cuenta real personal que tengáis y con ayuda de los logs de Postfix revisar si hay fallos.
Creando la campaña de phishing
Usuarios y grupos
Vamos a crear el grupo y destinatarios de la campaña. Hacer clic sobre «Users & Groups» y «New Group»
Se puede subir un .csv con los destinatarios de la campaña. Es importante mantener el formato de columnas de gophish (nombre, apellidos, email, posición)
Email Template y Landing page
Hay que crear el email «malicioso» de la campaña y la landing page (la web «maliciosa» de la campaña).
Yo se lo voy a pedir a chatgpt pero podeís personalizarlo como queráis en formato HTML o texto. Dentro del contenido se puede hacer uso de los siguientes campos que provee Gophish. El más común es {{.URL}} ya que será el que incluya la URL «maliciosa» a la landing page que vamos a crear de la campaña posteriormente.
Gophish también tiene un módulo para importar sitios web reales. No os lo recomiendo, va un poco raruno a veces.
También se puede configurar la landing page para capturar credenciales o datos ingresados por las «víctimas» y la opción de redirigir a los usuarios a otra web después de haber caído en el phishing.
La plantilla de email se puede configurar para incluir «tracking» y también visualizar sobre el dashboard cuando los usuarios abren los emails. Adicionalmente, se puede adjuntar ficheros. Recordar hacer uso de {{.URL}} en la plantilla para adjuntar la URL «maliciosa».
Os adjunto mi plantilla de email:
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Notificación de Seguridad</title>
</head>
<body>
<p>Estimado/a {{.FirstName}} {{.LastName}},</p>
<p>
Hemos detectado actividad inusual en su cuenta. Para garantizar su seguridad, le solicitamos que verifique su cuenta de inmediato.
</p>
<p>
Por favor, haga clic en el siguiente enlace para iniciar sesión y verificar su información:
</p>
<p>
<a href="{{.URL}}" target="_blank">Verificar Cuenta</a>
</p>
<p>
Si no reconoce esta actividad, por favor contacte a nuestro soporte técnico inmediatamente.
</p>
<p>Saludos cordiales,</p>
<p>Equipo de Seguridad</p>
</body>
</html>
Envío de la campaña
Llego el momento por fin. Lancemos la campaña.
Prueba Mailhog
Primero vamos a lanzar la campaña a nuestro MTA de pruebas MailHog y así podremos comprobar que todo esta correcto. Hay que indicar la URL donde gophish va a estar a la escucha. En mi caso será https://gophish.dfirpills.com. ¡Importante!: sobre AWS abrir el puerto 443.
Al enviarla, hay que dirigirse al servicio Mailhog (puerto 8025) y visualizar el email y la landing page.
Tras ingresar las credenciales, me redirige a este gif:
Okey, parece que todo esta ok. Si, el phishing es muy cutre lo sé. Pero aquí no estamos para hacer viguerías sino para que funcione todo bien 🤣
Antes de nada, me ha llamado la atención viendo las cabeceras una referencia a la herramienta Gophish.
Esto a mi personalmente no me gusta nada. Los cibercriminales que no hacen chapuzas lo harían bien. Para eliminar esa cabecera por defecto de Gophish tendremos que hacer «header rewriting». Este tipo de técnicas también son utilizadas por los cibercriminales. Consiste en modificar las cabeceras de los correos electrónicos cuando estos van pasando por los MTA.
Para ello, vamos a dirigirnos de nuevo al contenedor de Postfix. Tenemos que configurar el fichero main.cf:
nano /etc/postfix/main.cf
#agregamos la linea
header_checks = regexp:/etc/postfix/header_checks
Tras guardar el fichero, creamos el fichero «header_checks»
nano /etc/postfix/header_checks
#agregamos la línea
/^X-Mailer: gophish/ IGNORE
#Recargamos la configuración del servidor
postmap /etc/postfix/header_checks
postfix reload
Los resultados de la campaña de pruebas:
Envío real con Postfix
Procedemos a enviar con Postfix
Os recomiendo revisar los logs de Postfix para verificar que no exista ningún problema durante el envío.
En mi caso, lo he recibido en la bandeja de entrada sin problemas:
Revisando las cabeceras del correo recibido se puede ver como he superado correctamente los controles Anti-SPAM del servidor destino. Como veis he pasado correctamente la validación SPF, DKIM y DMARC. No obstante, no he pasado la validación rDNS ya que no lo hemos configurado en AWS.
Hasta aquí hemos llegado. Soy consciente de que se ha realizado muchísima configuración específica a lo largo de los artículos. No deberíais tener ningún problema pero tanta configuración puede dar lugar a fallos puntuales de cualquier tipo que tendréis que resolver por vosotros mismos. Ya sabéis, podéis escribir sobre los comentarios y sobre todo consultar en google y chatgpt.
Espero que os haya gustado.
Nos vemos en próximas entradas.
¡Abrazo! 🫡