پستچی پرحرف شبکه!

سرور ایمیل دهن‌لق، جشن گرفتن اسپمرها!

smtp enumeration

⬅️ببین رفیق، پورت TCP 25 خونه‌ی پروتکل SMTP (Simple Mail Transfer Protocol) هست. این پروتکل، پستچی اینترنت و شبکه داخلیه؛ یعنی وظیفه‌ش بردن و آوردن نامه‌ها (ایمیل‌ها) بین سرورهاست. هرچند الان دریافت ایمیل رو کاربرها با IMAP یا POP3 انجام میدن، ولی ارسال ایمیل هنوزم گردن کلفت همین SMTP هست.

حالا مشکل کجاست؟ اگه این پستچی رو درست آموزش نداده باشن (کانفیگ غلط)، خیلی راحت اطلاعات میده! مثلاً لیست کارمندها رو لو میده یا حتی اجازه میده هر کی از راه رسید، با اسم مدیرعامل ایمیل فیک بفرسته! به این پروسه‌ی کشیدن اطلاعات از این سرور میگیم SMTP Enumeration.


🔍چی گیرمون میاد؟ (گنجینه اطلاعات)

اگه بتونیم SMTP رو Enumerate کنیم، به این اطلاعات می‌رسیم:

  1. نسخه نرم‌افزار: دقیقاً چه نرم‌افزاری (Postfix, Exim, Exchange) و چه ورژنی داره اجرا میشه؟ (پیدا کردن حفره‌های امنیتی خاص اون ورژن).
  2. لیست کاربران: کیا تو این شرکت ایمیل دارن؟ (خوراک حملات فیشینگ و بروت‌فورس).
  3. پشتیبانی از Relay: آیا سرور اجازه میده ما از طریقش برای بقیه دنیا ایمیل بفرستیم؟ (Open Relay).
  4. تنظیمات امنیتی: رمزنگاری داره؟ احراز هویت می‌خواد یا نه؟

🕵️‍♀️جعبه‌ابزار هکرها (دستورات و ابزارهای Enumerate)

فرض کن IP هدف ما <target-IP> هست. بریم ببینیم با چه ابزارهایی میشه این سرور رو شخم زد.

۱. آچار فرانسه شبکه: Nmap

همیشه اول کار با Nmap شروع می‌کنیم تا ببینیم چی به چیه.

الف) شناسایی نسخه سرور:

nmap -p 25 -sV target-IP

این دستور بهت میگه مثلاً “Postfix 2.3.3” داره اجرا میشه.

ب) استخراج اطلاعات با اسکریپت‌های Nmap:

اینجا جادو اتفاق میفته. این اسکریپت‌ها میان یوزرها رو تست می‌کنن و چک می‌کنن سرور Relay باز داره یا نه:

nmap –script smtp-enum-users,smtp-open-relay,smtp-commands -p 25 target-IP

  • smtp-enum-users: سعی می‌کنه یوزرهای معتبر رو پیدا کنه.
  • smtp-open-relay: چک می‌کنه ببینه سرور “دروازه باز” هست یا نه.
  • smtp-commands: لیست دستوراتی که سرور قبول می‌کنه رو نشون میده (مثل VRFY یا EXPN).

۲. ابزار دستی: Telnet (مکالمه مستقیم)

می‌خوای با سرور چت کنی؟ Telnet رو باز کن.

اتصال به سرور:

telnet <target-IP> 25

حالا که وصل شدی، باید با زبون خودش حرف بزنی. اینم یه نمونه مکالمه برای ارسال ایمیل:

HELO example.com <– سلام کردن به سرور
MAIL FROM:<attacker@example.com> <– من کی هستم (حمله کننده)
RCPT TO:<target@example.com> <– نامه برای کیه (قربانی)
DATA <– شروع متن نامه
Subject: Test mail <– موضوع
This is a test message. <– متن
. <– نقطه یعنی پایان نامه

اگه سرور بگه “OK Queued”، یعنی ایمیل رفت!

۳. فریم‌ورک متاسپلویت (Metasploit)

متاسپلویت ماژول‌های خیلی تمیزی برای این کار داره. کنسول msfconsole رو باز کن:

الف) گرفتن ورژن سرور:

use auxiliary/scanner/smtp/smtp_version
set RHOSTS target-IP
run

ب) پیدا کردن یوزرها (User Enumeration):

use auxiliary/scanner/smtp/smtp_enum
set RHOSTS target-IP
run

این ماژول میاد یوزرهای رایج (مثل root, admin, sales) رو چک می‌کنه ببینه وجود دارن یا نه.

۴. ابزار تخصصی: smtp-user-enum

این ابزار خوراکش پیدا کردن یوزرهاست. از دستورات VRFY (تایید کاربر) و EXPN (باز کردن لیست گروهی) استفاده می‌کنه.

smtp-user-enum -M VRFY -U users.txt -t target-IP

  • -M VRFY: متد وریفای رو تست کن.
  • -U users.txt: این فایل متنی پر از یوزرهای احتمالیه که خودت دادی بهش.
  • -t: IP هدف.

۵. ابزار شبکه: Netcat (nc)

نت‌کت هم مثل Telnet عمل می‌کنه، یه چاقوی سوئیسی برای شبکه:

nc <target-IP> 25

بعدش همون دستورات SMTP که بالاتر گفتم رو می‌تونی تایپ کنی.


مراحل عملیاتی (از صفر تا صد)

  1. شناسایی: اول مطمئن شو پورت ۲۵ بازه.

nmap -p 25 target-IP

۲. تعیین نسخه: ببین با چه نرم‌افزاری طرفی.

nmap -p 25 -sV target-IP

۳. تست Open Relay: ببین می‌تونی ازش سواری بگیری؟ (این خیلی مهمه).

nmap –script smtp-open-relay -p 25 target-IP

۴. شکار یوزرها: ببین کدوم کارمندها اونجا هستن.

smtp-user-enum -M VRFY -U users.txt -t target-IP

۵. حمله (Spoofing): اگه همه چی باز بود، یه ایمیل فیک بفرست (البته فقط تو محیط آزمایشگاهی!).

telnet <target-IP> 25
# و بعد دستورات ارسال ایمیل…

🐽خطرات و حملات بعدی

  • Open Relay Abuse: اسپمرها عاشق اینن! سرور شما میشه سکوی پرتاب میلیون‌ها ایمیل تبلیغاتی و IP شما میره تو لیست سیاه (Blacklist).
  • Email Spoofing: هکر با آدرس ceo@company.com به حسابدار ایمیل میزنه که “سریع پول واریز کن”.
  • User Enumeration: وقتی لیست یوزرها رو داشته باشن، مرحله بعدی میشه حدس زدن پسوردشون (Brute Force).

🤖دیوارهای دفاعی (چطور جلوش رو بگیریم؟)

  1. بستن Open Relay: سرورت رو جوری کانفیگ کن که فقط به IPهای معتبر خودت سرویس بده، نه به کل دنیا.
  2. غیرفعال کردن VRFY و EXPN: این دستورات دیباگ رو غیرفعال کن تا کسی نتونه یوزرها رو چک کنه.
  3. احراز هویت قوی: حتماً از SASL استفاده کن تا قبل از ارسال ایمیل، یوزر مجبور بشه لاگین کنه.
  4. رمزنگاری (TLS/SSL): نذار ایمیل‌ها بصورت متن ساده رد و بدل بشن.
  5. محدودیت دسترسی: پورت ۲۵ رو با فایروال ببند و فقط برای سرورهای مجاز باز بذار.

دیدگاه‌ خود را بنویسید

پیمایش به بالا