ترجمة وإستغلال الثغرات المكتوبة بــ لغة ( C++ ; C )



بسم الله الرحمن الرحيم
عنوان الدورة 



ترجمة وإستغلال الثغرات المكتوبة بــ لغة ( C++ ; C ) 
خطوة بخطوة على طريق الاحتراف
اللهم لا سهل إلا ماجعلته سهلا وأنت تجعل الحزن إذا شئت سهلا
ترجمة وإستغلال الثغرات المكتوبة بــ لغة ( C++ ; C )
في البداية هذا النوع من الاسكربتات يبرمج به اقوى واخطر انواع الثغرات التي تقوم ع سحب صلاحيات المدير

الخاص بالسيرفر ومنها يمكن السيطرة ع السيرفر ككل ولأن هناك فرق في الترجمة بين ثغرات الخاصة بسيرفرات Linux

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

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



1- كيف يتم التفرقة بين الثغرات المكتوبة بــ لغة c من حيث ما اذا كانت تخص سيرفرات Windows او Linux ؟

يتم التفرقة بينهم عن طريق المكتبات الخاصة باللغة حيث ان :

المكتبات التي تميز اسكربتات C لنظام Windows هيا :

#include <wchar.h>

#include <windows.h>

اما المكتبات التي تميز اسكربتات C لنظام Linux هيا :

#include <sys/types.h>

#include <sys/stat.h>

#include <sys/utsname.h>

الأن نبدأ بترجمة واستغلال الاسكربتات المكتوبة بــ لغة ++C لثغرات انظمة Windows

1- متطلبات تشغيل اللغة لأتمام عملية الاستغلال ؟

bloodshed dev-c++ هذه اللغة تحتاج اثناء القيام بترجمتها الى برنامج يقوم بعملية الترجمة وهو برنامج

: يتوفر على الموقع الرسمي


نتابع طريقة التحميل والتنصيب ...

2- كيفية التعرف على ثغرات المكتوبة بــ لغة ++C ؟

يتضح ذالك عند رؤية مصدر الأسكربت المكتوب بتلك اللغة فنجد بداية المصدر يحتوي على الأتي :

#include <wchar.h>

#include <windows.h>



3- كيفية الحصول على ثغرات مكتوبة بــ لغة ++C ؟

يتم عن طريق البحث داخل احد مواقع السكيورتي :

نذهب الى موقع http://www.exploit-db.com/

نذهب الى search على هذا الرابط : http://www.exploit-db.com/search

نضع في خيار Free Text Search: الكلمة المراد البحث عنها وهيا

search ثم نضغط #include <windows.h>

ظهرت معنا العديد من الثغرات نختار احد الثغرات وسوف يتم تطبيق الشرح على الثغرة المتوافرة في الرابط الاتي :


شرح تفصيلي للثغرة :

اسم البرنامج المصاب: OpenDrive <= 1.3.141 



===[ Exploit ]=== طريقة استغلال الثغرة

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

الخاص باللغة .cpp اذا كانت الثغرة ++c تابع .. ثم نقوم بنقلة الى مسار C:\Dev-Cpp\bin

استغلال الثغرة يعتمد ع تنصيب البرنامج ع السيرفر الهدف الذي يعمل بنظام Windows اذا منصب البرنامج راح يتم

سحب اليوزر نيم والباسورد الخاصين بالاسكربت اما اذا لم يكن البرنامج منصب لن يتم سحب الباس واليوزر الخاصين بالعضوية المراد اخترق النظام الخاص بها عن طريق الثغرة في هذا البرنامج .

نقوم الان بعملية الترجمة تابع يتم تشغيل البرنامج ومن ثما اختيار Execute ومن ثما Compile

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

نذهب الى run>cmd من ثما الدخول ع مسار الاسكربت cd C:\Dev-Cpp\bin

من ثما نطبق الاستغلال .. عن طريق كتابة اسم الاسكربت الناتج عن الترجمة مباشرة وننتظر النتيجة

تم الاستغلال بس طبعا ماظهرت النتيجة والسبب اني لم اقم بتنصيب البرنامج المصاب ع جهازي نشوف صورة

من استغلال مكتشف الثغرة بعد تطبيق الثغرة واستخراج اليوزر نيم والباسورد ..

تمت الترجمة والاستغلال لهذا النوع من الاسكربتات والثغرات .

الأن نبدأ بترجمة واستغلال الاسكربتات المكتوبة بــ لغة C لثغرات انظمة Linux

1- متطلبات تشغيل اللغة لأتمام عملية الاستغلال ؟

Cygwin هذه اللغة تحتاج اثناء القيام بترجمتها الى برنامج يقوم بعملية الترجمة وهو برنامج

: يتوفر على الموقع الرسمي


نتابع طريقة التحميل والتنصيب تابع بدقة شديدة خطوة خطوة ...

2- كيفية التعرف على ثغرات المكتوبة بــ لغة C ؟

يتضح ذالك عند رؤية مصدر الأسكربت المكتوب بتلك اللغة فنجد بداية المصدر يحتوي على الأتي :

#include <sys/types.h>

#include <sys/stat.h>

#include <sys/utsname.h>



3- كيفية الحصول على ثغرات مكتوبة بــ لغة C ؟

يتم عن طريق البحث داخل احد مواقع السكيورتي :

نذهب الى موقع http://www.exploit-db.com/

نذهب الى search على هذا الرابط : http://www.exploit-db.com/search

نضع في خيار Free Text Search: الكلمة المراد البحث عنها وهيا

search ثم نضغط #include <sys/types.h>

ظهرت معنا العديد من الثغرات نختار احد الثغرات وسوف يتم تطبيق الشرح على الثغرة المتوافرة في الرابط الاتي :


شرح تفصيلي للثغرة :

اسم التوزيعة المصابه : Linux Kernel < 2.6.37-rc2 



===[ Exploit ]=== طريقة استغلال الثغرة

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

الخاص باللغة .c اذا كانت الثغرة c تابع .. ثم نقوم بنقلة الى مسار C:\cygwin\home\Administrator



استغلال الثغرة يعتمد ع تنصيب التوزيعة ع السيرفر الهدف الذي يعمل بنظام Linux اذا منصب التوزيعة راح يتم

سحب صلاحيات الادمن وتنصيبك مدير ع السيرفر بكافة صلاحيات الروت الي هوا الجذر طبعا هذا الي بنسمية الترويت

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

نقوم الان بعملية الترجمة تابع يتم تشغيل البرنامج Cygwin Bash Shell

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

او لا اذا لم نجد امر ترجمة نقوم بالترجمة العادية عن طريق الامر :

gcc local.c -o local

تعالو نطبق الامر في سطر الاوامر ونشوف الناتج .. تم انتاج ملف مترجم تنفيذ الاستغلال هيكون عن طريق الامر

./15774

نطبق الاستغلال .. عن طريق كتابة اسم الاسكربت الناتج عن الترجمة وننتظر النتيجة

تم الاستغلال بس طبعا ماظهرت النتيجة والسبب اني لم اقم بتنصيب البرنامج المصاب الي هوا sys_futimesat

تمت الترجمة والاستغلال لهذا النوع من الاسكربتات والثغرات .



تنوية اخير عن كيفية التفرقة ما اذا كان الاسكربت مترجم ام لا ؟

يتضح ما اذا كان الاسكربت مترجم ام لا عن طريق فتح الاسكربت فأذا وجدناه مكتوب بشكل مسنق ع هيئة اكواد وبدون طلاسم

معناها الاسكربت غير مترجم ويجب ترجمته اما اذا وجدناه عبارة عن طلاسم بهذا الشكل اذا الاسكربت مترجم ويتطلب الاستغلال

المباشر .

0 comments:

Post a Comment