メールの「from」フィールドを操作して、「to」ユーザーに実際とは異なるものを表示させるにはどうすればよいですか。
例:
本当にから
From: TStamper@yahoo.com
彼らは見る
From: Tremayne "Top Dog" Stamper
SMTPの操作から聞いたことがありますが、それがどれほど正確で、どのように実行できるかは本当にわかりません
メールの「from」フィールドを操作して、「to」ユーザーに実際とは異なるものを表示させるにはどうすればよいですか。
例:
本当にから
From: TStamper@yahoo.com
彼らは見る
From: Tremayne "Top Dog" Stamper
SMTPの操作から聞いたことがありますが、それがどれほど正確で、どのように実行できるかは本当にわかりません
回答:
基本的に、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などの追加のテクノロジーもこの分野で役立ちます。
ここで考慮すべき点がいくつかあります。別の名前または電子メールアドレスを表示したいだけの場合は、メッセージの "差出人"ヘッダー(メッセージの差出人アドレス)を電子メールアドレスに設定します。
From:Joe Example <joe@example.com>
メッセージヘッダーの「from」行は表示目的でのみ使用されることに注意してください。実際のルーティングは、SMTPエンベロープアドレスによって行われます。これは、サーバー間でメッセージを送信するためにSMTPサーバーが実際に使用するものです。これは、メッセージの「from」ヘッダーとは異なる場合があります。カスタムSMTPエンジンがある場合は、SMTPエンベロープで1つのアドレスを使用し、実際のメッセージの "from"ヘッダーで別のアドレスを使用するようにします。
これを実行する正当な理由はいくつかありますが、悪意のある目的は控えてください。
正しい構文の例はRFC 5322-A.2.1にあります。
「really from」アドレスは、SMTP会話の「from:」ダイアログから取得されます。
「偽物」は、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:」行を省略した場合、実際のエンベロープ送信者と受信者が表示されます。
これらの種類のトリックはスパムフィルターによって頻繁に検索され、永続的な友達にはならないことに注意してください。また、これはすべてのメールクライアント(最も一般的なもののみ)では機能しません。
これはコードから直接出た私の2c-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);
}