Instalación de Gophish con Docker
Actualizado: 2026-01-27 · Dificultad: Media · Tiempo estimado: 20 min
Resultado: Gophish desplegado en Docker y configurado con un SMTP relay para enviar campañas.
Requisitos
- Conocimientos básicos de Linux
- Docker instalado en el sistema
- Dominio propio operativo
- Navegador web moderno
Objetivo
En este tutorial desplegaremos Gophish utilizando Docker. Gophish es una herramienta open-source diseñada para la gestión y automatización de campañas de concienciación en seguridad mediante correo electrónico.
Usaremos la imagen oficial y configuraremos el envío de correos mediante un SMTP relay externo.
Disclaimer
Este contenido tiene fines educativos y de laboratorio. El uso de Gophish debe realizarse únicamente en entornos controlados, con autorización expresa y cumpliendo la legislación vigente.
Pasos
1) Descarga de la imagen oficial
Descargamos la imagen oficial desde Docker Hub:
sudo docker pull gophish/gophish
2) Levantar el contenedor
Lanzamos el contenedor exponiendo el panel de administración y el puerto del servidor de campañas:
sudo docker run -p 3333:3333 -p 8080:80 --name mygophish gophish/gophish
Durante el arranque se generan automáticamente las credenciales iniciales.
3) Acceso a la interfaz web
Accedemos desde el navegador a:
https://localhost:3333
El certificado es autofirmado, por lo que el navegador mostrará una advertencia.
4) Cambio de contraseña inicial
Al iniciar sesión con las credenciales mostradas en consola, Gophish obliga a cambiar la contraseña.
Validación
Si todo es correcto, verás el dashboard principal con acceso a:
- Campaigns
- Email Templates
- Landing Pages
- Sending Profiles
- Users & Groups
5) Configuración del perfil de envío (SMTP)
Para enviar correos necesitamos un servidor SMTP. En este caso usaremos un SMTP relay externo mediante SendGrid.
Regístrate en: https://sendgrid.com
5.1) Creación del API Token
Accede a Email API y selecciona SMTP Relay.
Asigna un nombre al token y guarda el valor generado. No volverá a mostrarse.
5.2) Configuración del Sending Profile
En Gophish ve a Sending Profiles → New Profile y completa los datos proporcionados por SendGrid.
El campo SMTP From debe usar un dominio previamente validado en SendGrid al crear la cuenta.
6) Prueba de envío
Si nos dirigimos al perfil de envío, veremos un botón llamado Send Test Email.
Tras enviar el correo de prueba, deberíamos recibirlo correctamente en nuestra bandeja de entrada.
7) Envío de una campaña
Únicamente a modo de prueba, se ha iniciado una campaña utilizando plantillas de correo creadas en HTML.
Para ello, accedemos a Campaigns → New Campaign y rellenamos los campos necesarios.
En el apartado de URL debemos indicar una página web bajo nuestro control que simule, en este caso, el portal de Instagram.
Para ello, podemos bajarnos plantillas de internet y montar un servidor Web con este tutorial ;)Este es el resultado, un correo suplantando a instagram en mi bandeja de entrada :)
A tener en cuenta
Hay que añadir una serie de anotaciones a esto. Estoy con el plan gratuito de Sendgrid, limitado a 100 correos y con una tasa de entrega que no es del 100%, sobre todo con Outlook. Este tiene unas medidas de protección más fuertes y en ocasiones no llegan a ni siquiera a la carpeta de SPAM.
Para mejorar esto, tendríamos que comprar un plan de Sendgrid, ya que tendríamos alguna IP dedicada de un rango que no esté bloqueado.
Añadido a ello, es importante mencionar que si queremos a hacer una auditoría, no te vale cualquier dominio. Si el dominio de tu cliente es manolo.com, necesitaremos comprar un dominio parecido (mano1o.com) y registrarlo en sendgrid.
Por último, en lo referente a gophish, la funcionalidad de obtener las métricas de clicks y aperturas de correo
con este método no funcionan. Al tener el contenedor en local, no tiene manera de mandar los datos.
No funcionaría si levantamos el gophish en cloud, por ejemplo AWS, ya que estos proveedores bloquean el tráfico
SMTP precisamente para evitar el mal uso de lo que hemos visto en el tutorial.
En la propia plataforma de Sendgrid, tenemos secciones de estadísticas que nos miden el procentaje de envío, de
aperturas, de clicks, bloqueos, reportados como spam... Así que nos puede servir.
Troubleshooting
-
Error: No se puede acceder a https://localhost:3333 →
Solución: Verifica el contenedor con
docker ps -
Error: Puerto 3333 ocupado →
Solución: Usa otro puerto, por ejemplo
-p 4444:3333
Notas / Mejores prácticas
- No expongas Gophish directamente a Internet.
- Usa reverse proxy y TLS válido en producción.
- Registra métricas solo con consentimiento.
Volver a tutoriales.