إعـــــــلان

تقليص
لا يوجد إعلان حتى الآن.

فكرة عن Buffer OverFlow

تقليص
X
 
  • تصفية - فلترة
  • الوقت
  • عرض
إلغاء تحديد الكل
مشاركات جديدة

  • [مقال] فكرة عن Buffer OverFlow

    بسم الله الرحمن الرحيم

    ان هدا الموضوع بادن الله هو لازالة ولو جزء بسيط من الغموض حول Buffer OverFlow وهدا تلبية لرسالة الصديق العزيز
    majed_19845 فعلى بركة الله.

    اينما دهبت اجد الحديث الدائم عن Buffer Overflow حيث انه تم اعطائه اكثر من حقه لا اقول انه ليس خطيرا ولكن اقول ليس الشيئ الوحيد الموجود كما اود الاشارة الى ان عمل دورة عن Buffer overflow هو امر في نظري قد لا يكون مجديا لهدا سوف احاول ان اشرح لمادا وفي الحقيقة Buffer Overflow يتطلب فهما عميقا بكيفية بناء الحاسوب خصوصا الجزء المتعلق بالداكرة ولكن على اي سوف احاول تغطية هدا الامر بشكل سريع وسهل.


    لفهم ما هو Buffer Overflow سوف نحتاج لفهم ماهو البرنامج وكيف يعمل


    البرامج كثيرة وعديدة وكلها تقوم بعمل معين وكلها مكتوبة بلغة تختلف عن الاخرى ولكنها في الحقيقة لغة واحدة في المضمون يعني الحاسوب لا يفهم لا C ولا VB6 هو يفهم فقط دائرة مفتوحة ودائرة مغلوقة (اقصد الدوائر الكهربائية) والتي رمز لحالة مفتوح ب 1 ومغلق ب 0 وفي الاول كانت البرمجة فقط ب 0 و 1 ولكنه تم اعتماد Assembly كترميز لتسهيل الفهم وتسريع البرمجة وتطورت الامور وظهرت لغات عدة ولكنها كلها لها جدور 0 و 1 ولن تستغني عنها الامر اشبه بشخص يتحدث باللغة العربية وشخص اخر بالانجليزية فلو اراد هدا الشخص مخاطبة الشخص الدي يتحدث باللغة العربية فهو يحتاج الى مترجم وهدا تماما ما تقوم به لغات البرمجة.


    الان كيف يعمل البرنامج


    ان اي برنامج فور تشغيله يتم تحويله الى لغة Assembly (ظاهريا) وهده اللغة هي عبارة عن اوامر هده الاوامر تتعامل مع الداكرة بشكل مستمر لتنفيد العمليات الحسابية والمنطقية


    الان ما هي الداكرة

    الداكرة هي عبارة عن مساحة لتخزين المعلومات او الاوامر وهي كبيرة بشكل رهيب جدا

    stack & heap

    هما ايضا داكرة يمكن ان نصفهما بالداكرة الخاصة لانها مختصان في عمل محدد فقط
    Stack & heap

    من المقولات التي اعجبتني جدا هي مقولة احد الباحثين الامنين الدي قال "اعتقد انه من قام بكتابة Stack هم اشخاص شريرون" وسوف تعرفون لمادا


    فالبرنامج في الحقيقة هو عبارة عن عدة دوال هده الدوال تحتاج الى بارامترات ولكن المشكلة ليست هنا فالبرنامج عندما يعمل يبدا بالاستعانة بالدوال التي دمجت فيه وبحكم ان هده الدوال تكون مفرقة ان صح التعبير فان البرنامج عند عمله يظطر الى استدعائها ولكن لكي يستدعيها فهو بحاجة الى ان يتدكر من اين قام باستدعائها ودلك حتى يستطيع مواصلة عمله عندما تنتهي الدالة من عملها تخيلوا ان هناك ثلاثة اشخاص يسيرون في الطريق فوجدو حجرة في الطريق فارادو ازالتها عن الطريق فقام احدهم بالدهاب للبحث عن عصى فهو سيحتاج الى شيئين طول العصى والمكان الدي سيلتقي باصدقائه مجددا


    وهكدا يعمل البرنامج فهو ادا اراد ان يستدعي دالة فهو يقوم بشيئين تزويدها بالبارامتر وتسجيل مكان عودة الدالة وهو ما يعرف ب Return point فالبارمترات تسجل في Stack و return point لها مسجل خاص بها وسبب اعجابي بهده المقولة "اعتقد انه من قام بكتابة Stack هم اشخاص شريرون" هو ان Stack يليه مسجل العودة يعني ادا حدث فيض في Stack فان البيانات الزائدة تمرر الى سجل العودة وهدا هو Buffer Overflow فالمخترقون يستفيدون من فيض البارمترات الممررة لدالة للكتابة على عنونا العودة والدي بالطبع لن يعود الى المنطقة الاصلية بل يرسلونه الى عنوان ShellCode وهو ببساطة برنامج صغير جدا ولكن بالطبع ليست كل دالة دالة مصابة والدالة المصابة هي دالة لا تتحقق من حجم البيانات التي تستقبلها واشهر دالة مصابة هي دالة strcpy في C لدرجة ان المترجمات الحديثة عندما تقوم بمحاولة ترجمة ملف C فيه دالة strcpy تظهر لك رسالة تحدير من خطورة هده الدالة وفي الحقيقة لهادا قلت في الاول دورة في Buffer قد لا تكون شيئ منطقيا الا ادا تم تناولها من اطراف كثيرة وهدا امر صعب نوعا ما ويتطلب وقتا كثيرا ناهيك عن صعوبة دلك فكيف تجد المنطقة المصابة بالخلل في برنامج يتكون من مئات الدوال وحتى Buffer درجات فهناك من يستهدف برامج صغيرة عن طريق طرق تقليدية واخرون ينهجون طرق معقدة لهاد فان ثغرة في برنامج Adobe مثلا تكون تهديدا خطيرا جدا جدا ولكن من يهتم ادا اصيب برنامج تشغيل موسيقا غير معروف وعن طريق ملف غير مستعمل لهادا فدورة لل Buffer قد لا تكون بالفكرة الممتازة ولكن الاساسيات مهمة لهادا حاولت دكر بعضها واي سؤال فبادن الله نجيب عنه واسف جدا.


  • #2
    السلام عليكم ورحمةالله
    تشكر على مجهودك الطيب اخي في كتابة المقال
    اقترح الروابط التالية لاثراء الموضوع

    http://en.wikipedia.org/wiki/Computer_program
    http://www.linuxac.org/forum/showthread.php?13153

    إعلم أخي أنه لا يوجد سر للنجاح. إنما النجاح نتيجة التنظيم، العمل الجاد و التعلم من الأخطاء.


    تعليق


    • #3
      لكن الاختراق بهذه الطريقة من اصعب الطرق بل من الصعاب و المتقدمين جدا , حيث يتعين عليك معرفة الهندسة البرمجية التامة للبرمجيات و المعالجات حتى و إن كانت هناك بعض أدوات exploits المساعدة فتبقى لذوي الخبرة .
      وإنْ تَـجِـدْ عَــيـبًـا فـسُـدَّ الخـلَـلا *** فَجَلَّ مَنْ لا عيب فيه وَعَلا
      من ذا الذي سوى الرسول كامل *** أو جمعت لغيره الفضائــل
      موضوعك رائع لكن بسبب لهجتك لم أفهمه | الحرية ليس لها ثمن

      تعليق


      • #4
        المشاركة الأصلية بواسطة سفـيان مشاهدة المشاركة
        لكن الاختراق بهذه الطريقة من اصعب الطرق بل من الصعاب و المتقدمين جدا , حيث يتعين عليك معرفة الهندسة البرمجية التامة للبرمجيات و المعالجات حتى و إن كانت هناك بعض أدوات exploits المساعدة فتبقى لذوي الخبرة .

        اولا شكرا لك اخي على المرور الكريم وبالفعل فالامر يعد صعبا نوعا ما ولكن اغلب الثغرات يتم اكتشافها عن طريق الصدفة بالطبع لا اقصد الثغرات العادية ولكن الثغرات الحقيقة ان صح التعبير وتجدر الاشارة الى ان هناك برامج متخصصة او ما يعرف ب Fuzzers والتي تقوم بهدا العمل يعني محاولة اعطاء مدخلات لا يمكن توقعها من طرف البرنامج وهناك نوع ثاني يعتمد على السورس كود حيث تمرر للاداة السورس كود وتبدا هي بمحاولة كشف ثغرة في البرنامج وفي الحقيقة معظم ثغرات البرامج لا تزال غير مكتشفة ودلك نظرا لصعوبة دلك واما بخصوص الاختراق بواسطة هده الطريقة فهو من ناحية صعب ولكن من ناحية اخرى يبدو سهل لان هناك قليل من يقومون بالتحديثات لبرامجهم مما يدفع الكثير الى استغلال هده النقطة ولعل خير دليل اداة Metasploit التي تجمع العديد من ثغرات البرامج وشكرا لك على المرور الكريم

        تعليق


        • #5
          والله ما قصرت ..

          طيب لو سويت تحديد لعدد البايتات المدخله خلاص انسى شي اسمه Buf ولا فيه طرق تخطي .؟

          تعليق


          • #6
            المشاركة الأصلية بواسطة زحوفي مشاهدة المشاركة
            والله ما قصرت ..

            طيب لو سويت تحديد لعدد البايتات المدخله خلاص انسى شي اسمه Buf ولا فيه طرق تخطي .؟
            اولا شكرا لك على المرور الكريم ثانيا الامر ليس بالسهولة التي تعتقد يعني لو كان المبرمجون قادرين على التحقق من برمجياتهم لما حصل هناك Buffer فنحن نتحدث عن مئات الدوال والجمل المنطقية ناهيك عن ان هده الاخيرة تصيب في بعض الاحيان مكتبات Dll (بالنسبة ل Windows) وبالنسبة للحماية هناك SEH او ما يعرف ب Structured Exception Handling الدي تم اقتراحه من طرف اخصاء الحماية والدي عمله هو التدخل عند حدوث اي خطا ومحاولة الرجوع الى منطقة امنة في البرنامج للاسف هو ايضا تم اكتشاف عيب فيه واصبح من الممكن تجاوزه في معظم الاحيان لدلك افضل وسيلة هي مراجعة السورس كود جيدا لانها تبقى افضل طريقة ومحاولة اعطاء مدخلات لا يتوقع ان يتم اعطائها للبرنامج لان هدا هو اساس Buffer Overflow
            التعديل الأخير تم بواسطة mohamed clay; الساعة 15-07-2010, 02:08 PM.

            تعليق


            • #7
              السلام عليكم

              الأخ العزيز mohamed clay ::

              في البداية أحب أن أشكرك لجهودك وكلامك الأكثر من طيب

              بالنسبة لعمل دورة تخص البافر أوفر فلو أنا معاك الموضوع ليس بالسهولة التي يتوقعها أي أحد وذلك لأسباب عديدة

              أنا تعلمت كيف يحدث البافر وكل ما يخص الذاكرة إلى كتابة الاستغلال وحاليا بتعلم تجاوز الحمايات seh و dep و aslr من دورات أجنبية ولكنني أحتاج إلى الوقت الكثيير

              لكنني أردت أن تعمل دورة وذلك لقلة المصادر العربية التي تخص الموضوع وإن شاء الله بس أتعمق في دراسة البافر أوفر فلو سأكتب بعض المواضيع أو عمل دورة تخص الموضوع

              وأيضا أحب أن أشكرك لتلبية طلبي
              وشكرا على لطفك وزهدك

              تحياتي
              أخوك : ماجد
              اللهم إنا نعوذ بك من قلب لا يخشع وعلم لا ينفع

              تعليق


              • #8
                هذي دورة للبفر عملتها من فتره

                الدورة على نظام ويندوز XP

                ان شاء الله انها أدت المطلوب

                مﻻحظة الدورة صوت وصورة

                اضغط هنا

                تعليق


                • #9
                  مشكووور اخي
                  هذي دورة للبفر عملتها من فتره

                  الدورة على نظام ويندوز XP

                  ان شاء الله انها أدت المطلوب

                  مﻻحظة الدورة صوت وصورة

                  اضغط هنا
                  رائعة الشرؤوح بدنا تضيف شروح اخرى مفصلة
                  abdellatef2009(at)live(dot)fr

                  تعليق

                  يعمل...
                  X