اگر وارد دنیای تست نفوذ و امنیت سایبری شدهاید، احتمالاً نام Metasploit Framework را زیاد شنیدهاید. Metasploit یکی از شناختهشدهترین فریمورکها برای پژوهش امنیتی، بررسی آسیبپذیریها و انجام تست نفوذ مجاز است.
در این آموزش یاد میگیریم Metasploit چیست، چگونه آن را در Kali Linux اجرا کنیم، با ساختار آن آشنا شویم و یک سناریوی آزمایشگاهی امن را اجرا کنیم.
⚠️ هشدار: تمام تمرینهای این آموزش باید فقط روی سیستم خودتان، ماشینهای آزمایشگاهی یا اهدافی که برای تست آنها مجوز صریح دارید انجام شوند.
Metasploit چیست؟
Metasploit Framework یک فریمورک متنباز برای تحقیقات امنیتی و تست نفوذ است.
این فریمورک مجموعه بزرگی از ماژولها و ابزارها را در اختیار متخصص امنیت قرار میدهد تا بتواند در یک محیط مجاز:
- آسیبپذیریها را بررسی کند.
- Exploitها را آزمایش کند.
- Payloadها را در آزمایشگاه اجرا کند.
- نتایج تست نفوذ را بررسی کند.
- رفتار سیستم در برابر حملات شبیهسازیشده را ارزیابی کند.
Metasploit بهتنهایی «هک با یک کلیک» نیست؛ شناخت شبکه، سیستمعامل، آسیبپذیری و روش تحلیل نتایج برای استفاده صحیح از آن ضروری است.
Metasploit در Kali Linux
در نسخههای Kali Linux معمولاً Metasploit از قبل در دسترس است.
ابتدا ترمینال را باز کنید:
msfconsole
اگر فریمورک نصب باشد، محیطی شبیه زیر مشاهده میکنید:
msf6 >
برای مشاهده نسخه:
version
و برای مشاهده راهنمای کلی:
help
ساختار اصلی Metasploit
مهمترین بخشهایی که در Metasploit با آنها مواجه میشوید عبارتاند از:
Exploit
کدی که از یک آسیبپذیری مشخص برای اجرای یک عملیات استفاده میکند.
Payload
داده یا کدی که پس از موفقیت Exploit اجرا میشود.
Auxiliary
ماژولهایی برای کارهایی مانند اسکن، شناسایی و تست سرویسها.
Post
ماژولهایی که در مرحله پس از دسترسی، برای ارزیابی بیشتر سیستم مجاز استفاده میشوند.
Encoder
برای تبدیل یا رمزگذاری Payloadها در سناریوهای خاص استفاده میشود.
جستوجو در Metasploit
یکی از دستورات مهم:
search
برای مثال میتوانید بر اساس یک عبارت جستوجو کنید:
search type:auxiliary
یا:
search type:exploit
همچنین میتوانید نام یک محصول یا آسیبپذیری شناختهشده را جستوجو کنید.
نکته مهم این است که قبل از انتخاب Exploit باید آسیبپذیری هدف را دقیقاً شناسایی کنید؛ انتخاب تصادفی Exploit روش مناسبی برای تست نفوذ نیست.
مشاهده اطلاعات یک ماژول
فرض کنید یک ماژول آزمایشگاهی پیدا کردهاید.
برای انتخاب آن:
use <module>
بعد میتوانید اطلاعات آن را مشاهده کنید:
info
این بخش بسیار مهم است، زیرا info مشخص میکند ماژول برای چه نرمافزار، نسخه و شرایطی طراحی شده است.
مشاهده گزینههای ماژول
دستور:
show options
گزینههایی را نشان میدهد که برای اجرای ماژول باید بررسی یا تنظیم شوند.
بهعنوان مثال ممکن است با مواردی مانند این مواجه شوید:
RHOSTS
RPORT
LHOST
LPORT
معنای کلی آنها:
- RHOSTS: سیستم هدف در آزمایشگاه
- RPORT: پورت سرویس هدف
- LHOST: آدرس سیستم آزمایشکننده
- LPORT: پورتی که برای ارتباط برگشتی استفاده میشود
نکته مهم درباره RHOSTS و LHOST
این دو گزینه را با یکدیگر اشتباه نگیرید.
فرض کنید آزمایشگاه شما چنین ساختاری دارد:
Kali Linux
10.10.10.10
|
|
10.10.10.20
Lab Target
در این حالت Kali سیستم آزمایشکننده است و سیستم دوم هدف آزمایشگاهی.
بنابراین آدرسها باید بر اساس شبکه آزمایشگاه خودتان تنظیم شوند، نه یک IP تصادفی در اینترنت.
بررسی ماژول قبل از اجرا
قبل از اجرای هر ماژول بهتر است این مراحل را انجام دهید:
info
سپس:
show options
و در صورت وجود:
show targets
این کار کمک میکند بفهمید آیا ماژول واقعاً با نسخه و شرایط سیستم آزمایشگاهی شما سازگار است یا خیر.
یک آزمایشگاه امن بسازید
برای یادگیری Metasploit پیشنهاد میکنم حداقل دو ماشین مجازی داشته باشید:
┌──────────────────────┐
│ Kali Linux │
│ Testing Machine │
└──────────┬───────────┘
│
Lab Network
│
┌──────────▼───────────┐
│ Vulnerable VM │
│ Target Machine │
└──────────────────────┘
برای سیستم هدف میتوانید از ماشینهای عمداً آسیبپذیر و قانونی آموزشی استفاده کنید.
هدف آزمایشگاه باید از اینترنت عمومی جدا باشد.
استفاده از Auxiliary برای شناسایی
Metasploit فقط برای Exploit کردن نیست.
ماژولهای auxiliary برای فعالیتهای مختلف امنیتی استفاده میشوند.
برای مشاهده آنها:
show auxiliary
یا:
search type:auxiliary
یکی از کاربردهای مهم این بخش، بررسی سرویسهای موجود روی یک هدف آزمایشگاهی است.
مثلاً ابتدا سرویس و پورت موردنظر را با ابزارهای مناسب شناسایی میکنید و سپس در Metasploit ماژول متناسب را انتخاب میکنید.
این روند مهمتر از اجرای کورکورانه Exploit است:
Discovery → Enumeration → Vulnerability Analysis → Validation
Exploit چیست؟
فرض کنید در آزمایشگاه متوجه شدهاید یک سرویس مشخص دارای یک آسیبپذیری شناختهشده است.
در این مرحله میتوانید در Metasploit به دنبال ماژول مربوط به همان آسیبپذیری بگردید:
search <vulnerability-name>
سپس:
info <module>
و مشخصات آن را بررسی کنید.
اگر ماژول با نسخه هدف آزمایشگاهی سازگار بود:
use <module>
سپس:
show options
چرا نباید مستقیماً run کنیم؟
یکی از اشتباهات رایج افراد تازهکار این است:
search
→ use
→ run
بدون اینکه بدانند ماژول چه کاری انجام میدهد.
روش حرفهایتر:
شناسایی هدف
↓
تشخیص سرویس و نسخه
↓
بررسی آسیبپذیری
↓
مطالعه ماژول
↓
تنظیم گزینهها
↓
اجرای تست در آزمایشگاه
↓
تحلیل نتیجه
این همان چیزی است که Metasploit را از یک مجموعه دستور ساده به یک ابزار حرفهای تبدیل میکند.
دستورات مهم Metasploit
| دستور | کاربرد |
|---|---|
help |
نمایش راهنما |
version |
نمایش نسخه |
search |
جستوجوی ماژول |
use |
انتخاب ماژول |
info |
اطلاعات ماژول |
show options |
نمایش تنظیمات |
show payloads |
نمایش Payloadهای مرتبط |
show targets |
نمایش Targetهای پشتیبانیشده |
back |
خروج از ماژول |
sessions |
مشاهده Sessionها |
jobs |
مشاهده Jobهای در حال اجرا |
exit |
خروج از Metasploit |
اشتباهات رایج مبتدیها
❌ اجرای Exploit روی سیستمهای ناشناس
این کار هم از نظر اخلاقی و هم از نظر قانونی مشکلساز است.
❌ انتخاب Exploit بدون شناخت نسخه
ممکن است باعث Crash سرویس یا اختلال در سیستم شود.
❌ استفاده از IP اینترنتی بهعنوان هدف تمرینی
برای شروع از شبکه داخلی آزمایشگاه استفاده کنید.
❌ نادیده گرفتن مستندات
همیشه قبل از استفاده از ماژول، info و show options را بررسی کنید.
تمرین پیشنهادی برای کاربران صفر و یک سایبر
بعد از یادگیری دستورات بالا، یک آزمایشگاه دو ماشینه بسازید:
Machine 1: Kali Linux
Machine 2: یک سیستم عمداً آسیبپذیر آموزشی
سپس این مسیر را تمرین کنید:
1. پیدا کردن IP ماشین آزمایشگاهی
↓
2. شناسایی سرویسها
↓
3. تشخیص نسخه سرویس
↓
4. جستوجوی آسیبپذیری مرتبط
↓
5. پیدا کردن Module مناسب در Metasploit
↓
6. مطالعه info
↓
7. بررسی show options
↓
8. اجرای تست در محیط آزمایشگاهی
↓
9. تحلیل نتیجه
جمعبندی
Metasploit Framework یکی از ابزارهای مهم در مسیر یادگیری Penetration Testing است؛ اما یادگیری واقعی آن فقط حفظ کردن چند دستور نیست.
اگر میخواهید متخصص تست نفوذ شوید، باید بتوانید بین شناسایی، Enumeration، تحلیل آسیبپذیری، انتخاب Exploit و تحلیل نتیجه ارتباط برقرار کنید.

دیدگاه شما