2009년 11월 12일

telnet 으로 메일 보내기


telnet 프로그램은 원하는 서버와 포트로의 tcp 연결을 지원한다.

예를 들어, $ telnet www.naver.com 80 이라고 입력하면 해당서버의 80번 포트로 TCP 연결을 맺는다.

이러한 기능을 이용하여 SMTP(25번) 서버에 접속하여 메일을 보내고,
간단하게 송신자 조작도 해보자. 친구에게 대통령으로부터 메일이 온거 같은 착각을 하도록...

친구의 메일 주소를 확보한다.
mynaverfriend@naver.com 이라고 하자.
naver.com 의 메일서버의 IP 주소를 알아야 한다. nslookup을 이용한다.

-----------------------------------
nslookup  <-- 입력

Default Server:  fns1.hananet.net
Address:  210.94.0.7

> set type=mx <-- 입력
naver.com <-- 입력
Server:  fns1.hananet.net
Address:  210.94.0.7

Non-authoritative answer:
naver.com       MX preference = 10, mail exchanger = mx2.naver.com
naver.com       MX preference = 10, mail exchanger = mx3.naver.com
>
-----------------------
위 정보로부터 @naver.com으로 메일을 발송하면 mx2 or mx3.naver.com으로 들어간다는 것을 알 수 있다.

이제 telnet을 사용할 때가 되었다.
(파란색 부분이 실제 입력하는 부분임)
-----------------------------------------------------------

$ telnet mx3.naver.com 25
Trying 202.131.27.102...
Connected to mx3.naver.com.
Escape character is '^]'.
220 rcvmail6.nm2.naver.com ESMTP Terrace MailWatcher 5.40.2008012515 (for naver.com)
ehlo hi
250-rcvmail6.nm2.naver.com Pleased to meet you
250-SIZE 20480000
250-8BITMIME
250-HELP
250-PIPELINING
250 ENHANCEDSTATUSCODES
mail from: <president@cwd.go.kr>
250 2.1.0 Sender Ok
rcpt to: <mynaverfriend@naver.com>
250 2.1.0 Recipient Ok
data
354 Start mail input; end with "."
From: 대한민국대통령 <president@cwd.go.kr>
To: <mynaverfriend@naver.com>
Subject: 대통령으로부터...
                                             <=== 여기에 반드시 빈줄이 필요하다. 이 이후부터가 메일 내용이 된다.
You are a good man.
Thanks a lot.


.    <=== 여기에 점을 하나 찍었다. 이 점으로 내용의 끝을 알려준다.(점찍고 엔터치고...)
250 2.5.0 Message accepted for delivery
quit   <=== 종료하겠다는 의미로...
221 2.0.0 rcvmail6.nm2.naver.com Service closing transmission channel
Connection closed by foreign host.
-------------------------------------------------------------------------------------

실제로 메일 잘 도착했는지 확인해보자.
아래 그림과 같이 대통령으로부터 메일이 온 것처럼 보인다.









SMTP와 메일의 MIME Type을 좀 공부하면 쉽게 조작 메일을 보낼 수 있다.



댓글 8개:

  1. 이 방법으로 첨부파일을 보낼 수는 없나요?
    궁금해서 질문드립니다.

    답글삭제
  2. MIME를 공부하시면 됩니다. 첨부파일을 base64로 인코딩하여 text 형식으로 만들고, 이 내용을 telnet를 이용하여 보내면 첨부파일도 보낼 수 있습니다.

    답글삭제
  3. $ telnet mx3.naver.com 25
    Trying 125.209.222.14...
    Connected to mx3.naver.com.
    Escape character is '^]'.
    421 4.3.2 Your ip blocked from this server uNWeOKq6ThKVi-q0QW3dqg - nsmtp
    Connection closed by foreign host.

    이렇게뜨는건어떻하죠?

    답글삭제
  4. $ telnet mx3.naver.com 25
    Trying 125.209.222.14...
    Connected to mx3.naver.com.
    Escape character is '^]'.
    421 4.3.2 Your ip blocked from this server uNWeOKq6ThKVi-q0QW3dqg - nsmtp
    Connection closed by foreign host.

    이렇게뜨는건어떻하죠?

    답글삭제
    답글
    1. 사용하시는 IP(또는 외부망에서 인식하는 IP)가 스팸발송 IP로 등록되어있나봅니다. 그래서 발송자체를 할 수 없는거 같네요.
      다른 인터넷망에서 해보시지요.

      삭제
    2. 집인데 아무짓도안한아이피에요...
      그런데도 아이피바꾸니까되네요..?
      감사합니다.

      삭제
  5. nslookup으로 naver.com 의 메일서버를 확인후에 telnet mx3.naver.com 25명령어를 입력했는데요 제아이피가 block당했다고 하네요 무슨 문제인건가요??

    답글삭제