Hace pocos días, investigadores de SEC Consult dieron a conocer, mediante una publicación de blog, información sobre una nueva técnica de ataque denominada SMTP Smuggling, la cual puede permitir enviar correos electrónicos falsos que eluden los mecanismos de autenticación.
Se menciona que la técnica de ataque tiene como objetivo el Protocolo SMTP, en la cual un atacante puede abusar de las diferencias en la forma en que los servidores SMTP salientes y entrantes interpretan una secuencia que indica el final de los datos del mensaje.
Sobre SMTP Smuggling
SMTP Smuggling es una nueva técnica que permite dividir un mensaje en varios mensajes diferentes cuando es transmitido por el servidor SMTP original a otro servidor SMTP, que interpreta la secuencia de manera diferente para separar letras transmitidas a través de una conexión.
Esto permite la inyección de comandos SMTP en mensajes de correo electrónico de una manera que hace que los servidores receptores los traten como dos mensajes separados, uno de los cuales tienen algunos encabezados: “Para: destinatario@dominio.com”, “De: remitente@dominio.com”, “Asunto: Asunto de ejemplo”, seguidos del cuerpo real del mensaje.
Además, debido a que el sobre del mensaje principal pasa con éxito controles de seguridad como SPF, DKIM y DMARC, el mensaje falsificado se entrega a las bandejas de entrada sin advertencias.
» SMTP Smuggling es una novedosa técnica de suplantación de correo electrónico que permite a los atacantes enviar correos electrónicos con direcciones de remitente falsas (por ejemplo, ceo@microsoft.com) para hacerse pasar por otra persona», explica Longin a Dark Reading. «Por lo general, existen algunas mitigaciones en la infraestructura de correo electrónico para limitar tales ataques, pero con el nuevo enfoque, se entregará un correo electrónico falsificado».
El nuevo ataque, denominado contrabando SMTP, fue ideado por Timo Longin, consultor senior de seguridad de SEC Consult. Longin tomó prestado el concepto principal de otra clase de ataques conocidos como HTTP request smuggling, donde los atacantes engañan a un balanceador de carga frontal o un proxy inverso para reenviar solicitudes específicamente diseñadas a un servidor de aplicaciones back-end de una manera en la que el back-end del servidor final lo procesa como dos solicitudes separadas en lugar de una.
En base a ello, SMTP Smuggling aprovecha que los servidores SMTP interpretan el final de la secuencia de datos de forma diferente, lo que puede provocar la división de una letra en varias dentro de la misma sesión en el servidor SMTP.
Esta secuencia puede ir seguida de comandos para enviar otro mensaje sin interrumpir la conexión. Algunos servidores SMTP siguen estrictamente la prescripción, pero otros, para garantizar la compatibilidad con algunos clientes de correo electrónico poco comunes.
El ataque se reduce al hecho de que se envía una carta al primer servidor, que procesa solo el delimitador «\r\n.\r\n», en cuyo cuerpo hay un delimitador alternativo, por ejemplo, «\ r.\r», seguido de comandos que envían un segundo mensaje. Dado que el primer servidor sigue estrictamente la especificación, procesa la secuencia recibida como una sola letra.
Si luego la carta se envía a un servidor de tránsito o a un servidor de destinatario que además acepta la secuencia «\r.\r» como separador, se procesará como dos cartas enviadas por separado (la segunda carta puede enviarse en nombre de un usuario no autenticado a través de «AUTH LOGIN», pero aparece correcto en el lado del destinatario).
Se menciona que el problema ya fue solucionado en las últimas versiones de Postfix en las cuales se añadió la configuración «smtpd_forbid_unauth_pipelining«, que hace que la conexión falle si los delimitadores que no cumplen con RFC 2920 y RFC 5321. Esta configuración está deshabilitada de forma predeterminada, pero planean habilitarla de forma predeterminada en la rama Postfix 3.9, que se espera para 2024.
Además de ello se agregó la configuración smtpd_forbid_bare_newline, deshabilitada de forma predeterminada, que prohíbe el uso del carácter de avance de línea («\n») para separar líneas sin retorno. También se agregó el parámetro smtpd_forbid_bare_newline_exclusions, que permite deshabilitar la restricción del soporte «\n» para clientes de la red local.
Por la parte de Sendmail, este proporciona una opción ‘o’ para proteger contra ataques en srv_features, que permite procesar solo la secuencia «\r\n.\r\n».
Finalmente si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.