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


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.