02/07/2023
القســم الثالث || الدرس التاسع عشر من الأمن السيبراني ✔️
▪ مشروع Metasploit ▪
شرح مشروع الميتاسبلويت من الصفر
ماهو مشروع الميتاسبلويت؟
الميتاسبلويت Metasploit هي ليست مجرد مشروع مفتوح المصدر! بل هو مشروع يهتم بالأمن المعلوماتي عبر البحث عن الثغرات الأمنية ويساعد في اختبارات الإختراق وتطوير أنظمة كشف التسللات IDS. وأهم إنجازات هذا المشروع هو منصة ميتاسبلوت المفتوحة المصدر وهي أداة تقوم بفتح منفذ في الجهاز المستهدف بهدف اختراقه.
أنشأت ميتاسبلوت من قبل فريق HD Moore سنة 2003، كأداة شبكية محمولة مبرمجة بلغة Perl. سنة 2007 ثم أعيد برمجتها كليا بواسطة لغة Ruby. سنة 2009 . أعلن أنه وقع الإستحواذ عليها من قبل شركة Rapid7، وهي شركة أمنية تبحث عن نقاط الضعف في الأنظمة وتقدم حلول لها.
الميتاسبلويت سلاح ذو حدين
كما يمكن استعمال Metasploit للبحث عن ثغرات الأنظمة فإنه يمكن من استغلالها بطريقة غير شرعية لاختراق الانظمة المختلفة.
فهي تعتبر سلاح سواء في يد الجيد Good وللسيء Bad وللغبي Ugly
ألية العمل بالميتاسبلويت
بشكل عام يمكن تلخيص مهام مشروع الميتاسبلويت لاختراق هدف بخطوات او مراحل كالأتي
اختيار واعداد الثغرة Exploit لعمل الهجوم (باختيار واحدة من بين أكثر من 1577 ثغرة موجودة على مختلف الانظمة من وندوز، ماك أو لينكس)
التحقق من أن النظام المستهدف يمكن تطبيق الإختراق عليه (بمعنى التحقق من ان الجهاز مصاب فعليا بثغرة)
اختيار واعداد البايلود Payload (وهو برمجية ضارة يرسلها المخترق للضحية لفتح قناة تواصل وتشبه في طريقة عملها فيروس حصان طروادة أو فيروس الدودة )
اختيار طريقة لتشفير البايلود Encoding Payload لتجاوز أنظمة كشف التسللات و كتلك تخطي الأنتي فايروس Bypass AV.
المرحلة الاخيرة تنفيذ الهجمة أو تشغيل الثغرة Run Exploit.
هذه الخطوات المتبعة لتنفيذ أي هجوم عبر أي بايلود وعمل الميتاسبلوت هنا هو تسهيل عمل المخترقين. كما نذكر أن الميتاسبلوت يعمل على أغلب أنظمة Unix (تشمل لينكس والماك) والوندوز وهو متوفر بعدة لغات.
مكونات مشروع الميتاسبلويت الاساسية
يجب عليك كمبتدئ معرفة كل شيء عن هذا السلاح الفتاك حتى تمضي قدما في طريق الاحتراف
مشروع الميتاسبلويت مبني على عدة مكونات أساسية, وكل بنية تمثل مجال بحد ذاته, تابع معي رعاك الله سنذكر هذه اللبنات الأساسية باللغة الانجليزية مع ترجمة بسيطة باللغة العربية حتى تستوعب, لكن يجب عليك التعامل بالمصطلحات الانجليزية اذا أردت الاحتراف فخذ الصنعة من صانعها.
Architecture - هندسة أو مخطط المشروع
Components - المكونات
Libraries - المكتبات
Interfaces - واجهات
Modules - وحدات
Utilities - خدمات
Plugins - الإضافات
1- MSF Architecture
هي أشبه بدولة داخلها مؤسسات
2- المكونات MSF Components
مشروع الميتاسبلويت يعتمد على بعض المكونات مثل:
MSF Libraries
Interfaces
Modules
Mixins
Plugins
3- المكتبات أو MSF Libraries
تتكون هذه المكتبات من ثلاث أقسام: Rex, Core, Base
1- REX وهي اختصار لجملة Ruby Extension Library
ملحوظة: (طبعا الروبي Ruby هي لغة برمجة وقد تم برمجة بها مشروع الميتاسبلويت, و Extension Library تعني مكاتب اضافية أو امتداد)
تحتوي REX على السوكيت والبروتوكولات والتحويلات النصية وغيرها من التشفيرات وبروتوكولات الشبكة.
Sockets, protocols, text transformations و SMB و SSL و HTTP و XOR و BASE64
2- النواة (Msf::Core (Core library:
يمكن تقسيمها لقسمين:
الأول الثغرات أوالاستغلالات Exploits
وهي مختلفة مثل ثغرات موجودة بقواعد البيانات والبروتوكولاتوغيرها Oracle ,MSSQL ,FTP, HTTP, SMB
القسم الثاني هو الاضافات Auxiliary
مثل برامج الفحص Scanners وبرامج التخمين BruteForce وبرامج التبليغ Reports ...
وبرامج حجب الخدمة DOS و Fuzzers و Wireless
3- (Msf::Base (Base library :
يوفر إجراءات وفئات classes التي يمكنك استخدامها للعمل بسهولة مع النواة Core
4- واجهات المشروع Metasploit Interfaces
يتكون مشروع الميتاسبلويت من أربعة واجهات أساسية مختلفة, يمكننا عن طريق هذه الواجهات بالتعامل مع الميتاسبلويت بسهولة ومرونة
MSFconsole تمثل الواجهة الاساسية ونتعامل معها بالاوامر مثل شاشة الدوس
MSFcli تشبه التعامل مع السكريبتات
MSFweb نتعامل معها عن طريق فتح متصفح الانترنت
MSFgui و Armitage من أسهل وأروع الواجهات المبرمجة بلغة الجافا القوية , وهي تأتي مع نظام الكالي لينكس أنصح المبتدئين باستعمالها و بشدة. ولكن هذا لا يعني اهمال msfconsole
5- الوحدات MSF Modules
تتكون الوحدات من عدة برامج وسكريبتات مهمة مثل:
Exploit
Auxiliary
Post-Exploitation
Payload
NOP generator
Payload encoder
لا يمكن شرحها الان فهي أشياء متقدمة حاليا.
6- الخدمات والادوات MSF Utilities
هناك ثلاث أدوات رئيسية مهمة مثل :
MSFpayload
ويمكنك تشبيهه بالسيرفر أو التروجان الذي نرسله للضحية بق
صد اختراقه وله عدة اشكال مثلا الشيل كود shellcode والذي يمكن ارساله عن طريق الاي بي بشكل ثنائي Binary.
MSFencode
هي أداة تشفير الفيروسات والشيل كود, والتخلص من Bad Chars.
Msfvenom
هي اداة جديدة تجمع بين الاداة الاولى والثانية, لأنه تم التخلي عنهما وتغييرها بالاداة القوية MSFVENOM
7- الاضافات MSF Plugins
هي ميزة تقدمها لك الميتاسبلويت للتحكم بها أوتوماتيكيا عن طريق دوال تسمى API بحيث يمكنك برمجة أداة تقوم بتطبيق ثغرة او فحص وغيرها ... وذلك بتطويع الميتاسبلويت وجعلها بخدمتها.
ولا تقتصر على هذا فقط, بل يمكنك اضافة أوامر جديدة للمشروع بواسطة برمجة اضافة خاصة بك Plugin.
أوامر الميتاسبلويت MSF Commands
أولا لفتح مشروع الميتاسبلويت في الكالي لينكس نكتب في الطرفية الامر الأتي
msfconsole
الامر help
لمعرفة جميع أوامر الميتاسبلويت أكتب
help
help
الأمر Clear
نحتاجه أحيانا لمسح الكتابة من على الشاشة وهو نفس الأمر يعمل على اللينكس
clear
الأمر show exploits
لاستعراض جميع الثغرات الموجودة بالميتاسبلويت نستعمل الامر
show exploits
تظهر لنا أسماء الثغرات Exploit-Name وتاريخ اكتشافها ومدى خطورتها RANK و الوصف
ومسارها على جهازك مثال
windows/browser/adobe_flash_avm2
كما تلاحظ موجودة داخل مجلد ويندوز داخل مجلد المتصفح وتحمل اسم فلاش , بمعنى ان هذه الثغرة يمكنها اختراق الويندوز عن طريق ثغرة الفلاش بلاير الخاص بالمتصفج.
الأمر use
نحتاج هذا الامر لاستعمال ثغرة معينة. , بحيث نكتب الامر use ونكتب أمامه اسم ومسار الثغرة
use exploit_Name
مثال:
نستعمل هذه الثغرة الشهيرة ms08_067_netapi التي تسببت باختراق الويندوز اكس بي
use exploit/windows/smb/ms08_067_netapi
الامر show options
هذا الامر يظهر لنا خيارات الثغرة أو الاستغلال, بحيث يعطينا متطلبات الثغرة مثل الايبي الخاص بالضحية والبورت وغيرها, فهي تختلف من ثغرة لاخرى.
الأمر SET
نحتاج هذا الأمر لتعيين قيمة, فمثلا عندما تحتاج الثغرة لبورت أو هوست نقوم بادخاله بالامرSET
فمثلا هذا الامر لادخال الهوست على سبيل المثال عنوان اي بي الضحية هو 192.168.1.15
set RHOST 192.168.1.15
وهذا الامر لادخال البورت على سبيل المثال بورت 445
set RPORT 445
ملاحظة:
كما تلاحظ RHOST أو RPORT الحرف R يعني ريموت Remote بمعنى اننا نستهدف هوست أو بورت بعيد(victime),
وعندما تجد LHOST أو LPORT فالحرف L هنا يعني Locale بمعنى المحلي, فبعض الثغرات تحتاج هوست أو لبورت جهازك لتستقبل عليه البيانات من الضحية.
الأمر exploit و run
في الحقيقة هذان الأمران لهما نفس الدور وهو تشغيل أو تنفيذ الثغرة, فبعدما قمنا بادخال متطلبات الثغرة بقي علينا تنفيذها للاختراق
الأمر exploit و run
تطبيق عملي طريقة اختراق وبندوز Windows XP
سنحاول اختراق ويندوز اكس بي مصاب بالثغرة الشهيرة ms08_067_netapi وهذه الثغرة موجودة في خدمة SMB طبعا هذه الخدمة خاصة بمشاركة الملفات.
الخطوات الاساسية للاختراق بالميتاسبلويت بشكل عام هي
اختيار الثغرة بالامر use
نقوم باظهار متطلبات الثغرة بالامر show options ,
نقوم بادخال متطلبات الثغرة (مثل ip, Port. url. وغيره من المتطلبات على حسب الثغرة) عن طريق الامر SET
الخطوة الاخيرة استعمال بايلود , يتم ارساله للضحية بعد ان يتم الاختراق, حتى نتحكم في النظام المستهدف.
المرحلة الأخيرة تنفيذ الاختراق Exploit
تم الاختراق
هذه عملية أخرى لمحاولة اختراق ويندوز اكسبي ولكن الثغرة كانت مرقعة
في هذا المثال قمت باستعمال الامر check وهو يقوم بالتحقق من الجهاز المستهدف هل يمكن تطبيق الثغرة عليه ام لا
لاحظ الصورة
check
لم يتم الاختراق فالنظام غير مصاب, أو تم تحديث النظام
وهذا مثال أخير لاختراق نظام أخر عن طريق ثغرة في المتصفح
لاحظ الكتابة الأخيرة session opened وتعني تم فتح جلسة بين الهكر والضحية, والوسيط بيننا هو البايلود shell
تم الاختراق
أوامر اضافية
الامر load و unload
يستعمل الامران في لتشغيل اضافة أو ايقافها مثال
load
unload
على سبيل المثال سنقوم باضافة الاضافة Nexpose
مثال أخر استعمال اضافة Nessus
الامر search
يستعمل في البحث عن موديل معين موجود في الميتاسبلويت
هو أم للبحث المتقدم بحيث يمكنك البحث عن موديلات عن طريق الاصناف مثال:
search platform:windows
في الامر السابق بحثنا عن موديل داخل موديلات المتعلقة بالويندوز
الامر info
نستعمل هذا الامر لمعرفة المزيد من المعلومات عن الثغرة,
info
الامر show targets
نحتاجه لمعرفة ماهي الانظمة التي تستهدفها الثغرة أو القابلة للاختراق بها, هل هي نظام ويندوز او لينكس وان كان نظام ويندوز.
هل هو ويندوز 7 او 10 او فيستا وغيره. كما تلاحظون بالصورة
الامر sessions
ويعني الجلسات وهو مصطلح يطلق عل
ى عملية ما بعد الاختراق, فعند اختراق هدف تسمى جلسة, ولمعرفة قائمة الاجهزة التي قمت باختراقها تستعمل الامر
sessions -l
وستظهر لك قائمة list لنفرض أنك تريد التحكم في نظام معين قمت باختراقه وتريد تطبيق اوامر عليه, ستقوم باختياره على حسب رقمه التعريفي id في القائمة
كمثال
sessions -i 1
الحرف i بمعنى interect
sessions
الأمر show payloads
يقوم باستعراض جميع البايلودات وهي أنواع كثيرة, وأشهر واحد هو Meterpreter
أنواع البايلود كثثيرة ومختلفة نذكر منها
(Inline (Non Staged
Staged
Meterpreter
PassiveX
NoNX
Ord
IPv6
Reflective DLL injection
الأمر show encoders
يستعرض لنا جميع خوارزميات وطرق التشفير الموجودة بالميتاسبلويت وهي كثيرة