Skip to content

About

Herramienta educativa de laboratorio para enseñar email spoofing y las defensas SPF/DKIM/DMARC/MX. Interfaz web, multiplataforma.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

🎓 Spoofing Edu Tool

CI multiplataforma

Herramienta educativa de laboratorio para enseñar suplantación de remitente en correo electrónico (email spoofing) y las defensas que existen: SPF, DKIM, DMARC y MX. Interfaz 100% web, multiplataforma (Windows, macOS, Linux) porque corre sobre Node.js / Docker.

⚠️ Uso exclusivamente educativo y en entornos controlados. Suplantar el remitente de correos de terceros sin autorización es ilegal en la mayoría de países. Usa esta herramienta solo con dominios propios, laboratorios de práctica, o destinatarios que te dieron consentimiento explícito.

¿Qué hace?

  1. 🔍 Verificar dominio — consulta en vivo los registros DNS de cualquier dominio (SPF, DMARC, MX y DKIM si conoces el selector) y explica, en lenguaje simple, qué tan fácil sería suplantarlo y por qué.
  2. ✉️ Enviar correo de prueba — arma un correo con remitente (From) arbitrario y lo envía en uno de dos modos:
    • Modo laboratorio (por defecto): el correo va a un servidor SMTP de mentira (Mailpit) que corre en tu propia máquina. Nunca sale a Internet ni llega a una bandeja real — lo ves en una webmail local. 100% seguro para hacer la demo en clase.
    • Modo SMTP externo: usas tus propias credenciales SMTP para enviar a un destinatario real. Está pensado para practicar en un dominio propio (por ejemplo un dominio de pruebas que tú controlas) o con consentimiento explícito del destinatario.

No incluye envío masivo, ni firma DKIM falsa, ni técnicas para evadir filtros antispam — el objetivo es mostrar el mecanismo y su defensa, no producir una herramienta de ataque real.

Multiplataforma

Es JavaScript puro (Express + Nodemailer, sin dependencias con compilación nativa), así que corre idéntico con Node.js 18/20/22 en Windows, macOS y Linux. La CI del repositorio (.github/workflows/ci.yml) lo verifica automáticamente en cada cambio, ejecutando npm test (un smoke test que arranca el servidor y valida sus endpoints) en las tres plataformas. La vía Docker usa imágenes multi-arquitectura (node:20-alpine y axllent/mailpit), por lo que también funciona igual en Apple Silicon, Intel/AMD y Linux ARM.

Requisitos

  • Opción A (recomendada): Docker + Docker Compose — funciona igual en Windows, macOS y Linux, e incluye automáticamente el servidor de laboratorio (Mailpit).
  • Opción B: Node.js 18+ instalado — si prefieres correrlo nativo sin Docker (necesitarás tu propio servidor SMTP de pruebas para el modo laboratorio, ver más abajo).

Puesta en marcha — Opción A: Docker (recomendada)

docker compose up --build

Luego abre:

Todo lo que envíes en "Modo laboratorio" aparecerá en esa bandeja web, mostrando el remitente falsificado tal como lo vería un cliente de correo.

Para detener: Ctrl+C y luego docker compose down.

Puesta en marcha — Opción B: Node.js nativo

npm install
npm start

Abre http://localhost:3000.

Sin Docker no tienes Mailpit integrado. Para el modo laboratorio puedes:

  • Instalar Mailpit por tu cuenta (brew install mailpit en macOS, binarios para Windows/Linux en su repo) y dejarlo corriendo (mailpit), o
  • Usar directamente el modo SMTP externo con un servidor SMTP propio.

Variables de entorno opcionales (.env o exportadas antes de npm start):

Variable Default Uso
PORT 3000 Puerto de la app web
MAILPIT_HOST localhost Host del SMTP de laboratorio
MAILPIT_PORT 1025 Puerto del SMTP de laboratorio
MAILPIT_WEBUI_URL http://localhost:8025 URL que se muestra para ver el correo

Cómo usarlo en una clase (sugerencia)

  1. Con la pestaña Verificar dominio, analiza un dominio real con buena configuración (ej. un banco grande) y uno mal configurado, para comparar los veredictos de SPF/DMARC.
  2. Con la pestaña Enviar correo de prueba, en modo laboratorio, suplanta el remitente (ej. soporte@bancox.com) y envíalo a cualquier dirección de prueba.
  3. Abre la bandeja de Mailpit (http://localhost:8025) y muestra cómo el cliente de correo despliega el remitente falso sin ninguna alerta visual — y explica que en el mundo real, si bancox.com tuviera DMARC p=reject, ese mismo correo habría sido rechazado antes de llegar.
  4. Vuelve a la pestaña de verificación para mostrar en vivo el registro DMARC real del dominio que acaban de suplantar, cerrando el círculo entre "ataque" y "defensa".

Estructura del proyecto

spoofing edu tool/
├── server.js            # Backend Express: checker DNS + envío SMTP
├── public/
│   ├── index.html        # Interfaz web
│   ├── app.js             # Lógica del frontend
│   └── style.css          # Estilos
├── docker-compose.yml    # App + Mailpit (modo laboratorio)
├── Dockerfile
├── data/audit.log         # Registro local de cada envío (auditoría)
└── package.json

Notas de seguridad del propio proyecto

  • Cada envío (modo, remitente, destinatario, fecha) queda registrado en data/audit.log para que un instructor pueda revisar qué se hizo.
  • El botón de envío permanece deshabilitado hasta marcar la casilla de confirmación de autorización.
  • El modo laboratorio es el que viene seleccionado por defecto.
  • Las credenciales SMTP del modo externo solo se usan en memoria para ese envío puntual; no se guardan en disco ni en el navegador.

About

Herramienta educativa de laboratorio para enseñar email spoofing y las defensas SPF/DKIM/DMARC/MX. Interfaz web, multiplataforma.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages