fake "de" campo em um email

9

Como posso manipular o campo "de" em um e-mail e fazer com que o usuário "para" veja algo diferente do real.

Exemplo:

realmente de

From: [email protected]

mas eles veem

From: Tremayne "Top Dog" Stamper

Eu ouvi falar da manipulação do SMTP, mas realmente não tenho certeza de como isso é preciso ou como isso pode ser feito

    
por TStamper 07.05.2009 / 16:54

6 respostas

14

Na sua base, o SMTP é apenas um protocolo baseado em texto, sem verificação real. Aqui está um exemplo:

=== 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.

A linha "MAIL FROM:" define o remetente do envelope SMTP eo De: é definido na mensagem DATA. Existem maneiras de se proteger contra isso, mas elas são definidas na lógica do servidor de correio, não no próprio protocolo.

Por exemplo, eu, como um provedor de e-mail, posso exigir que um usuário se autentique usando um nome de usuário do tipo usuário @ domínio. Então, meu servidor de e-mail pode exigir que qualquer e-mail que eles enviem tenha um remetente de envelope e um cabeçalho De: que corresponda ao usuário que eles autenticaram. Outras tecnologias, como DKIM e SPF, também podem ajudar nessa área.

    
por 07.05.2009 / 17:09
8

Existem algumas coisas diferentes a considerar aqui. Se você quiser apenas exibir um nome ou endereço de e-mail diferente, defina o cabeçalho "De" da mensagem (a mensagem do endereço) para o endereço de e-mail com o nome de exibição entre parênteses, como segue:

De: Joe Exemplo < [email protected]>

Lembre-se de que a linha "de" no cabeçalho da mensagem é usada apenas para fins de exibição. O roteamento real é feito pelo endereço do envelope SMTP. Isso é o que os servidores SMTP realmente usam para transmitir a mensagem entre os servidores. Isso pode ser diferente da mensagem "de" cabeçalho. Se você tiver um mecanismo SMTP personalizado, basta usar um endereço no envelope SMTP e outro diferente no cabeçalho "de" na mensagem real.

Existem várias razões legítimas pelas quais você pode querer fazer isso, mas evite propósitos nefastos.

Observe que um exemplo de sintaxe correto pode ser encontrado em RFC 5322 - A.2.1

    
por 07.05.2009 / 17:15
2
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:
.

É claro que você precisará de um servidor SMTP que permita a retransmissão, o que é quase impossível de encontrar ... ou rolar o seu próprio (apenas não use esse conhecimento para spam!).

    
por 07.05.2009 / 17:08
2

O endereço "realmente de" vem do diálogo "de:" na conversa SMTP.

O "fake de" vem da exploração da prática comum em clientes de email de exibir os vários campos de cabeçalho conforme mostrado na parte Dados da conversa SMTP. Por exemplo:

# 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.
#

Se você tivesse omitido as linhas "from:" e "to:" na parte Data, ele teria exibido o remetente e o destinatário reais do envelope.

Observe que esses tipos de truques são frequentemente procurados por filtros de spam e certamente não farão de você amigos permanentes. Além disso, isso não funciona em todos os clientes de e-mail (apenas os mais comuns).

    
por 07.05.2009 / 17:11
1

Sim, é definindo manualmente os cabeçalhos SMTP e é trivial para realizar. Google isso. Mas não seja pego spamming ......

    
por 07.05.2009 / 16:58
0

Este meu 2c saiu do código - escrito em 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);
    }
    
por 07.05.2009 / 17:30

Tags