fałszywe pole „z” w wiadomości e-mail


9

Jak mogę manipulować polem „z” w wiadomości e-mail i sprawić, aby użytkownik „do” zobaczył coś innego niż rzeczywisty.

Przykład:

naprawdę z

From: TStamper@yahoo.com

ale oni widzą

From: Tremayne "Top Dog" Stamper

Słyszałem o manipulowaniu SMTP, ale tak naprawdę nie jestem pewien, jak dokładna jest ta metoda ani w jaki sposób można to zrobić


2
Widzę to jako ważny problem. Robimy to przez cały czas (w szczególności sprawia, że ​​e-mail z oprogramowania wygląda tak, jakby był wysyłany do użytkownika).
C. Ross

Zgadzam się, że może to być poprawny problem, jeśli chcesz zmienić pole Od, aby wyświetlać coś w rodzaju prawdziwej nazwy zamiast adresu. Robimy to cały czas również w naszych systemach. To tylko mała flaga z powodu przykładu w pytaniu, zmieniającego się z jednego adresu na drugi. Przynęta spamowa.
squillman

zaktualizowano o lepszy przykład
TStamper

Dlatego stworzyli rekordy SPF
Elijah Glover

Odpowiedzi:


14

U podstaw SMTP jest tylko protokół tekstowy bez prawdziwej weryfikacji. Oto przykład:

=== 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:<jj33@g3.example.net>
<-  250 OK
 -> RCPT TO:<jj33@g3.example.net>
<-  250 Accepted
 -> DATA
<-  354 Enter message, ending with "." on a line by itself
 -> Date: Thu, 07 May 2009 11:03:21 -0400
 -> To: jj33@g3.example.net
 -> From: jj33@g3.example.net
 -> 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.

Wiersz „MAIL FROM:” definiuje nadawcę koperty SMTP, a adres Od: jest zdefiniowany w danych DATA. Istnieją sposoby, aby się przed tym zabezpieczyć, ale są one zdefiniowane w logice serwera pocztowego, a nie w samym protokole.

Na przykład jako dostawca poczty mogę wymagać uwierzytelnienia użytkownika przy użyciu nazwy użytkownika typu użytkownik @ domena. Następnie mój serwer pocztowy może wymagać, aby każda wysyłana przez niego poczta miała nadawcę kopert i nagłówek From: pasujący do użytkownika, którego uwierzytelnili. Dodatkowe technologie, takie jak DKIM i SPF, mogą również pomóc w tym obszarze.


8

Jest tu kilka różnych rzeczy do rozważenia. Jeśli chcesz tylko wyświetlić inną nazwę lub adres e-mail, ustaw nagłówek „Od” wiadomości (wiadomość z adresu) na adres e-mail z nazwą wyświetlaną w nawiasach jako taką:

Od: Joe Przykład <jan@example.com>

Pamiętaj, że wiersz „z” w nagłówku wiadomości służy wyłącznie do wyświetlania. Rzeczywisty routing odbywa się na podstawie adresu koperty SMTP. Właśnie tego używają serwery SMTP do przesyłania wiadomości między serwerami. Może się różnić od nagłówka wiadomości „z”. Jeśli masz niestandardowy silnik SMTP, po prostu użyj jednego adresu w kopercie SMTP i innego adresu w nagłówku „od” w aktualnej wiadomości.

Istnieje wiele uzasadnionych powodów, dla których możesz chcieć to zrobić, ale powstrzymaj się od nikczemnych celów.

Zauważ, że poprawny przykład składni można znaleźć w RFC 5322 - A.2.1


1
Przykład klamry jest zły, jest
odwrócony

Naprawiony; minęło trochę czasu, odkąd wdrożyłem tego rodzaju rzeczy.
Justin Scott,

Zaktualizowałem go teraz ponownie, aby pasował do RFC 822
Mike Graf

1
@MikeGraf 822 został co najmniej dwukrotnie zastąpiony, 5322 jest lepszy.
Patrick Mevzek,

2
telnet some_smtp_server.com 25
ehlo whatsup
mail from: JohnBaker@yahoo.com
rcpt to: recipient@somewhere.com
data
your message here
end with a dot on a single line like this:
.

Oczywiście potrzebujesz serwera SMTP, który umożliwia przekazywanie, co jest prawie niemożliwe do znalezienia ... lub stworzenia własnego (po prostu nie używaj tej wiedzy do spamowania!).


2

Adres „naprawdę z” pochodzi z okna dialogowego „z:” w rozmowie SMTP.

„Fałszywy z” pochodzi z wykorzystywania powszechnej praktyki w klientach e-mail polegającej na wyświetlaniu różnych pól nagłówka określonych w części Dane konwersacji SMTP. Na przykład:

# 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: real@example.com
250 2.1.0 OK
rcpt to: real@example.com
250 2.1.5 Ok
data
354 End data with <CR><LF>.<CR><LF>
from: fake@example.com
to: you@example.com
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.
#

Jeśli pominąłeś wiersze „od:” i „do:” w części Dane, wyświetliłby faktycznego nadawcę i odbiorcę koperty.

Pamiętaj, że tego rodzaju sztuczki są często wyszukiwane przez filtry antyspamowe, a na pewno nie sprawią, że będziesz trwałym przyjacielem. Nie działa to również na wszystkich klientach pocztowych (tylko tych najbardziej powszechnych).


1

Tak, polega to na ręcznym ustawianiu nagłówków SMTP i jest banalny. Wygoogluj to. Ale nie daj się złapać na spamowanie ......


0

To moje 2c prosto z kodu - napisane w 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("realusername@mailserver.com", "realpassword");
        client.Credentials = c;
        client.Send(myMessage);
    }
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.