آموزش ساخت آزمایشگاه هک با Kali Linux و VirtualBox؛ از صفر تا اولین تست نفوذ

How to build a hacking lab with Kali Linux and VirtualBox; from scratch to the first penetration test
0 دیدگاه
۱۴۰۵-۰۷-۱۹ ۱۰:۴۸:۱۶

مقدمه: چرا به آزمایشگاه هک نیاز داریم؟

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

راهکار مناسب، ساخت یک Cybersecurity Lab با ماشین‌های مجازی است. در این روش، چند سیستم‌عامل مستقل روی کامپیوتر خودت اجرا می‌کنی و ارتباط میان آن‌ها را به یک شبکه آزمایشگاهی محدود می‌سازی.

در این آموزش از سه ابزار اصلی استفاده می‌کنیم:

  • VirtualBox: برای ساخت و اجرای ماشین‌های مجازی.

  • Kali Linux: سیستم‌عامل ابزارهای تست نفوذ.

  • Metasploitable 2: سیستم عمداً آسیب‌پذیر برای تمرین امنیت.

در پایان آموزش، دو ماشین مجازی خواهی داشت که می‌توانند در شبکه داخلی آزمایشگاه با یکدیگر ارتباط برقرار کنند و آماده تمرین‌های اولیه تست نفوذ باشند.

۱. سیستم موردنیاز برای ساخت آزمایشگاه

قبل از دانلود فایل‌ها، مشخصات کامپیوترت را بررسی کن.

قطعه حداقل مناسب برای شروع پیشنهاد بهتر
RAM ۸ گیگابایت ۱۶ گیگابایت یا بیشتر
پردازنده پردازنده ۶۴ بیتی با مجازی‌سازی ۴ هسته یا بیشتر
فضای ذخیره‌سازی حدود ۴۰ گیگابایت فضای آزاد ۸۰ گیگابایت یا بیشتر
سیستم‌عامل ویندوز، لینوکس یا macOS سازگار سیستم‌عامل به‌روز و ۶۴ بیتی

این مقادیر تخمینی هستند و حجم فایل‌های ماشین مجازی، نسخه نرم‌افزارها و تعداد ماشین‌های در حال اجرا بر نیاز نهایی تأثیر می‌گذارند.

بررسی مجازی‌سازی پردازنده در ویندوز

1. کلیدهای Ctrl + Shift + Esc را فشار بده تا Task Manager باز شود.

2. وارد بخش Performance → CPU شو.

3. گزینه Virtualization را پیدا کن.

اگر وضعیت آن Enabled باشد، معمولاً می‌توانی ماشین‌های مجازی را اجرا کنی. اگر Disabled باشد، ممکن است لازم باشد فناوری مجازی‌سازی Intel VT-x یا AMD-V را از تنظیمات BIOS/UEFI فعال کنی. نام گزینه و روش فعال‌سازی بسته به مدل مادربرد یا لپ‌تاپ متفاوت است.

اگر این گزینه اصلاً دیده نمی‌شود، ابتدا مدل پردازنده و تنظیمات BIOS/UEFI دستگاه را بررسی کن.

۲. دانلود نرم‌افزارها و فایل‌های ماشین مجازی

همه فایل‌ها را فقط از منابع رسمی دریافت کن. به‌خصوص فایل Kali Linux را از سایت‌های ناشناس دانلود نکن؛ فایل تغییریافته ممکن است حاوی بدافزار باشد. مستندات رسمی Kali نیز بررسی صحت فایل دانلودشده را توصیه می‌کند.

Kali Linux Documentation

الف) VirtualBox

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

در ویندوز، فایل نصب را اجرا کن، تنظیمات پیش‌فرض را بپذیر و نصب را کامل کن. ممکن است ارتباط شبکه برای چند لحظه قطع و دوباره برقرار شود.

ب) ماشین آماده Kali Linux

به صفحه رسمی دریافت Kali Linux برو و نسخه VirtualBox را انتخاب کن.

فایل آماده معمولاً با پسوند .7z ارائه می‌شود. آن را با ابزار استخراج سازگار باز کن. برای این مسیر نیازی به نصب جداگانه Kali از فایل ISO نیست.

Kali Linux Documentation
+1
ج) ماشین آسیب‌پذیر Metasploitable 2

فایل را از مستندات رسمی Rapid7 دریافت کن.

پس از استخراج، فایل دیسک مجازی مانند .vmdk را پیدا کن. این ماشین قدیمی است و باید فقط در شبکه ایزوله اجرا شود.

Metasploit Documentation

ساختار پوشه‌ها

برای نظم بیشتر، یک پوشه اصلی بساز:

CyberLab/
├── Downloads/
│   ├── kali-linux.7z
│   └── metasploitable.zip
├── Kali/
└── Metasploitable/

نام فایل‌ها در این مثال فرضی است؛ فایل‌های واقعی را مطابق نام دانلودشده نگه دار. بهتر است پوشه ماشین‌های مجازی را روی SSD با فضای کافی ذخیره کنی.

۳. وارد کردن Kali Linux به VirtualBox

اگر نسخه آماده VirtualBox را دانلود کرده‌ای، این مراحل را انجام بده:

  1. فایل .7z را استخراج کن.

  2. فایل ماشین مجازی استخراج‌شده، معمولاً با پسوند .vbox، را پیدا کن.

  3. روی فایل .vbox دوبار کلیک کن یا از VirtualBox گزینه افزودن ماشین موجود را انتخاب کن.

  4. اگر ماشین در فهرست ظاهر شد، آن را انتخاب کن؛ هنوز اجرا نکن.

  5. وارد Settings → System → Motherboard شو و حافظه را متناسب با سیستم تنظیم کن.

تنظیم پیشنهادی برای کامپیوتری با ۱۶ گیگابایت RAM:

تنظیم مقدار پیشنهادی
Memory 4096 MB
Processor 2 CPU
Video Memory 128 MB، در صورت پشتیبانی
Network Adapter 1 Internal Network

برای سیستمی با ۸ گیگابایت RAM، تخصیص حدود ۲ تا ۳ گیگابایت به Kali را امتحان کن. هنگام اجرای هر دو ماشین، حافظه کافی برای سیستم‌عامل اصلی باقی بگذار.

۴. وارد کردن Metasploitable 2 به VirtualBox

این ماشین ممکن است فایل .vbox آماده نداشته باشد؛ در این صورت باید از دیسک مجازی موجود استفاده کنی.

  1. در VirtualBox روی New کلیک کن.

  2. نام ماشین را Metasploitable2 بگذار.

  3. نوع سیستم‌عامل را Linux و نسخه را متناسب با Ubuntu قدیمی ۳۲ بیتی انتخاب کن؛ اگر گزینه دقیق موجود نیست، گزینه Linux مناسب را انتخاب کن.

  4. حافظه را حدود ۱۰۲۴ تا ۲۰۴۸ مگابایت تنظیم کن.

  5. در بخش دیسک، گزینه استفاده از دیسک مجازی موجود را انتخاب کن.

  6. فایل دیسک .vmdk استخراج‌شده از بسته Metasploitable را انتخاب کن.

  7. ماشین را بساز، اما قبل از روشن کردن، تنظیم شبکه آن را مطابق مرحله بعد تغییر بده.

اگر VirtualBox دیسک را نمی‌پذیرد، بررسی کن که فایل واقعاً استخراج شده باشد و دیسک را از داخل آرشیو فشرده انتخاب نکرده باشی.

۵. ساخت شبکه کاملاً داخلی

این مرحله مهم‌ترین قسمت آموزش است. هدف این است که Kali و Metasploitable بتوانند با یکدیگر ارتباط داشته باشند، ولی ماشین آسیب‌پذیر به اینترنت یا شبکه خانگی متصل نشود.

تنظیم شبکه در Kali Linux

  1. در VirtualBox ماشین Kali را انتخاب کن.

  2. روی Settings → Network → Adapter 1 کلیک کن.

  3. تیک Enable Network Adapter را فعال نگه دار.

  4. در قسمت Attached to، گزینه Internal Network را انتخاب کن.

  5. در قسمت Name، نام زیر را وارد کن:

CyberLab

6. وارد تب Adapter 2 شو. اگر فعال است، آن را غیرفعال کن.

تنظیم شبکه در Metasploitable 2

دقیقاً همین مراحل را برای ماشین Metasploitable انجام بده:

  • Adapter 1: فعال

  • Attached to: Internal Network

  • Name: CyberLab

  • Adapter 2 و سایر آداپتورها: غیرفعال

نام شبکه در هر دو ماشین باید دقیقاً یکسان باشد.

در VirtualBox، شبکه Internal Network فقط میان ماشین‌های مجازی متصل به همان شبکه قابل‌دسترسی است و ارتباط مستقیم آن‌ها با میزبان یا دنیای بیرون را فراهم نمی‌کند.

Oracle Documentation
+1

نکته: در این آموزش از Internal Network استفاده می‌کنیم، نه Bridged یا NAT. برای Metasploitable 2، اضافه کردن یک کارت شبکه اینترنتی صرفاً برای راحتی کار، ریسک غیرضروری ایجاد می‌کند.

۶. تنظیم آدرس IP برای هر دو ماشین

چون شبکه داخلی به‌صورت پیش‌فرض لزوماً DHCP فعال ندارد، برای اینکه مطمئن باشیم دو ماشین می‌توانند یکدیگر را پیدا کنند، آدرس IP ثابت تنظیم می‌کنیم.

در این مثال از یک شبکه آزمایشگاهی با آدرس‌های زیر استفاده می‌کنیم:

ماشین آدرس IP Subnet Mask
Kali Linux 192.168.77.10 255.255.255.0
Metasploitable 2 192.168.77.20 255.255.255.0

این آدرس‌ها نمونه‌ای برای شبکه داخلی هستند؛ اگر از قبل شبکه‌ای با همین محدوده ساخته‌ای، از محدوده دیگری استفاده کن.

۶.۱. تنظیم IP در Kali Linux

  1. ماشین Kali را روشن کن و وارد محیط دسکتاپ شو.

  2. ترمینال را باز کن.

  3. ابتدا رابط شبکه را پیدا کن:

ip -br link

ممکن است نام رابط eth0، enp0s3 یا نام دیگری باشد. در دستورهای بعدی، نام واقعی رابط خودت را جایگزین eth0 کن.

4. برای تنظیم آدرس موقت آزمایشگاهی، اجرا کن:

sudo ip link set eth0 up
sudo ip addr add 192.168.77.10/24 dev eth0

اگر قبلاً روی این رابط IP تنظیم شده و دستور دوم خطای File exists داد، ابتدا خروجی دستور زیر را بررسی کن:

ip -br addr

از حذف آدرس‌های موجود خودداری کن، مگر اینکه مطمئن باشی رابط فقط برای آزمایشگاه است و تنظیمات قبلی آن را نیاز نداری.

5. آدرس را بررسی کن:

ip -br addr

باید آدرس 192.168.77.10/24 را روی رابط انتخاب‌شده ببینی.

این تنظیم با دستور ip موقت است و ممکن است پس از راه‌اندازی مجدد ماشین از بین برود. برای شروع، همین روش کافی است.

۶.۲. تنظیم IP در Metasploitable 2

  1. ماشین Metasploitable را روشن کن.

  2. در صفحه ورود، اطلاعات پیش‌فرض مستندشده را وارد کن:

Username: msfadmin
Password: msfadmin

این اعتبارنامه‌ها فقط برای ماشین آموزشی Metasploitable 2 هستند؛ برای سیستم واقعی از چنین رمزهایی استفاده نکن.

Metasploit Documentation

3. پس از ورود، دستور زیر را اجرا کن:

ifconfig

نام رابط شبکه را پیدا کن؛ معمولاً eth0 است.

4. برای تنظیم آدرس IP موقت، اجرا کن:

sudo ifconfig eth0 192.168.77.20 netmask 255.255.255.0 up

اگر حساب آموزشی اجازه اجرای sudo نداد، می‌توانی از دستور زیر در همان ماشین استفاده کنی:

su -

در صورت درخواست، رمز حساب مدیریتی را وارد کن و سپس دستور تنظیم IP را بدون sudo اجرا کن.

5. بررسی کن آدرس تنظیم شده باشد:

ifconfig eth0

باید آدرس 192.168.77.20 را ببینی.

در این شبکه برای ارتباط میان دو ماشین، نیازی به تنظیم Gateway یا DNS نیست. همچنین برای این آزمایش، هیچ آدرس IP عمومی یا آدرس شبکه خانگی را وارد نکن.

۷. آزمایش ارتباط بین دو ماشین

حالا هر دو ماشین روشن هستند و باید در شبکه داخلی یکدیگر را پیدا کنند.

آزمایش اول: از Kali به ماشین هدف

در ترمینال Kali اجرا کن:

ping -c 4 192.168.77.20

اگر همه‌چیز درست باشد، خروجی مشابه زیر دریافت می‌کنی:

64 bytes from 192.168.77.20: icmp_seq=1 ttl=64 time=...
64 bytes from 192.168.77.20: icmp_seq=2 ttl=64 time=...

مقادیر زمان و TTL بسته به محیط واقعی متفاوت خواهند بود.

آزمایش دوم: بررسی IP ماشین هدف

در Metasploitable اجرا کن:

ifconfig eth0

مطمئن شو آدرس 192.168.77.20 ثبت شده است.

اگر Ping پاسخ نداد، چه کار کنی؟

این موارد را به‌ترتیب بررسی کن:

  1. هر دو ماشین روشن باشند.

  2. نام شبکه در هر دو ماشین CyberLab باشد.

  3. آدرس IP و Subnet Mask دقیقاً مطابق تنظیمات بالا باشند.

  4. نام رابط شبکه را اشتباه وارد نکرده باشی.

  5. هر دو ماشین فقط به شبکه داخلی آزمایشگاه متصل باشند.

اگر هنوز ارتباط برقرار نشد، خروجی ip -br addr در Kali و ifconfig در Metasploitable را بررسی کن. عدم پاسخ Ping به‌تنهایی ثابت نمی‌کند که شبکه قطع است؛ ممکن است ICMP مسدود شده باشد.

۸. اجرای اولین اسکن امنیتی با Nmap

حالا که شبکه آزمایشگاهی آماده است، اولین تمرین تست نفوذ را انجام می‌دهیم: شناسایی پورت‌ها و سرویس‌های ماشین هدف.

Nmap ابزاری برای کشف میزبان‌ها، بررسی پورت‌ها و شناسایی سرویس‌های شبکه است.

گام اول: بررسی دسترسی هدف

در Kali Linux اجرا کن:

ping -c 4 192.168.77.20

اگر پاسخ دریافت کردی، به مرحله بعد برو.

گام دوم: بررسی پورت‌های رایج

این دستور را اجرا کن:

nmap -sV -T3 -p 1-1000 192.168.77.20

معنی گزینه‌ها:

گزینه کاربرد
-sV تلاش برای شناسایی نسخه سرویس‌ها
-T3 سرعت اسکن متعادل
-p 1-1000 بررسی پورت‌های TCP از ۱ تا ۱۰۰۰
IP هدف آدرس ماشین آزمایشگاهی خودت

این دستور فقط باید روی ماشین هدف خودت در آزمایشگاه اجرا شود.

گام سوم: تحلیل نتیجه

خروجی ممکن است شامل اطلاعاتی شبیه این باشد:

PORT    STATE SERVICE
22/tcp  open  ssh
80/tcp  open  http
139/tcp open  netbios-ssn
445/tcp open  microsoft-ds

این خروجی صرفاً نمونه است؛ نتیجه واقعی به سرویس‌های فعال ماشین هدف بستگی دارد.

  • open: سرویس به اتصال روی آن پورت پاسخ می‌دهد.

  • closed: پورت قابل‌دسترسی است، اما سرویس در حال گوش‌دادن نیست.

  • filtered: ابزار نمی‌تواند وضعیت پورت را به‌طور قطعی مشخص کند؛ معمولاً به دلیل فیلترینگ یا پاسخ ندادن شبکه.

نکته مهم: باز بودن یک پورت به‌تنهایی به معنی وجود آسیب‌پذیری نیست. باید سرویس، نسخه، پیکربندی و شواهد مرتبط را جداگانه بررسی کنی.

۹. بررسی سرویس وب در مرورگر

اگر اسکن نشان داد پورت ۸۰ باز است، در مرورگر داخل Kali این آدرس را باز کن:

http://192.168.77.20

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

در این مرحله موارد زیر را یادداشت کن:

  • آیا وب‌سرور پاسخ می‌دهد؟

  • آیا صفحه‌ای از اطلاعات سرویس یا نرم‌افزار نمایش می‌دهد؟

  • آیا مسیرهای قابل‌مشاهده‌ای برای بررسی بیشتر وجود دارد؟

  • آیا اطلاعات غیرضروری در صفحه افشا شده است؟

فعلاً نیازی به اجرای اکسپلویت نیست. یادگیری تست نفوذ از شناسایی و تحلیل صحیح شروع می‌شود، نه از اجرای کورکورانه ابزارهای حمله.

۱۰. ذخیره نتیجه اسکن برای گزارش تست نفوذ

برای اینکه نتیجه تمرین را نگه داری، از Nmap بخواه خروجی را در فایل ذخیره کند:

mkdir -p ~/CyberLab/reports
nmap -sV -T3 -p 1-1000 -oN ~/CyberLab/reports/first-scan.txt 192.168.77.20

فایل گزارش در این مسیر ذخیره می‌شود:

/home/kali/CyberLab/reports/first-scan.txt

می‌توانی آن را با دستور زیر مشاهده کنی:

cat ~/CyberLab/reports/first-scan.txt

برای هر تمرین، تاریخ، IP هدف، ابزار استفاده‌شده، یافته‌ها و نتیجه‌گیری خودت را ثبت کن. این عادت در تست نفوذ حرفه‌ای بسیار مهم است.

۱۱. ساخت Snapshot برای بازگرداندن آزمایشگاه

پس از اینکه ماشین‌ها را با موفقیت راه‌اندازی کردی، بهتر است از وضعیت سالم آن‌ها Snapshot بگیری.

  1. هر ماشین را در VirtualBox انتخاب کن.

  2. وارد بخش Snapshots شو.

  3. روی Take کلیک کن.

  4. نامی مانند Initial-Lab-Setup برای آن انتخاب کن.

  5. برای بازگشت به وضعیت اولیه، از Snapshot مناسب استفاده کن.

Snapshot جایگزین بکاپ مستقل نیست؛ اگر فایل دیسک ماشین آسیب ببیند یا حذف شود، ممکن است Snapshot نیز قابل‌استفاده نباشد. برای اطلاعات مهم، نسخه پشتیبان جداگانه نگه دار.

۱۲. عیب‌یابی مشکلات رایج

مشکل: Kali اجرا نمی‌شود یا خطای مجازی‌سازی می‌دهد.

مجازی‌سازی پردازنده را در BIOS/UEFI بررسی کن. همچنین اگر Hyper-V یا قابلیت‌های مجازی‌سازی ویندوز با نسخه VirtualBox تداخل دارند، راهنمای رسمی VirtualBox و Kali را بررسی کن؛ بدون بررسی، قابلیت‌های امنیتی ویندوز را غیرفعال نکن.

مشکل: هر دو ماشین روشن‌اند اما یکدیگر را نمی‌بینند.

نام شبکه داخلی، IP و Subnet Mask را بررسی کن. به خاطر داشته باش که شبکه Internal Network لزوماً DHCP ندارد؛ به همین دلیل در این آموزش IP ثابت تنظیم کردیم.

مشکل: Nmap همه پورت‌ها را بسته یا فیلترشده نشان می‌دهد.

ابتدا از درست بودن IP هدف و وضعیت رابط شبکه مطمئن شو. سپس بررسی کن سرویس‌های موردنظر در ماشین هدف فعال باشند. نتیجه یک اسکن به‌تنهایی برای تشخیص علت کافی نیست.

مشکل: ماشین هدف پس از خاموش و روشن شدن IP ندارد.

دستورات تنظیم IP در این آموزش موقت هستند. پس از راه‌اندازی مجدد، دوباره آدرس‌ها را تنظیم کن یا پس از اطمینان از شبکه ایزوله، تنظیم دائمی شبکه را انجام بده.

مشکل: Kali به اینترنت دسترسی ندارد.

این رفتار در شبکه ایزوله مورد انتظار است. فایل‌های موردنیاز را از سیستم میزبان و منابع رسمی دریافت کن؛ برای به‌روزرسانی، ماشین آسیب‌پذیر را به اینترنت متصل نکن.

۱۳. چک‌لیست نهایی راه‌اندازی آزمایشگاه

وضعیت راه‌اندازی

0 از 9

کپی چک‌لیست

۱۴. منابع رسمی برای مطالعه بیشتر

جمع‌بندی

با پایان این مراحل، باید یک محیط آزمایشگاهی داشته باشی که در آن Kali Linux و Metasploitable 2 از طریق یک شبکه داخلی ارتباط برقرار می‌کنند، می‌توانی سرویس‌های ماشین هدف را با Nmap شناسایی کنی و نتایج را در گزارش ثبت کنی.

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

توصیه برای انتشار در صفر و یک سایبر: پیش از انتشار مقاله، تصاویر واقعی از مراحل تنظیم شبکه در VirtualBox، تنظیم IP و خروجی Nmap تهیه کن و کنار هر مرحله قرار بده. این کار آموزش را برای کاربران مبتدی بسیار قابل‌فهم‌تر می‌کند.

دسته بندی‌ها:

آنچه در این مقاله میخوانید

دیدگاه شما

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *