:: vBspiders Professional Network ::

:: vBspiders Professional Network :: (http://www.vbspiders.com/vb/index.php)
-   قـسـم إخـتـراق الـمـواقـع والـسـيرفـرات (http://www.vbspiders.com/vb/f38.html)
-   -   طريقك للاحتراف{ [#] الشرح المفصل لثغرات buffer overflow ||arabic||+ video [#] } (http://www.vbspiders.com/vb/t48477.html)

bleu moon 05-30-2011 10:59 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

:diablo:

تعالى نبدأ

: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_SHAR E_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 بالكامل
و المباشرة بالعمل به مره اخرى.




ملاحضة : انا نقلتوا من قسم الاختراق المتقدم نظــــرا لكونه خاصا ... وانا بدي الجميع يستفيد


:love:



ViRuS Qalaa 05-30-2011 11:33 PM

مااشاء الله أبداع حبيبي بارك الله فيك
وشكرا على الشرح الرائع

bleu moon 05-30-2011 11:50 PM

اقتباس:

المشاركة الأصلية كتبت بواسطة ViRuS Qalaa (المشاركة 332065)
مااشاء الله أبداع حبيبي بارك الله فيك
وشكرا على الشرح الرائع

مشكوور على التسجيع الحلوووو :love::sarcastic:

Gx1Sniper 06-02-2011 07:04 PM

مبـــــــــدع يالغلا

k4$p3r-MA 06-11-2011 02:29 PM

thx mr.noor was good

JetLi 06-11-2011 03:50 PM

اختلف معك في شيء بسيط
 
هناك حيلة اكتشفتها وانا احاول في ثغرة البفر اوفر فلو للملف الاول وهي تنجح في حالة Direct Overwrite EIP حتى وان كان العنوان ينتهي بي صفر 00 رمز نهاية السلسلة ،
الحيلة واهديها للعناكب بسيطة جدا حدد البفر يكون مضبوط لا نقصان ولا زيادة يعني البفر يحدث بعد 32 حرف مثلا ،
الان ماذا نفعل نختار اخر 4 حروف وهي التي ستكتب مباشرة على عنوان العودة
AAAA مثلا نريد ان يقفز إلى العنوان 0022C3D9 اوكي ننقص السلسلة التي سندخلها بايت واحد فقط يعني ستكون بالشكل التالي:
AAAAAA....................AAAA D9C322 عدد 31 حرف ستقولي طيب كيف اكتب ال 00 ،
اقول لك طالما ان البفر يكتب فوق عنوان الرجوع غالبا سيكون العنوان 004XXXXX اي ان ال00 موجودة في الذاكرة فلا نحتاج كتابتها ، بعد ذلك ننفذ الكود ، ولكن عيب هذه الطريقة انك لا ستطيع جعل الشيل كود بعد عنوان الرجوع اي
AAAAA[RET IP]NOPS AAAA
ولكن الشكل التالي للثغرة مناسب
NOPS[SHELL CODE][RET IP]

bleu moon 06-11-2011 03:58 PM

اقتباس:

المشاركة الأصلية كتبت بواسطة Morpheus (المشاركة 337983)
هناك حيلة اكتشفتها وانا احاول في ثغرة البفر اوفر فلو للملف الاول وهي تنجح في حالة Direct Overwrite EIP حتى وان كان العنوان ينتهي بي صفر 00 رمز نهاية السلسلة ،
الحيلة واهديها للعناكب بسيطة جدا حدد البفر يكون مضبوط لا نقصان ولا زيادة يعني البفر يحدث بعد 32 حرف مثلا ،
الان ماذا نفعل نختار اخر 4 حروف وهي التي ستكتب مباشرة على عنوان العودة
AAAA مثلا نريد ان يقفز إلى العنوان 0022C3D9 اوكي ننقص السلسلة التي سندخلها بايت واحد فقط يعني ستكون بالشكل التالي:
AAAAAA....................AAAA D9C322 عدد 31 حرف ستقولي طيب كيف اكتب ال 00 ،
اقول لك طالما ان البفر يكتب فوق عنوان الرجوع غالبا سيكون العنوان 004XXXXX اي ان ال00 موجودة في الذاكرة فلا نحتاج كتابتها ، بعد ذلك ننفذ الكود ، ولكن عيب هذه الطريقة انك لا ستطيع جعل الشيل كود بعد عنوان الرجوع اي
AAAAA[RET IP]NOPS AAAA
ولكن الشكل التالي للثغرة مناسب
NOPS[SHELL CODE][RET IP]

لوول تسلم حبيبي واشتقنا لمواضيعك وانتضر موضوع تنزل فيه بشكل مبسط هذه الحيله

abdellatef 06-13-2011 03:41 AM

شكرا جزيلا انا ايضا تعلنت هده النعرات وتوقفت في التحكم بالميتا بعد ارسال البايلود للضحية ليفتحه بالبرنامج المكتشف فيه التغرة

majjati 06-13-2011 06:36 AM

THNXX MEN


الساعة الآن 05:21 AM


[ vBspiders.Com Network ]


SEO by vBSEO 3.6.0