🤖 8- Metasploit Framework
🤖 Metasploit Framework: المفاهيم النظرية الشاملة
📚 مقدمة Metasploit Framework
Metasploit أداة متعددة الاستخدامات تستخدم في مراحل مختلفة من اختبار الاختراق :
جمع المعلومات (Information Gathering) والاستطلاع (Enumeration): تستخدم Metasploit وحداتها المساعدة (Auxiliary Modules) لجمع المعلومات واكتشاف الخدمات .
فحص الثغرات (Vulnerability Scanning): تقييم أمن الأنظمة واكتشاف نقاط الضعف، يمكن دمجها مع أدوات أخرى مثل Nessus أو استخدام إضافات مدمجة مثل WMAP .
الاستغلال (Exploitation): استغلال الثغرات الفعلية في النظام أو التطبيق للوصول إليه .
ما بعد الاستغلال (Post-Exploitation): تنفيذ مهام بعد اختراق النظام مثل رفع الصلاحيات، الحفاظ على الوصول، مسح الآثار، والانتقال بين الشبكات (Pivoting) .
💡 المكونات الأساسية لـ Metasploit Framework
الـ Metasploit يستخدم الوحدات (Modules) وهي أجزاء من التعليمات البرمجية وتسوي مهام محددة وتتفاعل مع مكتبات (Libraries) جاهزة .
📖 المكتبات (Libraries)
هي مجموعة من الأكواد الجاهزة التي تستخدمها وحدات Metasploit لتنفيذ مهامها دون الحاجة لكتابة كود برمجي معقد .
⚙️ الوحدات (Modules)
هي العمود الفقري لـ Metasploit ولها أنواع رئيسية:
💥 وحدات الاستغلال (Exploit Modules)
مفهومها: هي وحدات برمجية تستغل نقاط الضعف (Vulnerabilities) الموجودة في الأنظمة أو التطبيقات لاختراقها .
آلية عملها: تقوم هذه الوحدات باستغلال ثغرة معينة للدخول إلى النظام المستهدف، وغالباً ما تنقل الحمولة (Payload) إلى الهدف .
📦 وحدات الحمولة (Payload Modules)
مفهومها: هي الكود الذي يتم تنفيذه على النظام المستهدف بعد نجاح الاستغلال، وتتيح للمهاجم التحكم عن بعد .
أنواع الحمولة:
Non-Staged Payloads (حمولة غير مجزأة): يتم إرسال الحمولة بالكامل مرة واحدة، وهي أسرع لكن يسهل اكتشافها من قبل برامج مكافحة الفيروسات .
Staged Payloads (حمولة مجزأة/مرحلية): تقسم الحمولة إلى جزأين :
Stager (المرحل): جزء صغير يتم إرساله أولاً لفتح اتصال عكسي وتحميل الجزء المتبقي .
Stage (المرحلة): الجزء الأكبر من الحمولة الذي يحتوي على الوظائف الأساسية، ويُحمل بواسطة الـ Stager . تساهم في تجاوز برامج مكافحة الفيروسات .
أنواع الأصداف (Shells):
Bind Shell (صدفة الربط): تفتح الحمولة منفذاً على النظام المستهدف وتنتظر اتصالاً من المهاجم. لا تعمل جيداً مع جدران الحماية التي تمنع الاتصالات الواردة .
Reverse Shell (صدفة الاتصال العكسي): تقوم الحمولة بفتح اتصال من النظام المستهدف إلى المهاجم المستمع على منفذ محدد. تتجاوز جدران الحماية بسهولة لأنها تستغل سماح معظم الجدران النارية بالاتصالات الصادرة .
⚡ Meterpreter (ميتاسبريتر):
مفهومه: أحد أشهر أنواع الحمولة وأكثرها تقدماً وتعددية في الوظائف داخل Metasploit .
آلية عمله: يُنفذ داخل ذاكرة النظام المستهدف (Memory)، مما يجعله صعب الاكتشاف .
ميزاته: يوفر واجهة تفاعلية، يتنقل في نظام الملفات، ويسجل ضغطات المفاتيح (Keylogging)، ويأخذ لقطات شاشة، ويمكنه الوصول إلى الكاميرا والميكروفون .
🔒 وحدات التشفير (Encoder Modules)
مفهومها: وحدات تُستخدم لتمويه شكل الحمولة (Payload) أو الشيل كود (Shellcode) .
الهدف النظري: تجاوز أنظمة الكشف عن الفيروسات (Antivirus Detection) التي تعتمد على التوقيعات (Signature-based Detection) عن طريق تغيير توقيع الحمولة . ملاحظة: هو تمويه وليس تشفيراً بالمعنى الحرفي .
📏 وحدات لا-عملية (Nop Modules)
مفهومها: "Nop" اختصار لـ "No Operation" (لا توجد عملية). هذه الوحدات تضيف تعليمة "لا عمل" إلى الحمولة .
الهدف النظري: تُستخدم لضبط حجم الحمولة (Payload Size) لتتناسب مع المساحة المتاحة في الذاكرة أثناء الاستغلال، وضمان إمكانية إرسالها بنجاح .
🤝 الوحدات المساعدة (Auxiliary Modules)
مفهومها: وحدات تؤدي وظائف مساعدة وليست استغلالية مباشرة .
وظائفها: تُستخدم لمهام مثل فحص المنافذ (Port Scanning)، جمع المعلومات (Enumeration)، تخمين كلمات المرور (Brute-forcing)، أو التحقق من وجود خدمة معينة .
🛠️ أدوات إضافية ومفاهيم داخل Metasploit
🧰 MSFvenom: أداة سطر أوامر مدمجة لإنشاء حمولات ضارة (مثل Meterpreter) وتشفيرها (Encoding) ووضعها داخل ملفات تنفيذية أو مستندات. تُستخدم في هجمات العميل (Client-Side Attacks) لتجاوز برامج مكافحة الفيروسات .
🗄️ قاعدة بيانات Metasploit (MSFDB): يعتمد Metasploit على خادم قاعدة بيانات PostgreSQL لتخزين جميع البيانات المجمعة أثناء اختبار الاختراق (مثل معلومات المضيف، نتائج الفحص من Nmap أو Nessus) لتتبع وإدارة المشاريع.
🖥️ الواجهة الطرفية (msfconsole): واجهة سطر الأوامر الافتراضية والأساسية للتفاعل مع Metasploit Framework، وتوفر الوصول إلى جميع وظائفها .
🔄 المتغيرات (Variables): مكونات تحددها داخل وحدة Metasploit لتوفير المعلومات اللازمة لعمل الوحدة (مثل LHOST، LPORT، RHOST، RPORT) . تُستخدم لتخصيص الهجوم للهدف المحدد .
🗂️ مساحات العمل (Workspaces): ميزة لتنظيم العمل داخل Metasploit، تسمح بإنشاء مساحات عمل مختلفة لكل مشروع لفصل البيانات والنتائج .
📂 بنية نظام ملفات Metasploit: توجد في أنظمة لينكس في المسار
/usr/share/metasploit-framework/، وتحتوي على مجلدات للموديولات، وقوائم الكلمات (wordlists)، وموقع لتخزين البيانات المجمعة (loot) .🔗
multi/handler: وحدة في Metasploit تُستخدم لإعداد مستمع (listener) لاستقبال الاتصالات العكسية (reverse connections) من الحمولات المزروعة، خاصة في هجمات العميل أو لضمان استمرار الوصول.
🛡️ هجمات جانب العميل (Client-Side Attacks)
مفهومها: شكل من أشكال الهجمات التي تستغل نقطة ضعف بشرية (Human Vulnerability) بدلاً من ثغرات في الأنظمة أو الخدمات. تتطلب أن يقوم العميل بتنفيذ الحمولة الضارة (مثل فتح ملف أو النقر على رابط).
آليتها: يقوم المهاجم بإنشاء حمولة ضارة (باستخدام MSFvenom غالباً) وإرسالها للضحية. بمجرد تنفيذ الحمولة، تقوم بإنشاء اتصال عكسي مع جهاز المهاجم.
تجاوز الحماية: يتم تشفير الحمولة أو تمويهها لتجاوز برامج مكافحة الفيروسات التي تعتمد على التوقيعات.
Shellcode (الشيل كود): قطعة من الكود تُستخدم كحمولة للاستغلال، وتسمح للمهاجم بالوصول إلى صدفة أوامر عن بعد (Remote Command Shell) على الجهاز المستهدف.
🚨 فحص الثغرات باستخدام Metasploit
تعريف فحص الثغرات: هي عملية مسح لنظام معين بهدف اكتشاف نقاط الضعف وتقييم إمكانية استغلالها.
Metasploitable (ميتاسبلويتبول): آلة افتراضية (VM) مصممة خصيصاً لتكون ضعيفة (Vulnerable Machine)، وتستخدم لتدريب واختبار Metasploit. (مثل Metasploitable 3 المستندة إلى Windows Server 2008).
Nessus (نسوس): أداة فحص ثغرات مملوكة لشركة Tenable. يمكن تصدير نتائجه إلى Metasploit لتحديد أفضل الاستغلالات المتاحة.
WMAP (دبليو ماب): إضافة (Extension) مضمنة في Metasploit تُستخدم لفحص ثغرات تطبيقات الويب، وتعمل على أتمتة اكتشاف الأخطاء في التكوين (Misconfiguration) والثغرات. تتطلب تشغيل قاعدة بيانات Metasploit.
🎯 تقنيات ما بعد الاستغلال (Post-Exploitation)
هي مجموعة من الإجراءات التي يتخذها المهاجم بعد الحصول على وصول أولي (Initial Access) إلى النظام المستهدف. الهدف هو تعميق الاختراق والحفاظ عليه.
ترحيل العمليات (Process Migration): نقل جلسة Meterpreter من العملية الأولية التي تم اختراقها إلى عملية نظامية أخرى أكثر استقراراً وشرعية (مثل
explorer.exeأوlsass.exeعلى Windows) لزيادة الثبات وتجنب الكشف.رفع الصلاحيات (Privilege Escalation): الحصول على صلاحيات أعلى على النظام المستهدف (مثل من مستخدم عادي إلى مدير أو إلى SYSTEM على Windows أو Root على Linux).
الأمر
getsystem: يُستخدم في Meterpreter لمحاولة الحصول على صلاحيات SYSTEM على أنظمة Windows. يتطلب عادةً صلاحيات إدارية (Administrator) وتعطيل UAC.تجاوز التحكم في حساب المستخدم (UAC Bypass): اليوزر أكونت كونترول (UAC) هو ميزة أمان في Windows تمنع التطبيقات من إجراء تغييرات على النظام دون موافقة المستخدم. تقنيات التجاوز تسمح بتنفيذ الأوامر بصلاحيات إدارية كاملة حتى لو كانت UAC مفعلة.
انتحال الرموز (Token Impersonation): يعتمد على مفهوم Windows Access Token، وهو مفتاح مؤقت يمثل صلاحيات المستخدم. تقنية انتحال الرموز تسمح للمهاجم بانتحال هوية مستخدم آخر على النظام، مما يمنحه صلاحياته. يتم ذلك عبر وحدات مثل
incognitoفي Meterpreter.Pass-the-Hash (PtH): تقنية تسمح للمهاجم بالمصادقة على نظام آخر باستخدام تجزئة (Hash) كلمة المرور مباشرةً بدلاً من كلمة المرور النصية الواضحة. تُستخدم عبر وحدات مثل
psexecللاستغلال والوصول بصلاحيات أعلى على خدمات مثل SMB.
استخراج بيانات الاعتماد (Credential Dumping):
Mimikatz (امتداد Kiwi): أداة قوية لما بعد الاستغلال على Windows (مدمجة في Meterpreter كامتداد Kiwi). تستخرج كلمات المرور النصية الواضحة وتجزئات كلمات المرور من ذاكرة نظام Windows (خاصة من عملية LSASS) ومن قاعدة بيانات SAM. تتطلب صلاحيات عالية.
الأمر
hashdump: يُستخدم في Meterpreter لاستخراج تجزئات كلمات المرور.
الثبات (Persistence): ضمان استمرار وصول المهاجم إلى النظام المستهدف حتى بعد إعادة تشغيله، أو تغيير بيانات الاعتماد، أو فقدان الاتصال الأولي.
خدمة الثبات (Persistence Service): إنشاء خدمة جديدة على نظام Windows تبدأ تلقائياً مع بدء التشغيل، وتوفر اتصالاً عكسياً للمهاجم.
ثبات مفتاح SSH (SSH Key Persistence): على أنظمة Linux، يمكن زرع مفاتيح SSH (عامة وخاصة) لإنشاء وصول آمن ومستمر عبر SSH دون الحاجة لكلمة مرور.
تفعيل سطح المكتب البعيد (RDP): تمكين خدمة بروتوكول سطح المكتب البعيد (RDP) على نظام Windows عن بعد، مما يتيح للمهاجم الوصول الرسومي إلى الجهاز المستهدف. يتطلب حساب مستخدم صالح وكلمة مرور.
مسجل ضغطات المفاتيح (Keylogging): تسجيل كل ما يكتبه المستخدم على لوحة المفاتيح. توفر Meterpreter أوامر مثل
keyscan_startوkeyscan_dumpلذلك.
مسح الآثار (Clearing Tracks): إزالة الأدلة على وجود المهاجم على النظام المستهدف لجعل تتبع الأنشطة أكثر صعوبة على فرق الاستجابة للحوادث.
الأمر
clearev: في Meterpreter، يُستخدم لمسح سجلات أحداث Windows (Application, System, Security Event Logs).
التمحور (Pivoting): استخدام نظام تم اختراقه (Victim 1) كنقطة انطلاق للوصول إلى أنظمة أخرى (Victim 2, 3...) داخل شبكة داخلية لا يمكن الوصول إليها مباشرةً من جهاز المهاجم.
autoroute: أمر Meterpreter لإنشاء مسارات ثابتة (Static Routes) داخل Meterpreter للوصول إلى شبكات داخلية جديدة عبر الجهاز المخترق.تحويل المنافذ (Port Forwarding): تقنية لربط منفذ بعيد على الجهاز المستهدف بمنفذ محلي على جهاز المهاجم، أو IP بعيد بـ IP محلي، مما يسمح للمهاجم باستخدام أدواته المحلية (مثل Nmap) لمسح الشبكة الداخلية أو التفاعل معها عبر نقطة المحور.
🌐 البروتوكولات والخدمات الشائعة وثغراتها (من الناحية النظرية)
HTTP File Server (HFS) / Rejetto HTTP File Server: خادم ويب لمشاركة الملفات يعمل على المنفذ 80. الإصدار 2.3 كان عرضة لثغرة تنفيذ الكود عن بعد (Remote Code Execution).
EternalBlue (MS17-010): ثغرة حرجة لتنفيذ الكود عن بعد في بروتوكول SMBv1 على أنظمة Windows، تم استغلالها بواسطة WannaCry ransomware. Metasploit يوفر وحدات فحص واستغلال لها.
Windows Remote Management (WinRM): بروتوكول Windows للإدارة عن بعد، يستخدمه المسؤولون لإدارة الأجهزة. يعمل على المنفذين 5985 و 5986.
Apache Tomcat (أباتشي توم كات): خادم ويب مفتوح المصدر ومجاني لتطبيقات Java، يعمل على المنفذ الافتراضي 8080. الإصدار 8.5.19 كان عرضة لثغرة تنفيذ الكود عن بعد.
FTP (File Transfer Protocol): بروتوكول نقل الملفات، يستخدم TCP على المنفذ 21. قد تكون الخوادم عرضة للثغرات بسبب الإصدارات القديمة (مثل VSFTPS 2.3.4) أو السماح بالدخول المجهول (Anonymous Login).
SMB (Server Message Block) / Samba: بروتوكول مشاركة الملفات عبر الشبكة. SMB لأنظمة Windows، و Samba لـ Linux. يستخدم TCP على المنفذ 445 (SMB) و 139 (NetBIOS). NetBIOS مسؤول عن تعريف أسماء الأجهزة في الشبكة. Samba 3.5.0 كان عرضة لثغرة تنفيذ الكود عن بعد.
SSH (Secure Shell): بروتوكول إدارة آمن عن بعد، يقوم بتشفير حركة المرور ويستخدم TCP على المنفذ 22. مكتبة
libssh(الخاصة بـ SSHv2) في الإصدارات 0.6.0-0.8.2 كانت عرضة لثغرة تجاوز المصادقة (Authentication Bypass).SMTP (Simple Mail Transfer Protocol): بروتوكول اتصالات لنقل البريد الإلكتروني، يستخدم TCP على المنفذ الافتراضي 25، ويمكن استخدامه أيضاً على 465 أو 587 للاتصالات المشفرة. خادم HmailServer في الإصدارات الأقدم من 2.8.9 كان عرضة لثغرة حقن الأوامر (Command Injection).
MySQL Protocol (ماي سيكول): بروتوكول إدارة قواعد البيانات مفتوح المصدر، يعمل على المنفذ 3306. Metasploit يوفر وحدات لجمع المعلومات عنه (الإصدار، المستخدمين) وتخمين كلمات المرور.
🐧 بوست اكسبلويتيشن على أنظمة Linux
مثل Windows، توفر Metasploit وحدات لما بعد الاستغلال على أنظمة Linux.
إمكانياتها: تعداد إعدادات النظام، متغيرات البيئة، تكوين الشبكة، اكتشاف الآلات الافتراضية/الحاويات (VM/Container Detection)، سجلات المستخدمين (User History).
رفع الصلاحيات: يمكن استغلال إصدارات معينة من نواة Linux (Kernel) أو خدمات ضعيفة (مثل
check_rootkitservice) للحصول على صلاحيات Root.استخراج الهاشات: يمكن استخراج تجزئات كلمات المرور للمستخدمين من ملف
/etc/shadow.الثبات: الحفاظ على الوصول إلى نظام Linux حتى بعد إعادة التشغيل، باستخدام تقنيات مثل مفاتيح SSH.
🖥️ واجهة Armitage الرسومية
مفهومها: واجهة مستخدم رسومية (GUI) مبنية على Java لـ Metasploit Framework. تُعد بمثابة الواجهة الأمامية (Front-End) لـ Metasploit.
ميزاتها: تصور رسومي للشبكة (Network Visualization)، وأتمتة لمهام فحص المنافذ، والاستغلال، وما بعد الاستغلال.
متطلباتها: تتطلب تشغيل خدمة قاعدة بيانات Metasploit (PostgreSQL).
🔄 سكربتات الموارد (Resource Scripts)
مفهومها: ميزة في Metasploit تسمح بأتمتة المهام المتكررة (مثل إعداد الاستغلال، الحمولة، والمتغيرات) عن طريق كتابتها مرة واحدة في ملف سكريبت.
Last updated