موضوع: شرح كامل لثغرة DLL Hijacking (اكتشاف,كتابة,استغلال الثغرة ) وطرق الحماية منها الإثنين أكتوبر 18, 2010 2:27 pm
موضوعنا اليوم هو شرح ثغرات DLL Hijacking ان شاء الله اليوم سنتحدث عن اكتشاف وكتابة واستغلال الثغرة وطرق الحماية منها وهذا الموضوع من جهد وبحث شامل لكي ازوده بالمراجع الاساسية للثغرة ومزود ايضاً بالفيديو وبالتطبيق عربي وانجلش وبأذن الله الموضوع يبقى خفيف ومبسط للمبتدئين وللمحترفين بردو
بسم الله نبدأ الموضوع اولاً : فكرة الثغرة عندما تقوم بتحميل مكتبة إلى برنامجك , تقوم بإستدعاء دالة LoadLibraryA وتمرير اسم المكتبة لها بالشكل التالي:
كود:
الكود:
LoadLibraryA("user32")
سيقوم النظام بالبحث عن مكتبة user32 في نفس مجلد البرنامج أو ما يسمى بالـ Current Directory, إذا لم يجد , سيقوم بالإنتقال إلى المجلدات الموجودة في متغير PATH ويبحث عن المكتبة , ويقوم بتحميلها للذاكرة أو يقوم بإرجال قيمة 0 للدالة دلالة على عدم تحميل المكتبة ,
من هنا يمكننا فهم الفكرة , إذ أن وضع مكتبة خاصة بنا في نفس مجلد العمل للبرنامج , أو في مكان يتم فحصه قبل الSystem32 يؤدي إلى تحميل المكتبة الخاصة بنا بدلاَ من المكتبة الأصلية... بالمصري كدا ثغرات الفيض ..... ومن الناحية البرمجة لازم تفرق بين exe و dll ملفات ال dll اختصار ل dynamic link library انت لو بتكتب برنامج باي لغة وعندك اكواد بتحتاجها في برمجتك على طول ومش عاوز كل مرة تقعد تعيد كتابتها بتحطها فى ملف dll وتنده عليها فى البرنامج بمعني اصح ملفات تكتب فيها اكوادك <<<<<<<< الطريقة السهله زي .net framework
الاختصار : ملفات exe الملف التنفيذي للبرنامج يستخدم الاكود اللى فى ملفات dll الموجودة معاه ولذلك عادي انك تكتشف فيها ثغرات بفر او ايا كان لانها اكواد فى الاخر ============================== اما اختراق الاجهزة : يخترق جهازك عن طريق ملفات dll وتتنفذ على الويندوز فقط واغلب الدودات محقونة فى ملفات dll وناس كتيرة بتخترق بحقن ملف دي ال ال ده بالنسبة في اختراق الاجهزة ------------------------------ سؤال : كيف يتم استغلال الثغرة لناخد مثالا عن الاستغلال برنامج Microsoft PowerPoint 2010 [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]
int evil() { WinExec("calc", 0); exit(0); return 0; }
الكود اعلاه يمثل كود المكتبة الضارة
ولنرى الان سيناريو لعملية الاختراق (فيمكننا بالطبع في الكود اعلاه ان نقوم باي شيئ نريد) فالمخترق سوف يقوم بانشاء ملف ppt مثلا ثم يقوم بارفاق معه المكتبة المصابة وبمجرد ان يقوم البرنامج بطلب تحميل مكتبة pptimpconv.dll والتي تحميلها غير امن مما يجعلنا نخدع البرنامج ودلك بتحميل مكتبتنا الموجودة اعلاه لنلاحظ ظهور الالة الحاسبة على اي كما دكرت في الاول هدا مثال فقط وهدا جزء بسيط من خطر الثغرة خصوصا ان هده الاخيرة اصبحت الان من السهل الكشف عنها بواسطة اداة DLLHijackAuditKit.zip مثلا
وفي صدد كتابتي لهدا الموضوع ظهرت ثغرة في Firefox <= 3.6.8 في مكتبة dwmapi.dll مما ينبهنا الى حقيقة اساسية وهو ان عصر DLL Hijacking قد بدا. ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
طبعاً الموضوع للمبتدئين والمحترفين ونعطي كل واحد حقه سوف يتم كتابة نبذة سريعة عن مشروع ميتا سبلويت لتسهيل استخدام ثغرات DLL Hijacking بدأ مشروع ثغرات Metasploit في عام 2003 تقريبا و منذ ذلك الوقت حتى يومنا هذا شهد المشروع تطوّرات عديدة و ملحوظة خصوصا بعد اطلاق الاصدار 3.0 في بداية سنة 2008, يحتوي مشروع Metasploit على عدد كبير من ثغرات الأنظمة و البرامج الجاهزة للاستغلال بالاضافة للعديد من الأدوات التي تساعدنا على اكتشاف ثغرات Buffer overflow و فحص الأنظمة و الشبكات أضف الى ذلك احتوائه على قاعدة بيانات Shellcode و Opcode تساعد مكتشفي الثغرات على برمجة و كتابة استغلالاتهم بكل سهولة. و في كل اصدار جديد يضاف الى المشروع ثغرات و أدوات جديدة تجعل من ميتاسبلويت واحدا من أقوى و أسهل مشاريع الثغرات الموجودة في وقتنا هذا… والان وقت مشاهدة فيديو بسيط لاستغلال احد الثغرات في الميتا سبلويت او حمل الشرح على جهازك [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] ---------------------------------------------------------
بالنسبة بقى لطرق اكتشاف الثغرة وكتابتها واستغلالها واللي عايز يحمل الشرح على جهازة الرابط اهو [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] --------------------------------------------------- والان جاء لبعض الفيديوهات التطبيقية على الثغرة اول فيديو يشرح استغلال الثغرة بواسطة ميتاسبوليت لانشاء ملف الdll في مشروع بوربوينت
او تحميل الشرح [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] ------------------------------------------ ثاني فيديو كيفية استخدام ثغرة Dll مع Social Engineer Toolkit
لتحميل الفيديو [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] ---------------------------------------------------------------
كما رأينا فإن المشكلة العامة هي بعدم توفير المسار الكامل للنظام لكي يبحث عن المكتبة فيه , بهذا نستطيع القول أننا لم إستدعينا المكاتب بالشكل التالي مثلأَ:
كود:
الكود:
LoadLibraryA("c:\windows\system32\user32.dll")
جب أن تتأكد من الملفات المرفقة مع البرامج والملفات , أيضاَ مايكروسوفت وفرت ترقيع يسمح لك بمنع تحميل المكتبات من مجلدات العمل وإستعمال مجلدات النظام فقط. رابط الترقيع [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]