підроблене поле "від" в електронному листі


9

Як я можу маніпулювати полем "від" в електронній пошті та змусити користувача "до" бачити щось інше, ніж фактичне.

Приклад:

справді від

From: TStamper@yahoo.com

але вони бачать

From: Tremayne "Top Dog" Stamper

Я чув, як це маніпулює SMTP, але насправді не впевнений, наскільки це точно або як це можна зробити


2
Я бачу це в вагомому питанні. Ми робимо це постійно (особливо робимо повідомлення електронною поштою із програмного забезпечення таким, яким воно надсилається користувачеві).
К. Росс

Я погоджуюсь, що це може бути дійсною проблемою, якщо ви хочете змінити поле From, щоб відображати щось на зразок справжнього імені замість адреси. Ми робимо це постійно і в наших системах. Це лише трохи прапора через приклад у питанні, що змінюється з однієї адреси на іншу. Спам приманка.
squillman

оновлено кращим прикладом
TStamper

Ось чому вони створили записи SPF
Ілля Гловер

Відповіді:


14

У своїй основі SMTP - це лише текстовий протокол без реальної перевірки. Ось приклад:

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

Рядок "MAIL FROM:" визначає відправника конверта SMTP, а в повідомленні DATA визначається From:. Існують способи захисту від цього, але вони визначені в логіці поштового сервера, а не в самому протоколі.

Наприклад, я, як постачальник пошти, може вимагати від користувача автентифікації, використовуючи ім'я користувача user @ типу користувача. Тоді мій поштовий сервер може вимагати, щоб будь-яка пошта, яку вони надсилали, мала конверт-відправник та заголовок From:, який відповідає користувачеві, якого вони отримали автентифікацію. Додаткові технології, такі як DKIM та SPF, також можуть допомогти в цій галузі.


8

Тут слід розглянути кілька різних речей. Якщо ви просто хочете відобразити інше ім’я чи адресу електронної пошти, встановіть заголовок "Від" (повідомлення з адреси) на адресу електронної пошти із відображеним іменем у дужках:

Від: Joe Example <joe@example.com>

Пам'ятайте, що рядок "від" у заголовку повідомлення використовується лише для відображення. Фактична маршрутизація здійснюється за адресою конверта SMTP. Ось що насправді SMTP-сервери використовують для передачі повідомлення між серверами. Це може відрізнятися від заголовка повідомлення "від". Якщо у вас є спеціальний двигун SMTP, просто попросіть його використовувати одну адресу в конверті SMTP та іншу в заголовку "від" фактичного повідомлення.

Ви можете зробити це з кількох законних причин, але, будь ласка, утримуйтесь від нечесних цілей.

Зауважте, що правильний приклад синтаксису можна знайти в RFC 5322 - A.2.1


1
Приклад дужки невірний, це назад
jj33

Виправлено; минув час, коли я реалізував подібні речі.
Джастін Скотт

Я оновив його знову зараз, щоб відповідати RFC 822
Майку Графу

1
@MikeGraf 822 було замінено щонайменше двічі, 5322 - краще.
Патрік Мевзек

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

Звичайно, вам знадобиться SMTP-сервер, який дозволяє ретрансляцію, яку майже неможливо знайти ... або прокрутити свій власний (просто не використовуйте ці знання для спаму!).


2

Адреса "дійсно від" походить від діалогового вікна "від:" в бесіді SMTP.

"Підробка" походить від використання звичної практики в електронних клієнтах відображення різних полів заголовків, як це викладено в частині Дані в розмові SMTP. Наприклад:

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

Якби ви викреслили рядки "від:" і "до:" в частині Дані, він відображав би фактичного відправника конверта та одержувача.

Зауважте, що подібні хитрощі часто шукають спам-фільтри, і вони точно не зроблять вас постійними друзями. Крім того, це працює не для всіх поштових клієнтів (лише найпоширеніших).


1

Так, це вручну встановивши заголовки SMTP, і це нереально. Google це. Але не спіймайте спам ......


0

Це мій 2с прямо з коду - написано на 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);
    }
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.