it-swarm-ko.tech

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

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

예:

정말로

From: [email protected]

그러나 그들은 본다

From: Tremayne "Top Dog" Stamper

SMTP 조작을 통해 들었지만 그것이 얼마나 정확한지 또는 어떻게 할 수 있는지 잘 모르겠습니다.

9
TStamper

기본적으로 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:<[email protected]>
<-  250 OK
 -> RCPT TO:<[email protected]>
<-  250 Accepted
 -> DATA
<-  354 Enter message, ending with "." on a line by itself
 -> Date: Thu, 07 May 2009 11:03:21 -0400
 -> To: [email protected]
 -> From: [email protected]
 -> 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에 정의됩니다. 이를 방지하는 방법이 있지만 프로토콜 자체가 아니라 메일 서버 논리에 정의되어 있습니다.

예를 들어 메일 공급자로서 I는 사용자가 user @ domain 유형 사용자 이름을 사용하여 인증하도록 요구할 수 있습니다. 그런 다음 내 메일 서버는 보내는 모든 메일에 인증 된 사용자와 일치하는 봉투 발신자 및 From : 헤더가 있어야합니다. DKIM 및 SPF와 같은 추가 기술도이 분야에서 도움이 될 수 있습니다.

14
jj33

여기에서 고려해야 할 몇 가지 사항이 있습니다. 다른 이름이나 전자 메일 주소 만 표시하려면 메시지의 "From"헤더 (보낸 사람 주소)를 다음과 같이 대괄호 안에 표시 이름이있는 전자 메일 주소로 설정합니다.

보낸 사람 : Joe 예 <[email protected]>

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

이 작업을 수행하려는 타당한 이유가 여러 가지 있지만 악의적 인 목적은 삼가십시오.

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

8
Justin Scott
telnet some_smtp_server.com 25
ehlo whatsup
mail from: [email protected]
rcpt to: [email protected]
data
your message here
end with a dot on a single line like this:
.

물론 릴레이를 허용하는 SMTP 서버가 필요합니다. 이는 거의 찾을 수 없습니다 ... 또는 직접 롤링합니다 (이 지식을 스팸에 사용하지 마세요!).

2
Ivan

"실제 보낸 사람"주소는 SMTP 대화의 "보낸 사람 :"대화 상자에서 가져옵니다.

"fake 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: [email protected]
250 2.1.0 OK
rcpt to: [email protected]
250 2.1.5 Ok
data
354 End data with <CR><LF>.<CR><LF>
from: [email protected]
to: [email protected]
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.
#

데이터 부분에서 "보낸 사람 :"및 "받는 사람 :"줄을 생략했다면 실제 봉투 보낸 사람과받는 사람이 표시되었을 것입니다.

이러한 종류의 트릭은 종종 스팸 필터에 의해 검색되며 영구적 인 친구가되지는 않습니다. 또한 이것은 모든 메일 클라이언트에서 작동하지 않습니다 (가장 일반적인 클라이언트 만 해당).

2
sh-beta

예, SMTP 헤더를 수동으로 설정하는 것이기 때문에 간단합니다. Google it. 하지만 스팸에 걸리지 마세요 ......

1
squillman

이것은 코드에서 곧바로 내 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("[email protected]", "realpassword");
        client.Credentials = c;
        client.Send(myMessage);
    }
0
Dani