:: vBspiders Professional Network ::

:: vBspiders Professional Network :: (http://www.vbspiders.com/vb/index.php)
-   Buffer OverFlow (http://www.vbspiders.com/vb/f316.html)
-   -   [#] الشرح المفصل لثغرات buffer overflow ||arabic||+ video [#] (http://www.vbspiders.com/vb/t48471.html)

bleu moon 05-30-2011 09:27 PM

[#] الشرح المفصل لثغرات buffer overflow ||arabic||+ video [#]
 
السلام عليكم ورحمة الله تعالى وبركاته

اليوم معي لكم شرح كتابي + فيديوا لتغرة البافر، من الالف الى الياء، ان شاء الله تفهموا

تغرت البافر هي من اقوى الثغرات على الصعيد العالمي ... اذ ان المحترفين يستغلونها للحصول على الروت ...، وكما انها تعتمد على البنية الميكانيكية للحاسوب + البرمجية ...


1-ماهي البفر اوفر فلو :

هي عبارة عن خطا برمجي يسمح بتحكم استثنائي في ذاكرة المعالج processor .
تحصل عندما نقوم بادخال معطيات تفوق سعة ال buffer وهو الجزء من الذاكرة المسؤول عن تخزين المدخلات كاسم المستعمل و كلمة السر مثلا ..وهكذا .مثلا اذا كان المبرمج حدد طول اسم المستعمل ب 50 حرف بذاكرة الBuffer و التي هي كافية من الناحية النظرية ..

ناتي نحن وندخل في اسم المستخدم 55 حرف مثلا ! ماذا يحدث يتوقف البرنامج عن العمل يعني بيعمل كراش crach
و نكون بذلك قد كتبنا فوق مكان آخر من الذاكرة . مسببين عطل بالبرنامج
لكن نستطيع كتابة اوامر مختلفة لتنفيذ غاياتنا كارسال رسالة أو أخذ صفة root ... مستغلين بذلك هذه الثغرة.

2-الدراسة المعمقة:
- صناعة برنامجنا الخاص الذي نتعمد الخطأ في برمجته :
لاحظ هذا البرنامج و الذي هو بلغة ال C


اه ! تقول لي مابعرف السي !
عندي لك الحل، تعالى حمل هذا الكتاب، فيه شرح احترافي للسي
وكمان هو من رفي

http://www.mediafire.com/?gfjabb1zseenz2q

الفيديو صوت وصورة، وهذا الشرح الكتابي تم تطبيقه فيه
:drunk:


http://www.youtube.com/watch?v=gwPYiZk8Vqw


تعالى نبدأ

:ange:


نقوم بصنع هذا البرنامج في المحرر ...


كود PHP:

# include <stdio.h>
main()
{
char nom [5] ;
printf ("What's your name ? : ") ;
scanf ("%s",nom) ;
printf ("Hi %s ", nom) ;
return
0 ;
}

يقوم هذا البرنامج بسؤال المستعمل عن اسمه .. فيكتب المستعمل اسمه ..
فيرسل له البرنامج رسالة ترحيب باسمه .
- برنامج ابسط مما يكون -

قم بحفظه باسم vbspiders.c و حمل برنامج Digital Mars C/C++ Compilers
ستجده بهذا الموقع www.digitalmars.com .. قم بتنصيبه وفك ضغطه و ليكن في مجلد ال c تجده باسم dm

طريقة العمل بالبرنامج
ضع vbspiders.c في هذا المكان
c:\dm\bin


ثم اذهب الى start ثم run ثم اكتب في المربع cmd .. فيفتح معك الدوس .
اكتب هذه الاوامر وراء بعض :
cd\
cd dm\bin
sc vbspiders.c vbspiders

تستطيع تطبيق البرنامج بكتابت vbspiders في محث اوامر الدوس
فتجد رسالة من برنامجنا تقول What's your name
اكتب اسمك مثلا nor15din
فيرسل كما قلنا البرنامج رسالة ترحيب
"hi nor15din"

الكود المهم بالبرنامج هو

كود PHP:
char nom [5] ;





حيث قمنا بتحديد طول اسم المستخدم .
ماذا لو وضعنا اسم مستخدم طويل ماذا يحدث ؟ سنضع مثلا AAAAAAAAAAAAAAAAAAAA
تخرج لنا رسالة خطأ تفيد ان برنامجنا قد اتلف أو حدثت له عملية crash

الان انتهينا من صناعة برنامجنا و الذي به مشكلة سنحاول استغلالها .

2- مراقبت عمل البرنامج :
نحتاج لبرنامج ال OllyDbg v1.10 ..ستجدونه بالبحث في google.
نفتح برنامحنا الصغير بواسطة olly من file .. ثم
open ابحث عن مكان البرنامج الصغير و افتحه .

يجب علينا اولا تشغيل التطبيق و وضع الاسم الكبير مثل : AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAA
و هي 60 A ( يجب احترام هذه القيمة فلو وضعت عدد كبير جدا لن تنجح في استغلال الثغرة )
وذلك من اجل انتاج خطأ في البرنامج

يجب علينا الآن أن نبحث عن الاشياء المهمه ..و هي عنوان العوده و مكان ال60 Aالتي ادخلناها

هنا ناتي الى المرحلة المهمة .وهي وضع كود الاستغلال بعد عنوان العودة

انا الآن لن اكمل العمل ببرنامج vbspiders.exe كون استغلاله أمر مستحيل .
تقولون لماذا ؟

الأمر لن ينتبه له الا من تابع معنا من البداية.. وكان له قدر :whip: من الذكاء .
فأولا وقبل وضع الكود الاستغلال يجب الاشارة الى مكان بدايته في اول خانه

لكن كيف نضع العنوان هل نكتب بعد ال 16 A العنوان كالتالي :
AAAAAAAAAAAAAAAA0012FF90
مثلما فعلنا مع الجمله السابقه اذكركم بها .
AAAAAAAAAAAAAAAAput-your-code-here
بالتاكيد لا و الف لا ... كيف اذا ؟
العنوان هو عبارة عن رموز ascii وكل رمز يقابله رمز اخر و للاسف الرمز 00 لم استطع ايجاد رمز يقابله
فهو يشير الى نهاية السلسلة الحرفية .

اي لو اردت استغلال برنامج vbspiders.exe لن استطيع لاني لن اتمكن من وضع عنوان بدء تنفيد كود الاستغلال
0012FF90 كون ال00 تقابلها نهاية السلسة الحرفية التي ندخلها عند الاستغلال .

أعلم ان الامر معقد نوعا ما لكن ان لم تفهم شيئا اقرء و أعد القراءه مره اخرى فان لم تستطع ضع في ردك النقطة التي لم تفهمها و ساعيد شرحها .

و سيكون التطبيق الان على برنامج آخر و هو برنامج myprog للتحميل من هنا

و هو برنامج بسيط قمت بتعريبه و بعض التعديلات فيه اذ يقوم بنسخ ما يوجد بالملف info و الذي هو ملف نصي .

وهذا هو الجزء المهم من كوده



كود PHP:
BOOL Rfile(HWND mhWnd)


{


HANDLE hfile=(HANDLE)-1;


DWORD nbt=0;


// لاحظ حجم مصفوفة الحروف


TCHAR buf[10];


hfile=CreateFile ("info.txt",GENERIC_READ,FILE_SHARE_READ|FILE_SHARE_WRITE,


(LPSECURITY_ATTRIBUTES )NULL,OPEN_EXISTING,0,NULL);


if(hfile==(HANDLE)-1)





مثلا للعمل بالبرنامج اكتب vbspiders بالملف info و قم بحفظ التغيرات .
ثم افتح برنامج myprog و اضغط على read file لتنسخ لك ما كتبته سايقا بالملف info

* أظن أنكم مباشرة من كود البرنامج ادركتم اننا لو نضع في الملف info نص اكبر من 10 احرف سيحدث خطأ *
نفتح مباشرة البرنامج بال olly و ذلك لدراسة عنوان العوده كاتبيين في ملف ال info
32 A
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

ما علينا الان الا التطبيق ..و يجب عليك البحث عن برنامج ال hex workshop و ستعرف لماذا.

و لتبديل عنوان بداية الكود نقوم بفتح ملف الـ info بالhex workshop و نعدل به كالتالي :
" تجدون التعديل جاهزا بملف info آخر مضغوط . "

= طريقة التعديل

= الى ان نصل الى النتيجة النهائيه

ثم قم بحفظ التعديلات على ملف info و قم بتشغيل برنامج myprog بالolly و اضغط على read file
ولاحظ في ال olly ما يلي :

كما تخرج لنا رساله :surprised:

لقد نجحنا بعملنا .:na:




و في الاخير نصيحة صغيرة للتعامل ببرنامج ال Olly في كل مرة تشغلون برنامج "مثل vbspiders"ويحدث له
تخريب تستطيعون مباشرة اعادة العمل به من debug ثم restart و ليس عليكم اقفال ال olly بالكامل
و المباشرة بالعمل به مره اخرى.




abdellatef 06-27-2011 10:19 PM

شكرا يا نور الدين على الموضوع كان معي فديو لاستغلال تلك التغرة vlc vr 1.18
للاسف كان معي بالليكنس تشكر على الموجهودات

k4$p3r-MA 06-30-2011 03:08 PM

مشكور اخ نور شرح مفصل

JetLi 06-30-2011 08:38 PM

لولا المشغوليات مع المواقع ههه سنعود للبفر اوفر فلو قريبا بإذن الله

Hit-Man 07-11-2011 05:49 PM

تسلم مان على الشرح

المفترس 07-26-2011 09:04 PM

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

gretful 08-31-2011 07:02 AM

رد: [#] الشرح المفصل لثغرات buffer overflow ||arabic||+ video [#]
 
thinx


the silencer 09-04-2011 06:55 PM

رد: [#] الشرح المفصل لثغرات buffer overflow ||arabic||+ video [#]
 
coooooooooooooooooooooooollll

Devil-702 07-03-2012 02:16 PM

رد: [#] الشرح المفصل لثغرات buffer overflow ||arabic||+ video [#]
 
الله يعطيك العافيه

dosroxxx 06-25-2014 02:17 PM

رد: [#] الشرح المفصل لثغرات buffer overflow ||arabic||+ video [#]
 
الله يعطيك العافية ما قصرت

محمد / أبو ناصر 05-01-2015 04:04 PM

رد: [#] الشرح المفصل لثغرات buffer overflow ||arabic||+ video [#]
 
................................

kam17 08-13-2015 06:13 PM

رد: [#] الشرح المفصل لثغرات buffer overflow ||arabic||+ video [#]
 
mersiiiiiiiiiiiiiiiiiiiiiiii


الساعة الآن 09:52 PM


[ vBspiders.Com Network ]


SEO by vBSEO 3.6.0