фальшивое поле «от» в электронном письме


9

Как я могу манипулировать полем «от» в электронном письме и заставить пользователя «видеть» что-то отличное от реального.

Пример:

действительно из

From: TStamper@yahoo.com

но они видят

From: Tremayne "Top Dog" Stamper

Я слышал это от манипулирования SMTP, но на самом деле не уверен, насколько это точно или как это можно сделать


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

Я согласен, что это может быть допустимой проблемой, если вы хотите изменить поле От, чтобы отображать что-то вроде настоящего имени вместо адреса. Мы делаем это все время и в наших системах. Это всего лишь немного флага из-за примера в вопросе, переход от одного адреса к другому. Спам приманка.
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, а From: определяется в сообщении DATA. Есть способы защиты от этого, но они определены в логике почтового сервера, а не в самом протоколе.

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


8

Здесь нужно рассмотреть несколько вещей. Если вы просто хотите отобразить другое имя или адрес электронной почты, установите заголовок «От» сообщения (сообщение с адреса) на адрес электронной почты с отображаемым именем в скобках:

От: Джо Пример <joe@example.com>

Помните, что строка «from» в заголовке сообщения используется только для отображения. Фактическая маршрутизация осуществляется по адресу конверта SMTP. Это то, что SMTP-серверы используют для передачи сообщений между серверами. Это может отличаться от заголовка сообщения from. Если у вас есть собственный механизм SMTP, просто используйте один адрес в конверте SMTP, а другой - в заголовке «from» реального сообщения.

Существует ряд законных причин, по которым вы можете сделать это, но, пожалуйста, воздержитесь от гнусных целей.

Обратите внимание, что пример правильного синтаксиса можно найти в 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.
#

Если вы пропустили строки «from:» и «to:» в разделе «Данные», в нем отобразились бы фактический отправитель и получатель конверта.

Обратите внимание, что эти виды трюков часто ищут спам-фильтры и, конечно же, не сделают вас постоянными друзьями. Кроме того, это не работает на всех почтовых клиентах (только самые распространенные).


1

Да, это путем ручной настройки заголовков SMTP и это тривиально. Поищи в Гугле. Но не попасться спам ......


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.