[TR] - Simple Mail Transfer Protocol

May 13, 2020

Simple Mail Transfer Protocol (Basit Mail İletim Protokolü), bilgisayarlarımızın 25. portu üstünde çalışır. Sadece e-mail göndermek için kullanılabilir. E-mail almak için ise IMAP veya POP3 gibi protokoller kullanmamız gerekir.

Bu protokolün içerisinde bazı komutlar vardır. Onlar ise şu şekilde:

HELO - Sunucuyu selamlamak için kullanılır. IP adresi veya Domain adresi belirtir EHLO - Extended SMTP(ESMTP) destekleyen sunucular için HELO'ya alternatif olarak kullanılır. STARTTLS - Karşı taraftan 220 durum kodu ile TLS şifrelemesi altında konuşmaya başlanabilir. RCPT - Alıcı belirtmek için kullanılır. DATA - Veri göndermek için kullanılır. RSET - Geçerli e-posta işlemini iptal etmek için kullanılır. MAIL - Gönderenin mailini belirtmek için kullanılır. QUIT - Bağlantıyı sonlandırır. HELP - Yardım ekranını elde etmek için kullanılır. AUTH - İstemcinin kimliğini sunucuya onaylatmak için kullanılır. VRFY - E-mail veritabanında bir e-mailin olup olmadığını öğrenmek için kullanılır.

Protokol hakkında vereceğim bilgiler bu kadardı. Daha fazlasını öğrenmek isterseniz buradan öğrenebilirsiniz.

Şimdi, biraz daha güvenlik tarafından bakalım. VRFY(verify) isimli komutumuzun, e-maillerin varlığını doğruladığını belirtmiştim. Bunun sayesinde eğer şüphelendiğimiz bir mail varsa teyit edebilir, yoksa da brute force gibi yöntemler ile e-mailleri elde edebiliriz.

Bunun için bir örnek vereyim. Öncelikle hedefimizin IP'si 192.100.0.5 ve 25. portu da açık olsun. Netcat veya Telnet benzeri araçlar ile karşı tarafa bağlanalım:

nc 192.100.0.05 25

220 metasploitable.localdomain ESMTP Postfix (Ubuntu)

Bağlantı başarılı olursa yukarıdaki gibi karşı taraf bize kendisini tanıtacak. Daha sonrasında,

VRFY root 252 2.0.0 root VRFY rooot 550 5.1.1 <rooot>: Recipient address rejected: User unknown in local recipient table

şeklinde iki adet sorgulama yaptık. "root" adlı sorgumuz başarılı oldu ve "252 2.0.0 root" dönütünü aldık. Ancak, ikinci sorgumuz başarısız oldu. Çünkü sistemde kayıtlı "rooot" isimli bir mail bulunamadı.

Bu şekilde e-mailleri sorgulayabiliriz. Ancak, sizinde farkedeceğiniz gibi genel taramalarda pek mantıklı bir yöntem değil. Buna çözüm olarak Metasploit'in "auxiliary/scanner/smtp/smtp_enum" modülü kullanılabilir.

Ayrıca, pentestmonkey'in smtp-user-enum isimli aracını da kullanabilirsiniz.

Bir başka yazıda görüşmek üzere...

Fatih Furkan Hatipoğlu

 

Bana bu kadar bilgi yetmez, daha fazlasını istiyorum diyenler için birkaç tavsiye kaynak:

Null-Byte -Hack Like Pro Extract E-mail Adresses From SMTP Server

Dummies - SMTP Hacks and How to Guard Against Them

Pentestlab - SMTP User Enumeration