이메일의 가짜 "보낸 사람"필드


9

이메일의 "보낸 사람"필드를 조작하고 "받는 사람"사용자가 실제와 다른 것을 볼 수있게하려면 어떻게해야합니까?

예:

진짜에서

From: TStamper@yahoo.com

그러나 그들은 본다

From: Tremayne "Top Dog" Stamper

SMTP 조작에서 들었지만 실제로 얼마나 정확한지 또는 어떻게 수행 할 수 있는지 잘 모르겠습니다.


2
나는 이것을 유효한 문제로 본다. 우리는 항상이 작업을 수행합니다 (특히 소프트웨어에서 보낸 전자 메일이 사용자에게 보내는 것처럼 보이게합니다).
— C. Ross

보낸 사람 필드를 변경하여 주소 대신 실제 이름과 같은 것을 표시하려는 경우 유효한 문제가 될 수 있음에 동의합니다. 우리는 시스템에서도 항상 그렇게합니다. 문제의 예 때문에 하나의 주소에서 다른 주소로 변경되는 것은 약간의 플래그입니다. 스팸 미끼.
— squillman

더 나은 예제로 업데이트
— TStamper

이것이 SPF 레코드를 만든 이유
— Elijah Glover

답변:


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 <joe@example.com>

메시지 머리글의 "보낸 사람"줄은 표시 목적으로 만 사용됩니다. 실제 라우팅은 SMTP 봉투 주소로 수행됩니다. SMTP 서버가 실제로 서버간에 메시지를 전송하는 데 사용하는 것입니다. 메시지 "보낸 사람"헤더와 다를 수 있습니다. 사용자 지정 SMTP 엔진이있는 경우 SMTP 봉투에 하나의 주소를 사용하고 실제 메시지의 "보낸 사람"헤더에 다른 주소를 사용하십시오.

합법적 인 이유는 여러 가지가 있지만 사악한 목적은 삼가십시오.

RFC 5322-A.2.1 에서 올바른 구문 예제를 찾을 수 있습니다.


1
대괄호 예제가 잘못되었습니다. 거꾸로
— jj33

결정된; 이런 종류의 것을 구현 한 지 오래되었습니다.
— 저스틴 스콧

RFC 822와 일치하도록 다시 업데이트했습니다.
— Mike Graf

1
@MikeGraf 822가 두 번 이상 대체되었으며 5322가 더 좋습니다.
— 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:
.

물론 중계를 허용하는 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

이 코드에서 바로 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);
    }
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.