بتـــــاريخ : 2/26/2011 5:24:48 AM
الفــــــــئة
  • الحـــــــــــاسب
  • التعليقات المشاهدات التقييمات
    0 1618 0


    ثغرات Credentials Information Leak مثال تطبيقي على برنامج المحادثة ooVoo

    الناقل : elmasry | العمر :42 | الكاتب الأصلى : DATA_SNIPER | المصدر : www.arabteam2000-forum.com

    كلمات مفتاحية  :

    بسم الله الرحمن الرحيم والصلاة و السلام على رسول الله الكريم اما بعد.
    مقدمة:
    اليوم وبعد غياب سنتحدث عن نوع بسيط وسهل من انواع الثغرات التي تعتبر خطيرة من جهة وسهلة الإكتشاف من جهة،هذا النوع من الثغرات ينتشر كثيرا في برامج المحادثة و الإتصال التي تحتوي على معلومات مهمة مثل:" Password,Username,ContactList " و غيرها.
    هذا النوع من الثغرات له اسماء عديدة لكنه يندرج تحت مسمى:

    Information Leak Vunerability or Credentials Information Leak

    ربما ستجد هذا النوع من الثغرات بمسيميات أخرى مثل:
    Password Memory Dump
    Password Memory Retrival Vulnerability

    ربما لن اجد تشبيه احسن لهذا النوع من اثغرات بتقنيةSerial phishing ( و لمن لا يعرف هذه التقنية،يتم فيها إصطياد السيريال للبرنامج بعد عملية الحساب و المقارنة ويتم ذلك مباشرة من الذاكرة ) فهي مماثلة لها حيث انهما يشتركان في:
    1-استخراج البيانات من الذاكرة.
    2-يستعملان نفس الدوال وفي بعض الأحيان هنالك دالة لا يتم إستعمالها في هذا النوع من الثغرات "CreateProccess"
    وبعض الأمور الأخرى التي ربما تخفى.
    يتم إستثمار هذا النوع من الثغرات بطريقتين:
    1-عن طريق ثغرات Format String وهذا ليس محور حديثنا في هذا الدرس ربما مرات أخرى سنتحدث عنه.
    2-عن طريق القرائة المباشرة لمحتويات البرنامج في الذاكرة وتتم هذه عن طريق برنامج معين "Trojan...." موجود في نفس الجاهز المركب عليه البرنامج او عن طريق شل كود تم تنفيذه في ذاكرة برنامج آخر ،بمعنى انه اذا كان هنالك ثغرة أخرى"Buffer Overflow مثلا" في برنامج آخر تمكنك من تنفيذ كود لخطأ ما وعن طريق ذلك الكود تقوم بقرائة ذاكرة البرنامج المصاب بثغرة"Password Dump".
    يعتبر هذا النوع من الثغرات خطير ومستوى الخطورة يقدر بالبرنامج المصاب به.
    مثلا لنفرض انه يوجد برنامج وضع صلاحيات على المستخدم في النظام او حتى في البرنامج نفسه اي انك مثلا تعمل في شركة وبرنامج الشركة به قضية الصلاحيات اي ن كل باسورد لديه صلاحية معينة ومن هذا المنطلق واذا كان البرنامج مصاب بهذا النوع من الثغرات فمن الممكن ان تأخذ الصلاحيات عن طريق عمل Dump لباسورد الذي يكون به صلاحية اعلى او حتى عمل Credentials Information Leak للمعلومات المهمة في البرنامج اذا كانت PlainText
    او حتى عن طريق هذه الثغرات من الممكن ان تأخذ باسورد الأدمن لسيرفر او لقاعدة بيانات وهنا تتجلى خطورتها وهي فعالة في النوع الذي سبق وان تكلمنا عليه (
    Password Disclosure) في حالة ان الباسورد مشفر على مستوى القرص الصلب
    التحليل و الإستثمار:
    لنكن واقعين ولنتحدث عن مثال تطبيقي واقعي،مثالنا سيكون برنامج ooVoo الشهير في المحادثة و الذي يدعم VOIP يقوم هذا البرنامج بعملية غير آمنية، يقوم البرنامج بأخذ إسم المستخدم من الTextBox ويبحث عن ال Profile الخاص به ويحمله ومن ثم يأخذ كلمة السر الموجودة في TextBox الثاني ثم يضع الباسورد و إسم المستخدم المدخلين ويضعهما في مكانين في الذاكرة:
    1-يضعها متجاورين مثل ما توضح الصورة.
    ارفق صورة : monthly_11_2008/post-88726-1225603925.png
    2-ويضعهما في قالب XML ولربما سيتم إرسالهم بعد قليل او عند الإتصال للتحق لأنه يضع تلك البيانات قبل التحقق(وهذا ما عرفته بعد ان قطعت الإتصال ونقحت البرنامج).
    ارفق صورة : monthly_11_2008/post-88726-1225603952.png
    يتم تحديد الباسوردات او المعلومات المهمة لعمل Dump لها بـ3 طرق:
    1-اذا وجدت الباسوردات او المعلومات في مكان محدد من الذاكرة فإنه من الإمكان اخذ الباسوردات منها مباشرة.
    مثلا لنفرض ان البرنامج يقوم بتحميل او اخذ المدخلات من المستخدم وتحميلها او وضعها في متغير معين ويبدأ بالمقرانة او الإرسال المهم العمليات التي يحتاجها،و اذا علم مكان المتغير او مكان وضع الباسوردات في الذاكرة فإنه من السهل إستخراجها.
    2-ان تكون الباسوردات معلمة بشيئ آخر مثلا يكون إسم المستخدم و الباسورد موجودين بقالب XML او مسبوق بكلمات دلالية مثلا jabberuid او jabberpwd او PWD شاهد الصورة .
    ارفق صورة : monthly_11_2008/post-88726-1225603977.png
    المهم قم بعمل Dump لكل قالب XML.
    3-وهذه الطريق احتمال نجاحها ضئيل ومتعبة وتكون في حالة ان الباسورد يكون مكانه عشوائي،وهي ان تقوم بإستخراج جميع ال Strings وبدأ التجريب في حالتنا وبما ان البرنامج oovoo يقوم بحفض إسم المستخدم في المسار
    C:/Documents and Settings/إسم الجهاز/Application Data/ooVoo Details/Users

    فإنه سيسهل الأمر قليلا.
    لكشف الباسوردات نستعمل برنامجين،WinHex وذلك عن طريق القائمة Tools واختر منها Open RAM واختر العملية المراد قرئة محتويات ذاكرتها ولا تنسى ان تختار Entier Memory.
    او عن طريق pmdump من ntSecurity toolbox الذي يقوم بعمل Dump لكل محتوى الذاكرة الخاصة بالبرنامج.
    او برنامج Process Detective للأخ GamingMaster.
    لذلك يجب ان يأخذ اي مطور او مبرمج هذا النوع من الثغرات على محمل الجد وان يقوم بتشفير الباسورد حتى وهو موجود على مستى الذاكرة
    وللعلم ان برنامج Skype مصاب بهذه الصغرة ولك ان تتخيل كم من البرامج ستكون مصابة بهذا النوع من الثغرات.
    إلى هنا نأتي إلى نهاية الدرس ارجوا ان تكونوا قد استفدتم ما كان من خطأ او سهو فمني ومن الشيطان وماكان من توفيق فمنه وحده لا شريك له.
    والسلام عليكم.
    برنامج pmdump
    Skype_IM_Client_Password_Disclosure_Vulnerability
    Miranda_IM_Client_Password_Disclosure_Vulnerability
    PidginIM_Client_Password_Disclosure_Vulnerability

    كلمات مفتاحية  :

    تعليقات الزوار ()