iSMTP en Kali Linux: Guía Rápida

 https://www.onlinetis.com

iSMTP en Kali Linux: Guía Rápida

Entiendo que estás buscando información sobre iSMTP en Kali Linux. Es una herramienta muy específica y útil para quienes trabajan en pentesting de servidores de correo.

Aquí tienes un resumen claro de qué es, para qué sirve y cómo se usa.


¿Qué es iSMTP?

iSMTP es una herramienta de código abierto escrita en Python diseñada para realizar pruebas de penetración en servidores SMTP (Simple Mail Transfer Protocol). Su función principal es ayudar a los auditores de seguridad a encontrar vulnerabilidades relacionadas con el envío de correos y la enumeración de usuarios.

Funciones principales:

  • Enumeración de usuarios: Utiliza comandos como VRFY, EXPN y RCPT TO para verificar si existen nombres de usuario específicos en el servidor.

  • Pruebas de Relay Abierto (Open Relay): Comprueba si el servidor permite enviar correos a dominios externos sin autenticación, lo cual es un riesgo grave de seguridad (usado frecuentemente por spammers).

  • Soporte de archivos: Puedes cargar listas de usuarios o de servidores para procesarlos de forma masiva.


Cómo instalarlo en Kali Linux

Aunque muchas herramientas vienen preinstaladas, es posible que necesites clonarla desde su repositorio o asegurarte de tener las dependencias de Python listas.

  1. Clonar el repositorio:

    Bash
    git clone https://github.com/m0rtem/iSMTP.git
    
  2. Entrar al directorio:

    Bash
    cd iSMTP
    
  3. Ejecutar la herramienta:

    Bash
    python iSMTP.py
    

Comandos y Uso Común

La sintaxis básica suele seguir este formato:

ParámetroDescripción
-h <host>Especifica la dirección IP o dominio del servidor SMTP.
-p <puerto>El puerto del servicio (por defecto es el 25).
-e <archivo>Importa una lista de correos o usuarios para enumerar.
-s <archivo>Importa una lista de servidores para escanear.
-iModo interactivo para pruebas manuales.

Ejemplo de uso para enumerar usuarios:

Si quieres verificar si una lista de usuarios existe en un servidor específico:

python iSMTP.py -h 192.168.1.50 -e lista_usuarios.txt

Nota de seguridad: Recuerda usar esta herramienta solo en entornos controlados o bajo autorización previa. El escaneo de servidores ajenos puede ser detectado por sistemas de seguridad (IDS/IPS) y tener implicaciones legales.


Para realizar una prueba de Open Relay (relevo abierto) con iSMTP, el objetivo es determinar si el servidor permite que un usuario no autenticado envíe correos electrónicos a un dominio externo. Si esto es posible, el servidor podría ser utilizado por terceros para enviar spam masivo.

Aquí tienes el comando específico y el desglose de lo que sucede técnicamente:

Comando para test de Open Relay

Bash
python iSMTP.py -h [IP_DEL_SERVIDOR] -f remitente@dominio-interno.com -r destinatario@gmail.com

Explicación de los parámetros:

  • -h: La dirección IP o el nombre de dominio del servidor de correo que estás auditando.

  • -f: El correo electrónico de origen (From). Normalmente se usa una dirección que parezca legítima dentro del dominio del servidor.

  • -r: El correo electrónico de destino (Recipient). Aquí debes poner una dirección externa (como Gmail, Outlook, o una cuenta de tu propiedad) para ver si el servidor acepta "relevar" el mensaje hacia afuera.


¿Cómo funciona el proceso de Relay?

Cuando ejecutas este comando, la herramienta simula una conversación SMTP. Para que un servidor sea considerado un "Open Relay", debe aceptar procesar correos donde ni el origen ni el destino pertenecen a su red local sin pedir contraseña.

Resultados posibles:

  1. Vulnerable (Open Relay Detectado): El servidor responde con un código 250 OK tras los comandos MAIL FROM y RCPT TO, permitiendo el envío del mensaje de prueba.

  2. Seguro: El servidor responde con un error, comúnmente el 554 Transaction failed o 550 Relaying denied, indicando que requiere autenticación para enviar correos a dominios externos.


Verificación manual (Alternativa con Telnet)

Si iSMTP te da resultados ambiguos, puedes verificarlo manualmente conectándote al puerto 25:

  1. telnet [IP_DEL_SERVIDOR] 25

  2. HELO test.com

  3. MAIL FROM:<prueba@dominio.com>

  4. RCPT TO:<tu-correo-externo@gmail.com>

Si después del paso 4 el servidor dice 250 Recipient OK, tienes un problema de seguridad serio.

 

Cerrar un Open Relay es una de las tareas de seguridad más críticas para un administrador de sistemas, ya que un servidor mal configurado terminará rápidamente en "listas negras" (RBLs), afectando la reputación de toda tu red.

Aquí tienes una tabla comparativa con las contramedidas para los servidores de correo más comunes, enfocándonos en la configuración correcta para evitar el relevo no autorizado.


Contramedidas para cerrar Open Relay

ServidorArchivo de ConfiguraciónParámetro / Acción ClaveDescripción
Postfix/etc/postfix/main.cfsmtpd_recipient_restrictionsConfigurar como permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination.
Exim/etc/exim/exim.confhost_auth_accept_relayAsegurarse de que relay_from_hosts solo contenga 127.0.0.1 o redes locales de confianza.
MS ExchangeConsola de Admin (ECP)Connectors (Conectores de recepción)Desmarcar la casilla "Anonymous users" en conectores que tengan acceso a Internet.
Sendmail/etc/mail/sendmail.mcFEATURE(relay_local_from')`Por defecto, las versiones modernas vienen cerradas. No añadir redes externas en /etc/mail/relay-domains.

Ejemplo Práctico: Cómo arreglar Postfix

Si detectaste un Open Relay en un servidor Postfix, estos son los pasos para asegurar el archivo main.cf:

  1. Define tus redes de confianza:

    Indica qué IPs tienen permiso para enviar correos sin autenticación (normalmente solo la propia máquina).

    Bash
    mynetworks = 127.0.0.0/8 [::1]/128
    
  2. Restringe el destino de los mensajes:

    Esta es la regla de oro. Indica que solo se acepten correos si el destino es local o si el usuario está autenticado.

    Bash
    smtpd_recipient_restrictions = 
        permit_mynetworks,
        permit_sasl_authenticated,
        reject_unauth_destination
    
  3. Reinicia el servicio:

    Bash
    sudo systemctl restart postfix
    

Recomendaciones adicionales de Seguridad (Best Practices)

Para blindar tu servidor SMTP más allá del Open Relay, considera implementar:

  • SPF (Sender Policy Framework): Un registro DNS que indica qué IPs pueden enviar correos en nombre de tu dominio.

  • DKIM (DomainKeys Identified Mail): Firma digitalmente tus correos para asegurar que no han sido alterados.

  • DMARC: Una política que une SPF y DKIM para decirle a otros servidores qué hacer si falla la validación.

  • Fail2Ban: Para bloquear automáticamente por IP a quienes intenten hacer fuerza bruta o enumeración de usuarios con herramientas como iSMTP.

Tip de experto: Siempre que hagas un cambio en la configuración de relay, vuelve a ejecutar el comando de iSMTP que usamos antes para confirmar que ahora el servidor responde con un código de error 554 o 550.

 

Implementar un registro SPF (Sender Policy Framework) es el primer paso fundamental para evitar que otros suplanten tu identidad (Spoofing) y para que tus correos no terminen en la carpeta de SPAM.

El registro SPF es básicamente una línea de texto en tu configuración de DNS (tipo TXT) que le dice al mundo: "Solo estas IPs tienen permiso para enviar correos de mi parte".

Estructura de un Registro SPF

Un registro SPF típico se ve así:

v=spf1 ip4:1.2.3.4 include:_spf.google.com ~all


Generador de Registro SPF Personalizado

Para ayudarte, necesito que definas estos puntos (o puedes usar el ejemplo estándar de abajo):

  1. IP de tu servidor: La IP fija de tu VPS o servidor de correo (ej. 192.168.1.10).

  2. Servicios externos: ¿Usas Google Workspace, Microsoft 365 o Mailchimp?

  3. Política de fallo: * ~all (SoftFail): El correo se acepta pero se marca como sospechoso (Recomendado al empezar).

    • -all (Fail): El correo se rechaza si no cumple (El más seguro).

Ejemplo para un servidor propio + Google Workspace:

Si tu servidor tiene la IP 203.0.113.42 y también usas Gmail para empresa, tu registro sería:

TXT Record: v=spf1 ip4:203.0.113.42 include:_spf.google.com -all


Cómo implementarlo (Paso a paso)

  1. Accede al panel de control de tu proveedor de dominio (Cloudflare, GoDaddy, Namecheap, etc.).

  2. Busca la sección de Configuración DNS.

  3. Añade un nuevo registro:

    • Tipo: TXT

    • Nombre/Host: @ (o tu dominio, ej. tudominio.com)

    • Valor/Contenido: v=spf1 ip4:TU_IP_AQUÍ include:_spf.google.com ~all

  4. Guarda los cambios (pueden tardar desde unos minutos hasta 24 horas en propagarse).

Herramientas para verificarlo

Una vez que lo publiques, puedes usar herramientas externas para confirmar que iSMTP o cualquier atacante ya no podrá "hacerse pasar por ti" fácilmente:

  • MXToolbox: SPF Lookup.

  • Kitterman: SPF Validator.


DKIM (DomainKeys Identified Mail) es el complemento ideal del SPF. Mientras que el SPF dice quién puede enviar, el DKIM asegura que el contenido del correo no haya sido alterado en el camino.

Funciona mediante criptografía de clave pública: tu servidor firma cada correo con una clave privada y el servidor que recibe el mensaje usa una clave pública (que tú publicas en tu DNS) para verificar esa firma.


Cómo configurar DKIM (Ejemplo en Postfix con OpenDKIM)

Si estás usando Postfix en tu laboratorio de Kali o en un servidor real, estos son los pasos simplificados:

1. Instalar OpenDKIM

Bash
sudo apt update && sudo apt install opendkim opendkim-tools

2. Generar las llaves

Debes crear un "selector" (un nombre para identificar esta llave, por ejemplo mail).

Bash
opendkim-genkey -s mail -d tudominio.com

Esto generará dos archivos:

  • mail.private: ¡CUIDADO! Esta es tu clave privada. Nunca la compartas. Se queda en el servidor.

  • mail.txt: Contiene la clave pública que debes poner en tu DNS.

3. Publicar en el DNS

Abre el archivo mail.txt y verás algo parecido a esto:

mail._domainkey IN TXT ( "v=DKIM1; h=sha256; k=rsa; p=MIIBIjANBgkq..." )

Debes crear un registro TXT en tu panel de control de dominio:

  • Nombre/Host: mail._domainkey

  • Valor: v=DKIM1; k=rsa; p=TU_CLAVE_LARGA_AQUÍ


Diferencias Clave: SPF vs DKIM vs DMARC

Para que no te líes con las siglas, aquí tienes una tabla rápida:

SiglaFunción PrincipalAnalogía
SPFAutoriza la dirección IP del remitente.La lista de invitados en la puerta de una fiesta.
DKIMFirma digitalmente el contenido del correo.Un sello de lacre en un sobre que garantiza que no se abrió.
DMARCInstruye al receptor qué hacer si SPF o DKIM fallan.El manual de instrucciones para el guardia de seguridad.

El paso final: DMARC

Una vez que tengas SPF y DKIM configurados, el "toque de gracia" es el registro DMARC. Sin él, si alguien falla las pruebas anteriores, el servidor de destino podría dejar pasar el correo de todos modos.

Un registro DMARC básico para obligar a que se cumplan las reglas sería:

v=DMARC1; p=quarantine; rua=mailto:admin@tudominio.com

  • p=quarantine: Envía a SPAM los correos que no pasen SPF/DKIM.

  • rua: Te envía un informe diario de quién está intentando enviar correos en tu nombre.

Entradas populares de este blog

Hacking y ciberseguridad en kali linux con Fping

Hacking y ciberseguridad en kali linux con atk6-thcping6

Como utilizar Fierce en kali linux