Email SPOOFING پارت 1(مقدمات جعل ایمیل وب سایت)

Mestercomuter Mestercomuter Mestercomuter · 1403/12/2 00:03 · خواندن 7 دقیقه

مقاله قبل رو اگه نخوندی یک بک بزن حتماً :

پست (شروع حملات شخصی سازی شده) را از وبلاگ (Mestercoputer) در بلاگیکس بررسی کنید.


مقدمه‌ای بر سیستم نام دامنه (DNS) و اصطلاحات کلی 


DNS چیست؟

DNS مخفف Domain Name System یا سیستم نام دامنه است. به زبان ساده، DNS مانند یک دفترچه تلفن اینترنتی عمل می‌کند که نام‌های دامنه‌ای قابل‌خواندن برای انسان (مانند google.com) را به آدرس‌های عددی IP (مانند 172.217.16.206) تبدیل می‌کند.

بدون DNS، برای ورود به وب‌سایت‌ها باید این آدرس‌های عددی را به خاطر بسپاریم، اما DNS این کار را برای ما آسان می‌کند.


چرا DNS مهم است؟

  • تبدیل نام به آدرس: DNS نام‌های دامنه را به آدرس‌های IP تبدیل می‌کند تا بتوانیم با تایپ نام سایت، به آن دسترسی پیدا کنیم.
  • مدیریت ساده‌تر: نیازی به حفظ آدرس‌های پیچیده نیست؛ فقط کافی است نام سایت را بدانیم.
  • انعطاف‌پذیری: در صورت تغییر سرور یک وب‌سایت، DNS به‌روزرسانی می‌شود و کاربران بدون متوجه شدن تغییر، همچنان می‌توانند به سایت دسترسی داشته باشند.

اصطلاحات کلیدی در DNS

1. دامنه (Domain)

نامی که برای شناسایی یک وب‌سایت استفاده می‌شود (مانند example.com).

2. آدرس IP (IP Address)

یک عدد منحصربه‌فرد که به هر دستگاه متصل به اینترنت اختصاص داده می‌شود (مانند 192.168.1.1).

3. سرور DNS (DNS Server)

کامپیوترهایی که اطلاعات مربوط به نام دامنه‌ها و آدرس‌های IP مرتبط با آن‌ها را ذخیره و مدیریت می‌کنند.

4. Resolver بازگشتی (Recursive Resolver)

سروری که درخواست‌های کاربران را دریافت کرده و برای یافتن آدرس IP، با دیگر سرورهای DNS ارتباط برقرار می‌کند.

5. سرور ریشه (Root Server)

اولین مرحله در فرآیند جستجوی DNS که اطلاعات مربوط به سرورهای TLD (مانند .com، .ir) را در اختیار دارد.

6. سرور TLD (Top-Level Domain Server)

سروری که مدیریت پسوندهای دامنه (مانند .com، .org، .net) را بر عهده دارد و کاربران را به سرور معتبر مرتبط هدایت می‌کند.

7. سرور معتبر (Authoritative Server)

سروری که اطلاعات دقیق و به‌روز یک دامنه خاص (مثلاً example.com) را نگهداری می‌کند.

8. رکورد DNS (DNS Record)

مجموعه‌ای از اطلاعات که تعیین می‌کند دامنه چگونه باید رفتار کند (مانند تبدیل نام دامنه به آدرس IP یا تنظیم ایمیل).

9. فایل منطقه (Zone File)

فایلی که شامل تمامی رکوردهای DNS مربوط به یک دامنه است.

10. TTL (Time to Live)

مدت‌زمانی که یک رکورد DNS در حافظه کش ذخیره می‌شود تا از درخواست‌های مکرر جلوگیری کند.


فرآیند جستجوی DNS چگونه کار می‌کند؟

زمانی که نام یک وب‌سایت (مثلاً example.com) را در مرورگر تایپ می‌کنید، چه اتفاقی می‌افتد؟

  1. مرورگر از Resolver بازگشتی (معمولاً ارائه‌شده توسط ISP) می‌پرسد: «آدرس IP مربوط به example.com چیست؟»
  2. Resolver از سرور ریشه اطلاعاتی دریافت می‌کند و متوجه می‌شود که برای .com باید به سرور TLD مراجعه کند.
  3. Resolver از سرور TLD می‌پرسد که example.com کجا قرار دارد.
  4. سرور TLD، سرور معتبر (Authoritative Server) را معرفی می‌کند.
  5. Resolver از سرور معتبر، آدرس IP example.com را دریافت کرده و آن را به مرورگر ارسال می‌کند.
  6. مرورگر از این آدرس IP برای برقراری ارتباط با سرور سایت استفاده می‌کند.

انواع رکوردهای DNS

در DNS، انواع مختلفی از رکوردها وجود دارند که هرکدام وظایف خاصی را بر عهده دارند:

  • رکورد A (A Record): نام دامنه را به یک آدرس IPv4 ترجمه می‌کند.
  • رکورد AAAA (AAAA Record): نام دامنه را به یک آدرس IPv6 تبدیل می‌کند.
  • رکورد CNAME (Canonical Name): یک نام دامنه را به نام دیگری هدایت می‌کند (مثلاً www.example.com → example.com).
  • رکورد MX (Mail Exchange): سرور ایمیل مربوط به دامنه را مشخص می‌کند.
  • رکورد TXT (Text Record): برای ذخیره اطلاعات متنی مانند تأییدیه‌های امنیتی (مانند SPF و DKIM) استفاده می‌شود.
  • رکورد NS (Name Server): سرورهای معتبر برای یک دامنه را معرفی می‌کند.

حالا یک آشنایی کلی درمورد DNS ها دارید همین ها برای شروع کار کافیه حالا می‌خوایم بریم ببینیم ما از کجا هاش قرار دقیقا سواستفاده کنیم و چرا ! 

سوءاستفاده ما از DNS برای جعل ایمیل وبسایت‌ها: نقاط حمله و دلایل

سلام! در مقدمه و صفحه قبل با مفاهیم پایه DNS آشنا شدیم. حالا بیایید ببینیم که چطور می‌توان از DNS برای جعل ایمیل‌های یک وبسایت استفاده کرد و چرا تمرکز ما روی بخش‌های خاصی از DNS است. این روش که به Email Spoofing معروفه، یکی از رایج‌ترین تکنیک‌های فیشینگ و کلاهبرداری به حساب میاد.

یک حمله دیگه هم تو همین زمینه داریم که نمی گم گیج نشید اون باز مقاله خودشو داره ولی در حدی که بدونید DNS SPOOFING هستش که در اصل باید بلد باشید که بتونید این حمله رو پیش ببرید ولی کخ دارم دوست دارم نگم الان ! 


ارتباط DNS با ایمیل‌ها

قبل از اینکه بریم سراغ حملات، باید بدونیم DNS چه نقشی در ایمیل‌ها داره:

  • رکورد MX (Mail Exchange): مشخص می‌کنه که ایمیل‌های @example.com به کدوم سرور برن.
  • رکوردهای امنیتی: مثل SPF، DKIM، و DMARC که برای احراز هویت ایمیل‌ها و جلوگیری از جعلشون به کار میرن.
  • رکورد TXT: اطلاعاتی مثل کلیدهای رمزنگاری DKIM یا تنظیمات SPF رو نگه می‌داره.

ما برای جعل ایمیل دنبال نقاط ضعف در این رکوردها یا سوءاستفاده از تنظیمات اشتباه می‌گردیم.


نقاط حمله برای جعل ایمیل

۱. دور زدن رکورد SPF (Sender Policy Framework)

  • SPF چیه؟
    رکورد SPF تعیین می‌کنه که کدوم آدرس‌های IP مجازن از طرف دامنه ما ایمیل بفرستن.
  • چطور ازش استفاده کنیم؟
    • اگه SPF تنظیم نشده باشه یا درست پیکربندی نشده باشه، می‌تونیم از هر سروری ایمیل جعلی با دامنه هدف ارسال کنیم.
    • مثال: اگه SPF محدودیت خاصی نداشته باشه، می‌تونیم از admin@example.com ایمیل فیشینگ بفرستیم.
  • چرا SPF نقطه ضعف داره؟
    چون اولین لایه امنیتی برای تشخیص ایمیل‌های واقعی از جعلیه. اگه نباشه، کارمون راحت‌تر می‌شه.

۲. دستکاری رکورد DKIM (DomainKeys Identified Mail)

  • DKIM چیه؟
    یه روش رمزنگاری که از یه جفت کلید عمومی و خصوصی استفاده می‌کنه تا اصالت ایمیل‌ها رو تأیید کنه.
  • چطور ازش استفاده کنیم؟
    • اگه کلید خصوصی DKIM لو بره یا سرور ایمیل ناامن باشه، می‌تونیم امضای معتبر درست کنیم و ایمیل‌های جعلی بفرستیم.
    • مثال: اگه به کلید خصوصی دسترسی داشته باشیم، می‌تونیم ایمیل‌هایی با امضای معتبر example.com بسازیم که حتی Gmail هم بهشون اعتماد کنه.
  • چرا DKIM مهمه؟
    چون تضمین می‌کنه که محتوای ایمیل تغییر نکرده. اگه بشه دورش زد، گیرنده هیچ شکی نمی‌کنه!

۳. دور زدن رکورد DMARC (Domain-based Message Authentication, Reporting & Conformance)

  • DMARC چیه؟
    به سرورهای دریافت‌کننده می‌گه اگه ایمیلی SPF یا DKIM رو پاس نکرد، باید باهاش چیکار کنن (مثلاً حذفش کنن یا به اسپم بفرستن).
  • چطور ازش استفاده کنیم؟
    • اگه DMARC تنظیم نشده باشه یا تنظیماتش شل باشه (p=none)، می‌تونیم حتی اگه SPF/DKIM رو پاس نکنیم، ایمیل رو تحویل بگیریم.
    • مثال: اگه DMARC به جای ریجکت، فقط ایمیل‌های نامعتبر رو «جمع‌آوری» کنه، ایمیل‌های جعلی ما مستقیم به اینباکس می‌رن!
  • چرا DMARC مهمه؟
    چون آخرین خط دفاعیه. اگه وجود نداشته باشه، راه برای جعل کاملاً بازه.

۴. تغییر رکورد MX (با DNS Hijacking)

  • چطور این کارو کنیم؟
    • اگه به حساب مدیریت DNS یه سایت دسترسی پیدا کنیم (مثلاً با فیشینگ)، می‌تونیم رکورد MX رو تغییر بدیم و ایمیل‌هاشون رو به سرور خودمون بفرستیم.
    • مثال: با تغییر mail.example.com به hacker-server.com، همه ایمیل‌های ارسال و دریافت‌شده رو کنترل می‌کنیم.
  • چرا MX مهمه؟
    چون کنترل رکورد MX یعنی کنترل کل ایمیل‌های یه دامنه!

۵. سوءاستفاده از رکوردهای TXT و CNAME

  • چطور ازشون استفاده کنیم؟
    • می‌تونیم یه زیردامنه (مثلاً newsletter.example.com) رو با CNAME جعل کنیم و ایمیل‌های فیشینگ بفرستیم.
    • یا رکوردهای TXT جعلی اضافه کنیم تا مثلاً سیستم‌های احراز هویت Microsoft 365 یا Google Workspace رو دور بزنیم.

چرا این روش‌ها جواب میدن؟

۱. مدیرای سایت‌ها حواسشون نیست: خیلی از شرکت‌ها SPF، DKIM، و DMARC رو درست تنظیم نمی‌کنن.
۲. تنظیماتش پیچیده‌ست: مدیریت کلیدهای DKIM و تنظیم DMARC تخصص می‌خواد و اشتباهات رایجن.
۳. ایمیل مهمه: این رکوردها مسئول اعتبارسنجی ایمیل‌ها هستن. اگه بتونیم دستکاری‌شون کنیم، جعل کاملاً معتبر می‌شه!
۴. حملات نامرئی‌ان: اگه ایمیل جعلی ما از SPF/DKIM/DMARC عبور کنه، حتی Gmail و Outlook هم نمی‌فهمن!


چطور جلوی این حملاتو بگیریم؟

  • SPF، DKIM، و DMARC رو درست تنظیم کنیم.
  • از DNSSEC استفاده کنیم تا رکوردهای DNS دستکاری نشن.
  • دسترسی به پنل مدیریت DNS رو محدود کنیم و احراز هویت دو مرحله‌ای بذاریم.
  • رکوردهای DNS رو مرتب چک کنیم تا تغییری توشون ایجاد نشده باشه.

با سوءاستفاده از ضعف‌های رکوردهای امنیتی DNS (مثل SPF، DKIM، DMARC) و رکورد MX، می‌تونیم ایمیل‌های جعلی بسازیم که گیرنده‌ها کاملاً باورشون کنن. اگه امنیت این بخش‌ها رعایت نشه، کار جعل خیلی راحت‌تر می‌شه!

در مقاله بعدی حتما دیپ تر و تخصصی تر میریم تو دلش فعلا فقط یک چیزایی میدونید ولی نمی‌تونید بزنید ! تو مقاله بعدی میریم سراغ ابزار ها و اینا بعدشم تو محیط مجازی و در نهایت هم واقعی که دیگه نگم ...