SMTP Smuggling

Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks

Información Básica

Este tipo de vulnerabilidad fue descubierta originalmente en esta publicación donde se explica que es posible explotar discrepancias en cómo se interpreta el protocolo SMTP al finalizar un correo electrónico, permitiendo a un atacante introducir más correos en el cuerpo del legítimo, permitiendo suplantar a otros usuarios del dominio afectado (como admin@outlook.com) eludiendo defensas como SPF.

Por qué

Esto se debe a que en el protocolo SMTP, los datos del mensaje que se enviará en el correo electrónico son controlados por un usuario (atacante) que podría enviar datos especialmente diseñados abusando de las diferencias en los analizadores que introducirán correos adicionales en el receptor. Eche un vistazo a este ejemplo ilustrado de la publicación original:

Cómo

Para explotar esta vulnerabilidad, un atacante necesita enviar algunos datos que el servidor SMTP saliente piensa que es solo 1 correo, pero el servidor SMTP entrante piensa que hay varios correos.

Los investigadores descubrieron que diferentes servidores entrantes consideran diferentes caracteres como el final de los datos del mensaje de correo que los servidores salientes no. Por ejemplo, un final regular de los datos es \r\n.. Pero si el servidor SMTP entrante también soporta \n., un atacante podría simplemente agregar esos datos en su correo y comenzar a indicar los comandos SMTP de nuevos correos para introducirlos, tal como en la imagen anterior.

Por supuesto, esto solo podría funcionar si el servidor SMTP saliente no trata también estos datos como el final de los datos del mensaje, porque en ese caso vería 2 correos en lugar de solo 1, así que al final esta es la desincronización que se está abusando en esta vulnerabilidad.

Datos de desincronización potencial:

  • \n.

  • \n.

También tenga en cuenta que el SPF se elude porque si introduce un correo de admin@outlook.com desde un correo de user@outlook.com, el remitente sigue siendo outlook.com.

Referencias

Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks

Last updated