it-swarm-pt.tech

campo "de" falso em um e-mail

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

Exemplo:

realmente de

From: [email protected]

mas eles veem

From: Tremayne "Top Dog" Stamper

Já ouvi falar da manipulação do SMTP, mas não tenho certeza de quão preciso é ou como pode ser feito

9
TStamper

Basicamente, 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, e o From: é definido na mensagem DATA. Existem maneiras de se proteger contra isso, mas elas são definidas na lógica do servidor de e-mail, 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 enviado tenha um remetente de envelope e um cabeçalho De: que corresponda ao usuário com o qual ele se autenticou. Tecnologias adicionais como DKIM e SPF também podem ajudar nessa área.

14
jj33

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

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 do cabeçalho da mensagem "de". Se você tiver um mecanismo SMTP personalizado, faça com que ele use um endereço no envelope SMTP e outro diferente no cabeçalho "de" da mensagem real.

Há uma série de razões legítimas para você querer fazer isso, mas evite propósitos nefastos.

Observe que um exemplo de sintaxe correta pode ser encontrado em 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:
.

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

2
Ivan

Sim, é através da configuração manual dos cabeçalhos SMTP e é trivial de realizar. Pesquise no Google. Mas não seja pego enviando spam ......

1
squillman

Este é meu 2c direto 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);
    }
0
Dani