SWAKS diseñada para probar, analizar y depurar servidores y transacciones de correo electrónico (SMTP)
SWAKS diseñada para probar, analizar y depurar servidores y transacciones de correo electrónico (SMTP)
SWAKS (Swiss Army Knife for SMTP) es una herramienta muy potente incluida en Kali Linux diseñada para probar, analizar y depurar servidores y transacciones de correo electrónico (SMTP).
A continuación, te presento una guía práctica en español con su instalación, sintaxis básica y los comandos más utilizados.
1. Instalación
Aunque suele venir preinstalada en Kali Linux, si por alguna razón no la tienes, puedes instalarla fácilmente ejecutando en tu terminal:
Bash
sudo apt update
sudo apt install swaks
2. Sintaxis y Parámetros Principales
Los argumentos más comunes que utilizarás con
swaks son:-s [servidor]: Dirección IP o dominio del servidor SMTP de destino.-p [puerto]: Puerto SMTP a utilizar (por defecto suele ser 25, 465 o 587).-to [correo]: Dirección de correo electrónico del destinatario.-from [correo]: Dirección de correo electrónico del remitente.--data [texto]: Contenido o cuerpo personalizado para el mensaje.-a: Intenta realizar autenticación (útil para servidores que piden usuario y contraseña).
3. Ejemplos Prácticos de Uso
A. Envío de correo simple (Básico)
Para realizar una prueba rápida enviando un correo básico a través de un servidor local o remoto sin autenticación:
Bash
swaks --to usuario@destino.com --from remitente@origen.com -s 192.168.1.50
B. Envío con asunto y cuerpo personalizados
Si necesitas definir un mensaje específico con asunto (Subject), puedes estructurarlo de la siguiente manera:
Bash
swaks --to victima@objetivo.com --from admin@empresa.com -s mail.objetivo.com --data "Subject: Alerta de seguridad\n\nEste es un correo de prueba automatizado."
C. Envío utilizando Autenticación (SMTP Auth)
Muchos servidores exigen credenciales. Puedes indicarle el usuario con
--auth-user y la contraseña con --auth-password:Bash
swaks --to destino@correo.com --from remitente@correo.com -s smtp.servidor.com -p 587 -a CRAM-MD5 --auth-user tu_usuario --auth-password tu_contraseña
D. Envío mediante conexiones seguras (TLS / STARTTLS)
Para cifrar la comunicación con el servidor de correo utilizando STARTTLS:
Bash
swaks --to destino@correo.com --from remitente@correo.com -s smtp.servidor.com -p 587 --tls
Nota de seguridad: Utilizaswaksexclusivamente en entornos controlados, laboratorios de prácticas o con autorización explícita del propietario del servidor de correo, ya que el uso indebido para suplantación de identidad (spoofing) o envío masivo no autorizado infringe normativas de seguridad y privacidad.
Simulación de Escenarios de Auditoría y Phishing Ético con SWAKS
En las auditorías de seguridad y las pruebas de ingeniería social (phishing ético),
swaks es excelente para comprobar si las organizaciones tienen correctamente configurados sus mecanismos de defensa de correo electrónico (como SPF, DKIM y DMARC), o para educar a los usuarios sobre la suplantación de identidad.A continuación, te muestro tres escenarios prácticos de auditoría simulada:
1. Auditoría de Políticas de Correo (SPF / Spoofing)
Muchas empresas no configuran adecuadamente sus registros SPF (Sender Policy Framework) o DMARC, lo que permite que un atacante envíe correos haciéndose pasar por un dominio legítimo.
- Objetivo: Comprobar si el servidor de correo del cliente acepta un correo cuyo remitente imita a un dominio interno de su propia empresa sin validarlo.
- Comando:Bash
swaks --to empleado@empresa-objetivo.com --from soporte@empresa-objetivo.com -s mail.empresa-objetivo.com --data "Subject: Actualizacion de contraseña obligatoria\n\nPor favor ingrese al siguiente enlace para actualizar sus credenciales corporativas." - Análisis defensivo: Si el correo llega a la bandeja de entrada principal en lugar de la carpeta de SPAM (o es rechazado por el servidor), la organización tiene una vulnerabilidad de email spoofing que debe corregir implementando políticas DMARC estrictas (
p=reject).
2. Simulación de Phishing con un Archivo Adjunto Falso
En las pruebas de concienciación, a menudo se simula el envío de documentos con extensiones peligrosas o nombres atractivos para medir cuántos usuarios caen en la trampa.
- Objetivo: Enviar un correo estructurado con un asunto llamativo y un archivo adjunto simulado (por ejemplo, un documento corporativo falso).
- Comando:Bash
swaks --to objetivo@empresa.com --from rrhh@empresa.com -s smtp.empresa.com --header "Subject: Bonos de productividad Q3 - Urgente" --body "Hola,\n\nAdjunto encontrarás el listado con los nuevos bonos de productividad aprobados este trimestre.\n\nAtentamente,\nRecursos Humanos" - Nota: Para adjuntar archivos reales con SWAKS, puedes utilizar la cabecera
--attach [ruta_del_archivo], ideal para probar si los filtros antivirus/antispam del perímetro detectan cargas maliciosas simuladas (como archivos EICAR).
3. Pruebas de Resiliencia contra Credential Harvesting (Campaña de Autenticación Falsa)
Cuando se evalúa si los empleados reconocen páginas de inicio de sesión falsas, se suele enviar un enlace simulando una herramienta corporativa (como Microsoft 365, VPN o un portal de fichaje).
- Objetivo: Enviar un correo corporativo falso que redirija a un dominio controlado por el equipo de red Team para auditoría.
- Comando:Bash
swaks --to victima@objetivo.com --from it-helpdesk@empresa.com -s smtp.objetivo.com --data "Subject: Mantenimiento de Correo Requerido\n\nSu cuenta requiere reautenticación inmediata debido a cambios en el servidor:\nhttps://login.phishing-simulacion.com/auth\n\nAtentamente,\nSoporte TI" - Análisis defensivo: Los resultados de estas pruebas sirven para métricas internas y para programar formaciones específicas a aquellos departamentos o usuarios que hagan clic en el enlace simulado.
Recomendación clave: Toda simulación de phishing o auditoría de correo debe realizarse estrictamente bajo contrato de servicios (Rules of Engagement) y con la aprobación por escrito de la dirección o el CISO de la organización auditada para evitar malentendidos legales.
Análisis de Cabeceras y Automatización con SWAKS
Para cerrar este ciclo de auditoría y análisis de correo electrónico, vamos a ver cómo automatizar pruebas recurrentes y cómo analizar las cabeceras resultantes para comprobar si mecanismos de seguridad críticos como DKIM (DomainKeys Identified Mail) y SPF están funcionando correctamente.
1. Análisis de Cabeceras para Verificar SPF y DKIM
Cuando recibes un correo de prueba (o uno real), la clave para saber si la seguridad del dominio funciona reside en el análisis de las cabeceras completas (Headers).
Puedes utilizar
swaks añadiendo la opción de depuración (--debug o -v) para ver la respuesta detallada del servidor y comprobar qué sellos de autenticación deja el receptor.- ¿Qué buscar en las cabeceras del correo recibido?
- Authentication-Results: Es la línea más importante. Un servidor de correo moderno (como Gmail o Outlook corporativo) añadirá una línea similar a esta:
Authentication-Results: mx.google.com; dkim=pass header.i=@tudominio.com; spf=pass ... - SPF (Sender Policy Framework): Si el resultado es
pass, el servidor receptor comprobó que la IP desde la que enviaste el correo (swaks) está autorizada en los registros DNS del dominio remitente. Si salefailosoftfail, la organización es vulnerable al spoofing. - DKIM (DomainKeys Identified Mail): Verifica si el correo fue firmado criptográficamente por el servidor legítimo del dominio. Si estás haciendo una prueba de suplantación sin las claves privadas del dominio legítimo, lo normal es que DKIM aparezca como
failo ausente (none).
2. Automatización de Pruebas con SWAKS (Bash Scripting)
Si necesitas realizar una campaña masiva controlada (por ejemplo, para evaluar la tasa de respuesta en un test de concienciación de phishing para 50 usuarios), puedes automatizar
swaks utilizando un sencillo script de Bash que lea una lista de correos desde un archivo de texto.Crea un archivo llamado
lista_objetivos.txt con un correo por línea, y luego ejecuta el siguiente script:Bash
#!/bin/bash
# Archivo con los correos de prueba
DESTINATARIOS="lista_objetivos.txt"
REMITENTE="soporte-it@empresa-objetivo.com"
SERVIDOR="mail.empresa-objetivo.com"
while IFS= read -r correo; do
echo "Enviando correo de prueba a: $correo"
swaks --to "$correo" \
--from "$REMITENTE" \
--server "$SERVIDOR" \
--header "Subject: Prueba de seguridad interna - No responder" \
--body "Hola,\n\nEste es un mensaje automatizado de control de seguridad.\n\nAtentamente,\nEquipo de Red Team" \
--quit-after DATA \
>/dev/null 2>&1
# Pausa de 2 segundos entre envíos para no saturar el servidor SMTP
sleep 2
done < "$DESTINATARIOS"
echo "¡Campaña de prueba finalizada con éxito!"
- Explicación del parámetro clave:
--quit-after DATAle indica aswaksque cierre la conexión justo después de enviar los datos, optimizando el rendimiento del script.
Recomendación Defensiva Final
El objetivo de realizar estas pruebas con
swaks y analizar las cabeceras no es solo encontrar fallos, sino ayudar a las empresas a implementar de forma estricta los tres pilares del correo seguro:- SPF: Definir qué servidores IP pueden enviar correo en nombre del dominio.
- DKIM: Firmar digitalmente los mensajes para asegurar que no han sido alterados en tránsito.
- DMARC: Indicarle al servidor receptor qué hacer si SPF o DKIM fallan (configurándolo en modo
p=rejectpara bloquear automáticamente cualquier intento de suplantación).