PEN-200

SMTP Enumeration | PEN-200

Merhaba. Offensive Security tarafında yer alan “PEN-200: Penetration Testing with Kali Linux” sertifika eğitimi yazı serisinin on birinci yazısı olan “SMTP Enumeration” konusunu ele alacağım. SMTP servisi kullanılarak çeşitli tekniklerle geçerli kullanıcılar tespit edilebilmektedir. Aşağıda detaylı olarak buna değindik.

SMTP Nedir?

SMTP (Simple Mail Transfer Protocol), bir e-posta göndermek için sunucu ile istemci arasındaki iletişim şeklini belirleyen protokoldür. Farklı işletim sistemleri için geliştirilmiş e-posta protokolleri bulunmaktadır. Bu e-posta protokollerinin SMTP’ye geçit yolu (gateway) vardır. SMTP, Aktarım Temsilcisi (Mail Transfer Agent, MTA) ve Kullanıcı Temsilcisi (Mail User Agent, MUA) yazılımları arasındaki iletişimi sağlar. TCP’nin üst katmanında çalışır. 25 ve 587 numaralı portlar SMTP sunucusu için ayrılmıştır. (Wikipedia)

Savunmasız posta sunucularından bir ana bilgisayar veya ağ hakkında bilgi toplayabiliriz. Simple Mail Transfer Protocol (SMTP), VRFY ve EXPN gibi birçok komutu destekler. VRFY isteği sunucudan bir e-posta adresini doğrulamasını isterken, EXPN sunucudan bir posta listesine üye olmasını ister. Bunlar genellikle bir posta sunucusundaki mevcut kullanıcıları doğrulamak için kötüye kullanılabilir; bu, bir penetrasyon testi sırasında yararlı bir bilgidir.

Aşağıda VRFY komutunu sunucuda çalıştıralım ve sonucuna bakalım.

Bazı kullanıcıların var olduğunu doğrulayabildik. Bu işlem ile geçerli kullanıcı adlarını tespit edebiliriz. Bu işlemi otomatize etmek için aşağıdaki python kodunu kullanabiliriz.

#!/usr/bin/python
import socket
import sys
if len(sys.argv) != 3:
 print("Usage: vrfy.py <username> <target_ip>")
 sys.exit(0)
# Create a Socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# Connect to the Server
ip = sys.argv[2]
connect = s.connect((ip,25))
# Receive the banner
banner = s.recv(1024)
print(banner)
# VRFY a user
user = (sys.argv[1]).encode()
s.send(b'VRFY ' + user + b'\r\n')
result = s.recv(1024)
print(result)
# Close the socket
s.close()

Yukarıda yer alan kodu kullanarak var olan kullanıcıları tespit etmeye çalışalım.

Başarılı bir şekilde sonuç aldık. Yukarıda verilen python kodunu geliştirerek, örneğin bir wordlist verip başarılı sonuçları ekrana yazarak daha verimli sonuçlar alabiliriz.

Windows içinde aynı işlemleri yapabiliriz. Bunun için telnet servisi ile makinemize bağlanıp VRFY komutunu çalıştırabiliriz.

C:\Windows\system32>telnet 192.168.14.129 25
220 metasploitable.localdomain ESMTP Postfix (Ubuntu)
VRFY admin
550 5.1.1 <admin>: Recipient address rejected: User unknown in local recipient table
VRFY root
252 2.0.0 root

Penetrasyon testi adımlarından birisi olan bilgi toplama anlamında bizlere oldukça faydalı olabilecek SMTP Enumeration adımını gerçekleştirdik.

PEN-200 serisinin on birinci yazısının sonuna geldik. Başka yazılarda görüşmek üzere.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

thirteen − one =

Başa dön tuşu