
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.
- 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:
- Se abre la Landing Page.
- Al ingresar credenciales, Gophish captura automáticamente los datos enviados por POST.
- 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.