Skip to content

Latest commit

 

History

History
174 lines (122 loc) · 5.82 KB

File metadata and controls

174 lines (122 loc) · 5.82 KB

MultiSMTP Validator

MultiSMTP Node.js Platform License Version

Herramienta avanzada de validación de credenciales de servidores SMTP con verificación real por envío.

English | Español


AVISO LEGAL: Esta herramienta está destinada exclusivamente a investigación de seguridad autorizada, auditoría de servidores SMTP en sistemas propios o pruebas de penetración con permiso escrito explícito. El uso no autorizado es ilegal. Los autores no asumen responsabilidad por el uso indebido.


Características

  • Procesamiento multi-hilo — validación paralela escalada a los núcleos de CPU disponibles
  • Validación real por envío — verifica credenciales SMTP intentando una autenticación y envío real
  • Pre-verificación TCP — prueba rápida de conectividad de puerto antes del handshake SMTP completo
  • Categorización de resultados — separa resultados en válidos, inválidos, rechazados y fallidos
  • Formato de entrada personalizado — soporta formato URL smtp://host:usuario:contraseña
  • Interfaz de consola colorida — salida de estado clara con indicadores emoji
  • Guardado automático — escribe resultados categorizados en el directorio Results/

Requisitos

Requisito Versión
Windows 10 / 11 (x64)
Binario precompilado No requiere Node.js
Node.js (solo fuente) 18+

Instalación

Opción 1: Binario Precompilado (Recomendado)

  1. Descarga multi-smtp.exe desde Releases
  2. Colócalo en cualquier carpeta
  3. Ejecuta multi-smtp.exe

Opción 2: Desde el Código Fuente

git clone https://github.com/ByteCodeSecure/MultiSMTP.git
cd MultiSMTP
npm install
node main.js

Compilar desde el Código Fuente

# Windows
build.bat

O manualmente:

npm install -g pkg
pkg . --out-path=build --targets node18-win-x64

Uso

Ejecuta el programa y proporciona la información requerida:

multi-smtp.exe

Se te pedirá:

  1. Ruta al archivo de lista SMTP — ruta a tu archivo con servidores SMTP
  2. Dirección de email de prueba — un email válido donde se enviarán los mensajes de validación

Formato de Entrada

El archivo de lista SMTP debe contener un servidor por línea usando el siguiente formato URL:

smtp://mail.ejemplo.com:587:usuario@ejemplo.com:contraseña
smtp://smtp.proveedor.net:465:admin@proveedor.net:contraseñasecreta
smtps://correo.seguro.com:465:usuario@correo.seguro.com:micontraseña

Formato: smtp[s]://host:puerto:usuario:contraseña

  • smtp:// — SMTP estándar
  • smtps:// — SMTP con SSL
  • host — nombre del servidor SMTP
  • puerto — puerto SMTP (comunes: 25, 465, 587)
  • usuario — nombre de usuario de autenticación (usualmente la dirección de email)
  • contraseña — contraseña de autenticación

Archivos de Salida

Todos los resultados se guardan en el directorio Results/:

Archivo Contenido Estado
Results/valid.txt Autenticación exitosa y envío realizado ✅ Válido
Results/invalid.txt Fallo de autenticación ❌ Inválido
Results/reject.txt Conexión aceptada pero envío rechazado 🚫 Rechazado
Results/fail.txt No se pudo conectar al servidor ⚠️ Fallo

Definición de Estados

Estado Significado
valid Conexión TCP exitosa + autenticación SMTP exitosa + email de prueba enviado
invalid Conectado pero autenticación fallida (credenciales incorrectas)
reject Conectado y autenticado pero el mensaje fue rechazado
fail No se pudo establecer conexión TCP con el servidor

Estructura del Proyecto

MultiSMTP/
├── core/
│   └── checker.js          # Orquestador principal de verificación SMTP
├── models/
│   └── smtp.js             # Modelos de datos (SmtpServer, SmtpResult)
├── services/
│   └── smtp_service.js     # Lógica de validación SMTP (nodemailer + tcp)
├── build/                  # Binarios compilados
├── main.js                 # Punto de entrada de la aplicación
├── package.json
└── build.bat               # Script de compilación para Windows

Detalles Técnicos

Proceso de Validación

  1. Verificación TCP — Abre un socket TCP crudo a host:puerto con timeout de 5 segundos
  2. Autenticación SMTP — Usa nodemailer para autenticarse con las credenciales proporcionadas
  3. Prueba de Envío — Intenta enviar un email real a la dirección de prueba proporcionada
  4. Resultado — Clasifica el resultado como válido / inválido / rechazado / fallido

Concurrencia

MultiSMTP determina automáticamente el número de hilos según los núcleos de CPU disponibles:

maxConcurrent = Math.max(2, Math.floor(os.cpus().length / 2))

Configuración TLS

  • Puerto 465 → secure: true (SSL/TLS)
  • Otros puertos → secure: false (STARTTLS o sin cifrar)
  • Se aceptan certificados auto-firmados (rejectUnauthorized: false)

Licencia

Este proyecto está licenciado bajo la Licencia MIT — consulta LICENSE para detalles completos.

ÚSALO DE FORMA RESPONSABLE. SOLO PARA USO AUTORIZADO.

Contribuciones

Los pull requests son bienvenidos. Para cambios importantes, por favor abre un issue primero.

Autor

ByteCodeSecureGitHub