Simple Mail Transfer Protocol

  1. Số cổng:
    • 25: không có mã hóa.
    • 465: cổng SSL/TLS, cũng có thể được gọi là SMTPS.
  2. Tầng giao thức: application
  3. Các hình thức tấn công:
    • Đếm tài khoản.
    • Làm lộ email header.
    • Giúp tìm các địa chỉ IP nội bộ.

Introduction

SMTP (Simple Mail Transfer Protocol) là một giao thức giúp truyền tải thư điện tử (e-mail) trên mạng internet. SMTP sẽ thiết lập kênh liên lạc giữa user agent và mail server (SMTP server) cũng như giữa mail server bên gửi và mail server bên nhận. Email sẽ được chuyển đến mail server bên nhận thông qua một mail server trung gian (đóng vai trò làm mail server bên gửi).

Mechanism

Minh họa giao thức SMTP:

  • Bước 1: Alice sẽ soạn một email từ user agent của Alice (chẳng hạn bằng ứng dụng Outlook).
  • Bước 2: Alice gửi email đến mail server mà Alice đang sử dụng thông qua giao thức SMTP.
  • Bước 3: Email của Alice sẽ được lưu trong hàng đợi của mail server.
  • Bước 4: Mail server của Alice sử dụng giao thức SMTP để chuyển email đang ở trong hàng đợi đến mail server của Bob.
  • Bước 5: Tại đây, nó được lưu trong mail box của mail server mà Bob sử dụng.
  • Bước 6: Nếu như Bob gửi yêu cầu truy xuất email đến mail server của anh ta, mail server sẽ gửi email của Alice về user agent của Bob. Ở bước này, mail server và user agent của Bob sẽ sử dụng giao thức IMAP hoặc POP3. Hành động này được gọi là check mail.

SMTP sẽ không chứng thực các email khi gửi từ mail server này đến mail server khác, vì việc chứng thực sẽ rất khó khăn. Người xấu có thể tận dụng điều này để spam những thư rác, thư quảng cáo.

Đôi khi chúng ta không dùng user agent mà dùng chính browser để soạn, nhận và gửi email. Lúc này, phần header và body của email sẽ được tổng hợp lại thành phần body của HTTP request. Sau đó, email sẽ được gửi đi dựa vào giao thức HTTP.

Commands

Ví dụ minh họa kết nối đến SMTP server thông qua Telnet:

pentester@TryHackMe$ telnet 10.10.0.237 25
Trying 10.10.0.237...
Connected to MACHINE_IP.
Escape character is '^]'.
220 bento.localdomain ESMTP Postfix (Ubuntu)
helo telnet
250 bento.localdomain
mail from:
250 2.1.0 Ok
rcpt to:
250 2.1.5 Ok
data
354 End data with .
subject: Sending email with Telnet
Hello Frank,
I am just writing to say hi!
.
250 2.0.0 Ok: queued as C3E7F45F06
quit
221 2.0.0 Bye
Connection closed by foreign host.

Resources