آموزش کالی لینوکس از نصب تا تست نفوذ
آموزش کالی لینوکس اولین قدم عملی برای بسیاری از علاقهمندان تست نفوذ است، چون این توزیع لینوکس بیش از ۶۰۰ ابزار امنیتی را در یک مخزن رسمی و بهروز جمع کرده است. کالی مبتنی بر دبیان است و برخلاف تصور، فقط ابزار جمع نکرده؛ پیکربندی پیشفرض آن هم برای کار تهاجمی تنظیم شده است.
در این راهنما ابتدا تفاوت کالی و یک توزیع عمومی مانند اوبونتو را میبینید، سپس سه روش نصب (ماشین مجازی، WSL2 و USB بوتیبل) را با دستورهای واقعی مرور میکنیم. در ادامه ساختار فایلسیستم و بهروزرسانی مخزنها، جدول دستورات ضروری، دستهبندی ابزارها، کار عملی با Nmap و Metasploit، ساخت آزمایشگاه شخصی و نکات امنیت خود کالی بررسی میشود. تمرینهای این مسیر را میتوانید بدون نصب در «آزمایشگاه اکسپلویتفا» ادامه دهید.
کالی لینوکس چیست و چه تفاوتی با اوبونتو دارد؟
کالی لینوکس یک توزیع لینوکس مبتنی بر دبیان است که برای تست نفوذ، تحلیل بدافزار و جرمشناسی رقمی ساخته شده و بیش از ۶۰۰ ابزار امنیتی را بهصورت پیشفرض و در مخزن رسمی خود دارد. این ابزارها با بستههای استاندارد بهروزرسانی میشوند، بنابراین نیازی به دانلود فایل اجرایی از منابع نامعتبر یا نصب دستی وابستگیها نیست.
اوبونتو یک توزیع عمومی برای سرور و رومیزی است و ابزارهای امنیتی را باید جداگانه نصب کنید. کالی چند تفاوت عملی دارد: سرویسهای کمتری در حالت اجرا هستند، کرنل آن از حالت مانیتور و تزریق بسته پشتیبانی میکند و فایلهای واژهنامه و قالب ابزارها از پیش در جای مناسب قرار دارند. برای کار روزمره دفتری، اوبونتو انتخاب بهتری است؛ کالی برای کار تهاجمی و آزمون امنیتی.
نصب کالی: ماشین مجازی، WSL2 و USB بوتیبل
رایجترین روش نصب، ماشین مجازی است: تصویر ISO یا تصویر آماده VirtualBox و VMware را دانلود کنید، حداقل ۴ گیگابایت رم و ۲۵ گیگابایت دیسک اختصاص دهید و شبکه را روی NAT برای دسترسی به اینترنت یا Bridged برای حضور در شبکه محلی بگذارید. حالت Bridged برای تمرین اسکن در شبکه آزمایشگاه مناسبتر است، اما کالی را در معرض شبکه واقعی قرار میدهد.
روی ویندوز ۱۰ و ۱۱ میتوانید از WSL2 استفاده کنید: با دستور wsl --install -d kali-linux توزیع نصب میشود و سپس با sudo apt update && sudo apt full-upgrade بستهها بهروز میشوند. WSL برای تمرین خط فرمان و اسکریپتنویسی مناسب است، اما برای ابزارهای گرافیکی، شنود بیسیم و تزریق بسته محدودیت جدی دارد و ماشین مجازی گزینه بهتری است.
- برای USB بوتیبل، تصویر Live کالی را با dd روی فلش بنویسید: dd if=kali-linux.iso of=/dev/sdX bs=4M status=progress
- پیش از نوشتن، نام دقیق دستگاه را با lsblk تأیید کنید؛ اشتباه در انتخاب /dev/sdX میتواند داده دیسک دیگری را از بین ببرد.
- برای نصب پایدار روی فلش، حالت Persistent یا Encrypted Persistence را فعال کنید تا تغییرات میان بوتها باقی بماند.
- پس از نصب، زمان سیستم و مخزنها را بررسی کنید؛ ساعت نادرست باعث خطای اعتبارسنجی گواهی مخزن میشود.
ساختار فایلسیستم، کاربران و بهروزرسانی مخزنها
ساختار فایلسیستم کالی همان استاندارد لینوکس است: پوشه etc برای پیکربندی، var/log برای لاگها، home برای داده کاربران، opt برای ابزارهای جانبی مانند burpsuite و usr/share برای واژهنامهها و قالبهای ابزارها. فایلهای اجرایی ابزارهای امنیتی بیشتر در usr/bin قرار دارند و پیکربندی آنها معمولاً در etc است.
در نسخههای جدید کالی، کاربر پیشفرض دیگر ریشه نیست و برای کارهای مدیریتی از sudo استفاده میشود. بهروزرسانی درست سه مرحله دارد و پیش از هر تمرین طولانی باید اجرا شود؛ مخزن پیشفرض در فایل etc/apt/sources.list تعریف شده است.
- sudo apt update — بهروزرسانی فهرست بستهها از مخزنهای تعریفشده.
- sudo apt full-upgrade -y — ارتقای کامل بستهها همراه با تغییرات وابستگیها.
- sudo apt install -y نامبسته — نصب ابزار جدید؛ مثلاً sudo apt install -y feroxbuster.
- apt-cache search nmap — جستوجو در فهرست مخزنها و یافتن نام درست بسته.
- sudo apt autoremove && sudo apt clean — پاکسازی بستههای بیاستفاده و فایلهای دانلودی.
دستورات ضروری لینوکس برای تست نفوذ
| دستور | کاربرد در تست نفوذ |
|---|---|
| ls -la | مشاهده فایلهای مخفی و مجوزها در پوشه هدف |
| find / -perm -4000 -type f 2>/dev/null | یافتن فایلهای دارای SUID برای بررسی افزایش سطح دسترسی |
| grep -rin password /var/www | جستوجوی اعتبارنامه در فایلهای پیکربندی و کد |
| ss -tulnp | مشاهده پورتهای باز و سرویسهای در حال شنود روی میزبان |
| ip a و ip r | بررسی آدرسها و مسیرهای شبکه میزبان |
| nmap -sV -p- 10.10.10.5 | اسکن کامل پورتها و شناسایی نسخه سرویسها |
| curl -i -X POST -d 'user=admin' http://host/login | ارسال درخواست HTTP و بررسی هدرها و پاسخ |
| wget -r -np http://host/backup/ | دریافت بازگشتی فایلهای در دسترس روی وب |
| nc -lvnp 4444 | ساخت شنونده ساده برای اتصال معکوس در آزمایشگاه |
| tcpdump -i eth0 -nn port 80 | ثبت ترافیک HTTP برای تحلیل بعدی |
| chmod 600 id_rsa | محدودکردن مجوز کلید خصوصی برای استفاده در SSH |
| scp file.txt user@10.10.10.5:/tmp | انتقال فایل میان میزبانهای آزمایشگاه |
| ps aux --sort=-%cpu | فهرست پردازشهای در حال اجرا و شناسایی سرویسهای جالب |
| systemctl list-units --type=service --state=running | مشاهده سرویسهای فعال و سطح حمله میزبان |
| tar -czf loot.tgz /tmp/loot | بستهبندی شواهد و فایلهای جمعآوریشده |
| base64 -d payload.b64 > payload.bin | رمزگشایی داده برای تحلیل بدافزار یا بار مفید |
| python3 -m http.server 8000 | راهاندازی وبسرور موقت برای انتقال فایل |
| tmux new -s pentest | اجرای چند ترمینال پایدار در طول یک تمرین طولانی |
دستهبندی ابزارهای کالی
- جمعآوری اطلاعات: nmap، dnsrecon، theHarvester، whois و recon-ng
- تحلیل آسیبپذیری: nikto، nuclei، openvas، sqlmap و wpscan
- بهرهجویی: metasploit-framework، searchsploit، msfvenom و Social-Engineer Toolkit
- شنود و دستکاری بسته: wireshark، tcpdump، ettercap، bettercap و responder
- شکستن رمز عبور: john، hashcat، hydra، medusa و crunch
- وب و پروکسی: burpsuite، zaproxy، ffuf، gobuster و caido
- جرمشناسی و پس از بهرهجویی: autopsy، volatility3، binwalk، impacket و bloodhound
Nmap و Metasploit در عمل
Nmap با ترکیب چند سوییچ، تصویر دقیقی از هدف میدهد: دستور nmap -sS -sV -sC -O -p- 10.10.10.5 یک اسکن SYN همراه با شناسایی نسخه، اجرای اسکریپتهای پیشفرض و تشخیص سیستمعامل است. برای شبکههای بزرگ، nmap -sn 10.10.10.0/24 فقط میزبانهای زنده را سریع پیدا میکند و خروجی همه اسکنها را میتوان با -oA scan برای گزارش و بازآزمایی ذخیره کرد.
Metasploit چرخه بهرهجویی را مدیریت میکند: با search ماژول مناسب را پیدا میکنید (مثلاً search type:exploit platform:windows smb)، با use آن را انتخاب و با set RHOSTS و set PAYLOAD پیکربندی میکنید و سپس با run یا exploit اجرا میکنید. ماژولهای auxiliary برای اسکن و اعتبارسنجی و ماژولهای post برای فعالیت پس از بهرهجویی به کار میروند.
ساخت آزمایشگاه شخصی با ماشین مجازی
یک آزمایشگاه ساده با دو ماشین مجازی ساخته میشود: کالی بهعنوان مهاجم و یک ماشین هدف عمداً آسیبپذیر. شبکه را روی حالت Host-only یا Internal بگذارید تا ترافیک آزمون از شبکه واقعی و اینترنت جدا بماند؛ کالی میتواند کارت شبکه دوم با NAT برای دریافت بهروزرسانی داشته باشد.
آدرسدهی را ثابت و ساده انتخاب کنید: کالی روی 192.168.56.10 و هدف روی 192.168.56.20 با ماسک 255.255.255.0. اگر آزمایشگاه را بزرگتر کردید، یک ماشین سوم بهعنوان روتر یا کنترلکننده دامنه ویندوزی اضافه کنید تا سناریوهای حرکت جانبی قابل تمرین شود. پیش از هر تمرین، وضعیت شبکه را با ip a و nmap -sn تأیید کنید تا آزمون روی میزبان اشتباه انجام نشود.
امنیت خود کالی
- کالی را فقط در ماشین مجازی و شبکه جدا نگه دارید؛ اتصال مستقیم با حالت Bridged روی شبکه سازمانی ریسک است.
- پیش از هر آزمون پرخطر از ماشین Snapshot بگیرید تا بازگشت به حالت سالم چند ثانیه طول بکشد.
- بستهها را فقط از مخزن رسمی کالی نصب کنید؛ افزودن مخزن شخص ثالث، توزیع را ناپایدار و ناامن میکند.
- رمز کاربر پیشفرض را تغییر دهید، سرویس sshd را تا زمان نیاز متوقف نگه دارید و سرویس اضافه اجرا نکنید.
- پس از هر پروژه، فایلهای شواهد و اعتبارنامههای جمعآوریشده را رمزنگاریشده نگهداری و در پایان امحا کنید.
پرسشهای پرتکرار
؟ آیا نصب کالی روی ویندوز ممکن است؟
بله؛ از راه WSL2 با دستور wsl --install -d kali-linux یا با ماشین مجازی VirtualBox و VMware. WSL برای خط فرمان و اسکریپت مناسب است، اما برای ابزارهای گرافیکی و شنود بیسیم به ماشین مجازی و آداپتور وایفای سازگار نیاز دارید.
؟ چرا کالی و نه یک لینوکس معمولی؟
چون بیش از ۶۰۰ ابزار امنیتی بهصورت بستههای بهروز در مخزن رسمی آن نگهداری میشود و پیکربندی پیشفرض آن برای تست آماده است. همین کار در اوبونتو چند روز نصب و رفع خطای وابستگی میخواهد.
؟ چقدر رم و منابع لازم است؟
حداقل ۲ گیگابایت رم و ۲۰ گیگابایت دیسک برای کار سبک کافی است، اما برای اجرای همزمان کالی و یک ماشین هدف، ۸ گیگابایت رم کل سیستم و ۴۰ گیگابایت دیسک تجربه راحتتری میدهد. پردازنده چهار هستهای و دیسک SSD سرعت اجرای ابزارها را محسوس افزایش میدهد.