it-swarm-es.com

campo falso "de" en un correo electrónico

¿Cómo puedo manipular el campo "desde" en un correo electrónico y hacer que el usuario "hasta" vea algo diferente al real?.

Ejemplo:

realmente de

From: [email protected]

pero ellos ven

From: Tremayne "Top Dog" Stamper

Escuché que manipuló SMTP, pero realmente no estoy seguro de qué tan preciso es o cómo se puede hacer

9
TStamper

Básicamente, SMTP es solo un protocolo basado en texto sin verificación real. He aquí un ejemplo:

=== Trying g3.example.net:25...
=== Connected to g3.example.net.
<-  220 home.example.net ESMTP Exim 4.68 Thu, 07 May 2009 11:03:21 -0400
 -> EHLO g3.example.net
<-  250-home.example.net Hello g3.example.net [192.168.0.4]
<-  250-SIZE 52428800
<-  250-PIPELINING
<-  250-AUTH CRAM-SHA1 CRAM-MD5 MSN
<-  250-STARTTLS
<-  250 HELP
 -> MAIL FROM:<[email protected]>
<-  250 OK
 -> RCPT TO:<[email protected]>
<-  250 Accepted
 -> DATA
<-  354 Enter message, ending with "." on a line by itself
 -> Date: Thu, 07 May 2009 11:03:21 -0400
 -> To: [email protected]
 -> From: [email protected]
 -> Subject: test Thu, 07 May 2009 11:03:21 -0400
 -> X-Mailer: swaks v20070921.0-dev jetmore.org/john/code/#swaks
 -> 
 -> This is a test mailing
 -> 
 -> .
<-  250 OK id=KJA4HL-0006M6-8T
 -> QUIT
<-  221 home.example.net closing connection
=== Connection closed with remote Host.

La línea "MAIL FROM:" define el remitente del sobre SMTP, y From: se define en el mensaje DATA. Hay formas de protegerse contra esto, pero están definidas en la lógica del servidor de correo, no en el protocolo en sí.

Por ejemplo, yo, como proveedor de correo, puedo solicitar a un usuario que se autentique utilizando un nombre de usuario de tipo usuario @ dominio. Entonces mi servidor de correo podría requerir que cualquier correo que envíen tenga un remitente de sobre y un encabezado De: que coincida con el usuario con el que se autenticó. Tecnologías adicionales como DKIM y SPF también pueden ayudar en esta área.

14
jj33

Hay un par de cosas diferentes a considerar aquí. Si solo desea mostrar un nombre o una dirección de correo electrónico diferente, configure el encabezado "De" del mensaje (la dirección del remitente del mensaje) en la dirección de correo electrónico con el nombre para mostrar entre paréntesis como tal:

De: Joe Example <[email protected]>

Recuerde que la línea "de" en el encabezado del mensaje solo se usa con fines de visualización. El enrutamiento real lo realiza la dirección del sobre SMTP. Esto es lo que realmente utilizan los servidores SMTP para transmitir el mensaje entre servidores. Esto puede ser diferente del encabezado del mensaje "de". Si tiene un motor SMTP personalizado, haga que use una dirección en el sobre SMTP y otra diferente en el encabezado "de" en el mensaje real.

Hay una serie de razones legítimas por las que puede querer hacer esto, pero absténgase de propósitos nefastos.

Tenga en cuenta que se puede encontrar un ejemplo de sintaxis correcta en RFC 5322 - A.2.1

8
Justin Scott
telnet some_smtp_server.com 25
ehlo whatsup
mail from: [email protected]
rcpt to: [email protected]
data
your message here
end with a dot on a single line like this:
.

Por supuesto, necesitará un servidor SMTP que permita la retransmisión, lo cual es casi imposible de encontrar ... o lanzar el suyo propio (¡simplemente no use este conocimiento para enviar spam!).

2
Ivan

La dirección "realmente de" proviene del cuadro de diálogo "de:" en la conversación SMTP.

El "falso de" proviene de explotar la práctica común en los clientes de correo electrónico de mostrar los diversos campos de encabezado como se establece en la parte de datos de la conversación SMTP. Por ejemplo:

# telnet mail.example.com 25
Connected to mail.example.com.
Escape character is '^]'.
220 mail.example.com ESMTP Postfix
helo fakeserver
250 mail.example.com
mail from: [email protected]
250 2.1.0 OK
rcpt to: [email protected]
250 2.1.5 Ok
data
354 End data with <CR><LF>.<CR><LF>
from: [email protected]
to: [email protected]
subject: This is a subject
This is the body.
.
250 2.0.0 Ok: queued as 90D0F95A06
quit
221 2.0.0 Bye
Connection closed by foreign Host.
#

Si hubiera omitido las líneas "desde:" y "hasta:" en la parte de Datos, se habría mostrado el remitente y el destinatario del sobre real.

Tenga en cuenta que este tipo de trucos a menudo son buscados por los filtros de spam, y ciertamente no le harán amigos permanentes. Además, esto no funciona en todos los clientes de correo (solo en los más comunes).

2
sh-beta

Sí, es configurando manualmente los encabezados SMTP y es trivial de lograr. Buscalo en Google. Pero no se deje atrapar enviando spam ...

1
squillman

Este es mi 2c directamente del código, escrito en C #

    public static void SendSpam(string message, string to)
    {
        System.Net.Mail.MailMessage myMessage = new System.Net.Mail.MailMessage("Fake Name", to);
        myMessage.Subject = "SPAM";
        myMessage.Body = message;
        System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient("mail.mailserver.com", 25);
        System.Net.NetworkCredential c = new System.Net.NetworkCredential("[email protected]", "realpassword");
        client.Credentials = c;
        client.Send(myMessage);
    }
0
Dani