Simulación de Phishing con herramientas gratuitas

1. Introducción

En este documento se realiza un ejercicio de pruebas para comprender como funcionan las herramientas de phishing. El propósito de esta práctica de laboratorio es educativo y con fines de concientización.

  1. Herramientas a utilizar.

En este ejemplo de campaña de prueba de phishing que vamos a realizar con software gratuito se utilizarán las siguientes herramientas:

  • Kali Linux
  • Gophish (recomendamos ir a la última sección del documento para ver cómo dificultar su detección)
  • Postfix
  • Serveo o Ngrok
  • Gmail

2. Preparativos Iniciales

Al tratarse de una prueba en entorno local, utilizaremos Ngrok para generar una URL pública. Sin embargo, este tipo de enlaces suele ser considerado sospechoso por servidores de correo como Outlook. Como alternativa, se puede usar Serveo.net para exponer localmente el sitio o incluso contratar un servicio de hosting, si se desea simular un escenario más realista como lo haría un atacante verdadero.

2.1 Registro e instalación de Ngrok

Primero, debemos registrarnos en el sitio oficial de Ngrok para obtener un token de autenticación que nos permita generar URLs hasta 8 horas.
Sin estar registrados, las URLs de Ngrok expiran en 2 horas.

Luego de registrarnos:

  • Instalar Ngrok. Desde la documentación oficial se puede copiar el comando:

Luego sigue añadir el authtoken al Ngrok instalado en nuestra máquina, como puede verse arriba.

2.2 Configuración de Gophish

Accedemos a la carpeta de instalación de Gophish y editamos el archivo config.json:

nano config.json

Verificamos que el puerto de la interfaz web y el listener coincidan con el que usaremos en Ngrok (por ejemplo, 8081).

Ejecutamos el comando ngrok http 8081.

  • Ejecutar Ngrok

Lanzamos el túnel con el siguiente comando:

ngrok http 8081

Esto creará una URL pública que redireccionará al servidor de Gophish en nuestra máquina local.

2.4 Configuración de Postfix con Gmail y App Password

En un escenario real, un atacante normalmente no dependería de Gmail ni de un relay gratuito, sino que utilizaría su propio servidor de correo alojado (por ejemplo, en un VPS o servicio especializado) con un dominio controlado, y configurado con autenticaciones SPF, DKIM y DMARC para mejorar la entregabilidad y que los correos lleguen a bandeja entrada.

En este laboratorio, en cambio, vamos a usar Postfix con Gmail y una App Password para simplificar la configuración y no incurrir en costos de infraestructura.

2.4.1 Requisitos previos

  • Cuenta de Gmail con verificación en dos pasos (2FA) activada (este proceso puede tardar en ser completamente habilitado si se crea un email nuevo).
  • Generar una App Password desde tu cuenta de Google y anotarla para configurar Postfix.
  • Sistema Linux (Ubuntu o similar) con permisos de administrador.

2.4.2 Instalar Postfix y dependencias

apt update && apt install postfix mailutils libsasl2-2 ca-certificates libsasl2-modules

  • Configurar Postfix

Editar /etc/postfix/main.cf y añadir:

relayhost = [smtp.gmail.com]:587

smtp_use_tls = yes

smtp_sasl_auth_enable = yes

smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd

smtp_sasl_security_options = noanonymous

smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt

  • Configuración

Ejecutamos los siguientes comandos:

# echo [smtp.gmail.com]:587 wazuhtest@testserver.com:mypassword > /etc/postfix/sasl_passwd

# postmap /etc/postfix/sasl_passwd

# chmod 400 /etc/postfix/sasl_passwd

# chown root:root /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db

# chmod 0600 /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db

# systemctl restart postfix

  • Probar que funciona

Para ello haremos la siguiente prueba:

echo “Test de Postfix” | mail -s “Prueba” -r “tu_correo@gmail.com” destino@ejemplo.com

3. Lanzamiento de Gophish

3.1 Iniciar Gophish

Nos posicionamos en el directorio donde se encuentra Gophish y ejecutamos:

./gophish

  • Si es la primera vez que se ejecuta, Gophish generará una contraseña por defecto para el panel de administración.
  • Accedemos al panel desde un navegador con la URL que generó Ngrok o https://localhost:3333.

3.2 Configuración de la campaña

3.2.1 Crear perfil de envío (Sending Profile)

  • Name: Aconsejaría poner un nombre descriptivo para el perfil de envío de correos.
  • SMTP From: Ponemos el correo electrónico emisor del phishing. Se recomienda lanzarlo desde un dominio propio y que el mismo tenga las autenticaciones de SPF, DKIM y DMARC para que sea considerado un dominio fiable. Ahora, a efectos prácticos utilizaremos Gmail que cargamos en nuestro servidor local de correos.
  • Username y Password: A efectos prácticos (y económicos) optamos por utilizar Postfix. Resulta que las políticas de seguridad de Gmail nos impiden lanzarlo directamente usando su servidor SMTP. 

Al final podemos probar lanzar un correo de prueba.

3.2.2 Plantillas y landing

  • Cargar la Email Template y la Landing Page.
    Estas pueden ser descargadas de Internet o personalizadas manualmente.

3.3 Verificar servicios en funcionamiento

Nos aseguramos de que Postfix esté corriendo:

service postfix start

4. Prueba y captura

Enviamos el correo a una cuenta de prueba. Al hacer clic en el enlace:

  1. Se abre la Landing Page.
  2. Al ingresar credenciales, Gophish captura automáticamente los datos enviados por POST.
  3. Finalmente, redirecciona (por ejemplo) a una página legítima como Microsoft o Google.

5. Alternativa con Serveo

Si preferimos no usar Ngrok, podemos optar por Serveo, que funciona vía SSH.

Subdominio aleatorio:

ssh -R 80d:localhost:8081 serveo.net

Subdominio personalizado:

ssh -R ejemplo:80:localhost:8888 serveo.net

6. Disminuyendo la probabilidad de detección

Para evitar que los servidores de correo marquen nuestros correos como sospechosos (y que Gmail bloquee la cuenta), se recomienda:

Evitar enviar múltiples correos desde una misma IP sin variación.

Modificar el encabezado X-Mailer, que por defecto indica “gophish”.

6.1 Modificar X-Mailer

Editamos el archivo config.go ubicado en /gophish/config/:

nano config.go

Buscamos la variable ServerName y reemplazamos su valor por algo menos evidente, por ejemplo:

Servername: “IGNORE”

Guardamos el cambio y recompilamos:

go build

Damos permiso de ejecución (Si es necesario):

chmod +x gophish

Y podremos iniciar Gophish con:

./gophish

7. Resumen

Con estos pasos, hemos configurado una campaña de prueba de phishing utilizando herramientas accesibles y gratuitas. Aunque se trata de una prueba técnica, recordá siempre obtener consentimiento informado para este tipo de pruebas en entornos reales.