[C++] - تخطي بسيط ل Sandboxie و ال Debuggers عبر جلب ال ParentProcess

تم تحميل الصفحة في 0,2431808 ثانية
[C++] - تخطي بسيط ل Sandboxie و ال Debuggers عبر جلب ال ParentProcess
إنضم
27 مايو 2014
المشاركات
297
الإعجابات
391
النقاط
63
العمر
19
الإقامة
Marruecos
السَلام عَليكم ,

اليَوم قمت بكتابة فنكشن بسيط لمعرفة هل التطبيق قيد التنقيح أو تحت نوع من أنواع ال Debuggers ,

حيث يقوم بجلب ال ParentProcess و مقارنته مع ال explorer.exe , لان هذا الأخير هو المسؤول عن تشغيل التطبيقات و النوافذ أن كان تعريفي صحيحا ,

عند عدم نجاح المقارنة يعني أن التطبيق تحت التنقيح ,

كما أن دالة IsDebuggerPresent كما رأيت لا تشتغل مع مثل هاته المنقحات .

فيديو بَسيط ->


الفنكشن ->

C++:
int DSIB(){
    char Sys[MAX_PATH];
    GetSystemDirectoryA(Sys, MAX_PATH);
    string Syss = Sys;
    Syss.replace(11, 8, "explorer.exe");
    char Path[MAX_PATH];
    PROCESSENTRY32 PO;
    PO.dwSize = sizeof(PO);
    HANDLE Cr = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, NULL);
    if (Process32First(Cr,&PO)){
        do{
            if (PO.th32ProcessID == GetCurrentProcessId()){
                HANDLE OP = OpenProcess(PROCESS_ALL_ACCESS,FALSE,PO.th32ParentProcessID);
                GetModuleFileNameEx(OP, NULL, Path, MAX_PATH);
                if (strcmp(Syss.c_str(),Path) == 0){
                    return 0;
                }
                else
                {
                    return 1;
                }
            }
        } while (Process32Next(Cr, &PO));
    }
    return 2;
}
يجب تضمين المكتبات :
#include <windows.h>
و
#include <TlHelp32.h>


أنتهى .
 

Linus Torvalds

موقوف لمخالفة الشروط
rankrank
إنضم
23 سبتمبر 2015
المشاركات
194
الإعجابات
146
النقاط
43
الفكرة بسيطه ومش عمليه غالبا ما بيخرج خطاء
ERROR_ACCESS_DENIED
على نواه64
عملية مقارنه ل id explorer
مع اخذ snpshot
صلاحيات PROCESS_ALL_ACCESS
لل explorer اي خطاء بيحصل حتدمر النظام

غالبا المتبدائين همه الي بياخدو PROCESS_ALL_ACCESS
لازم تحدد انت عايز ايه بالظبط
 
الإعجابات: 4w1il
إنضم
27 يناير 2018
المشاركات
583
الإعجابات
532
النقاط
93
الفكرة صحيحة بس انت فاهمها غلط وموجودة في كتاب من موقع ويكيليكس
الفكرة انك بتجيب id بروسس البرنامج نفسه مش explorer.exe وبعدها بتبحث في جميع العمليات حتي تجد نفس id البروسس ودا معناه انك وصلت لبروسس البرنامج
فبتجيب اسم البروسس ولو هو نفس اسم البرنامج يبقي البرنامج ليس تحت التنقيح
ملحوظة : يلزم عدم تغيير اسم البرنامج وإلا ستفشل الطريقة ولن يشتغل البرنامج يعني لو تم تغيير اسم الكلاينت فلن يعمل
وشيء أخير : أظن الطريقة صارت مكشوفة وكذلك معظم الطرق الموجودة في الكتاب بس انت مطبقها غلط وكاتب الكود غلط فطبعا الدالة مش هترجع بصفر أبدا
 
الإعجابات: 4w1il

Linus Torvalds

موقوف لمخالفة الشروط
rankrank
إنضم
23 سبتمبر 2015
المشاركات
194
الإعجابات
146
النقاط
43
الفكرة صحيحة بس انت فاهمها غلط وموجودة في كتاب من موقع ويكيليكس
الفكرة انك بتجيب id بروسس البرنامج نفسه مش explorer.exe وبعدها بتبحث في جميع العمليات حتي تجد نفس id البروسس ودا معناه انك وصلت لبروسس البرنامج
فبتجيب اسم البروسس ولو هو نفس اسم البرنامج يبقي البرنامج ليس تحت التنقيح
ملحوظة : يلزم عدم تغيير اسم البرنامج وإلا ستفشل الطريقة ولن يشتغل البرنامج يعني لو تم تغيير اسم الكلاينت فلن يعمل
وشيء أخير : أظن الطريقة صارت مكشوفة وكذلك معظم الطرق الموجودة في الكتاب بس انت مطبقها غلط وكاتب الكود غلط فطبعا الدالة مش هترجع بصفر أبدا
في الحقيقه اغلب فنكشنات ال C++ في المنتدى مأخوذة من كتب وقنوات اجنبيه
زي ZEROMEMORY
وبينقلوها بشكل او بتاني بشكل عربي
بس بمعنى مختلف
 
إنضم
27 يناير 2018
المشاركات
583
الإعجابات
532
النقاط
93
في الحقيقه اغلب فنكشنات ال C++ في المنتدى مأخوذة من كتب وقنوات اجنبيه
زي ZEROMEMORY
وبينقلوها بشكل او بتاني بشكل عربي
بس بمعنى مختلف
مش مشكلة خالص لأن الإنسان مش هيعلم نفسه لوحده الحاجات دي ، انا بردو بفضل الله لقيت معظم الأكواد اللي معايا من مواقع إنجليزية و خاصة stackoverflow أما قناة zeromemory فزي الزفت في مشاركة الأكواد لا تضع ملف السورس أسفل الفيديو
 

h!dd3nSniper

.:: UCC¤Hack¤Division ::.
rankrankrankrank
إنضم
14 مارس 2013
المشاركات
1,248
الإعجابات
1,463
النقاط
113
الإقامة
¤I.S¤
يعطيك العافية على الطريقة
لتخطي الساندبوكس هناك اكثر من طريقة اولها استخدام دالة IsDebuggerPresent (يمكن تخطيها بالمنقح)
وبخصوص الكود: يمكن اخذ بروسس id اكسبلورر من خلال دالة getshellwindow()

وعمل مقارنة مع البروسس id الاب لبرنامجك (NtQueryInformationProcess) واذا الid غير متساوي يعني برنامجك في بيئة الساندبوكس او التحليل.
(
هناك طريقة اكثر فعالية على مااظن مثل عمل تشيك اذا برنامجك يعمل كjob object او لا QueryInformationJobObject)
هذا و
الله أعلم
 
الإعجابات: 4w1il
إنضم
27 مايو 2014
المشاركات
297
الإعجابات
391
النقاط
63
العمر
19
الإقامة
Marruecos
الفكرة صحيحة بس انت فاهمها غلط وموجودة في كتاب من موقع ويكيليكس
الفكرة انك بتجيب id بروسس البرنامج نفسه مش explorer.exe وبعدها بتبحث في جميع العمليات حتي تجد نفس id البروسس ودا معناه انك وصلت لبروسس البرنامج
فبتجيب اسم البروسس ولو هو نفس اسم البرنامج يبقي البرنامج ليس تحت التنقيح
ملحوظة : يلزم عدم تغيير اسم البرنامج وإلا ستفشل الطريقة ولن يشتغل البرنامج يعني لو تم تغيير اسم الكلاينت فلن يعمل
وشيء أخير : أظن الطريقة صارت مكشوفة وكذلك معظم الطرق الموجودة في الكتاب بس انت مطبقها غلط وكاتب الكود غلط فطبعا الدالة مش هترجع بصفر أبدا
ههههه , لا أعلم حقيقة ما الكتاب الذي تتكلم عنه و ما علاقة ويكيليكس بهذا الأمر ,
الكود كنت كتبته منذ شهر تقريبا , حيث كنت أبحث حول طرق تخطي ال Debuggers , فلاحظت أنه عند التنقيح يقوم المنقح بتشغيل العملية على شكل Child Process ,
فقمت بأستغلال الأمر ,
لا كتاب و لا هم يحزنون
 
إنضم
27 مايو 2014
المشاركات
297
الإعجابات
391
النقاط
63
العمر
19
الإقامة
Marruecos
الفكرة بسيطه ومش عمليه غالبا ما بيخرج خطاء
ERROR_ACCESS_DENIED
على نواه64
عملية مقارنه ل id explorer
مع اخذ snpshot
صلاحيات PROCESS_ALL_ACCESS
لل explorer اي خطاء بيحصل حتدمر النظام

غالبا المتبدائين همه الي بياخدو PROCESS_ALL_ACCESS
لازم تحدد انت عايز ايه بالظبط
واضح في العنوان أن الطريقة بسيطة .
ههههه تدمر النظام في أي نقطة بالضبط , المقارنة تتثم على ال Parent Process وليس ال explorer بالضبط ,
حول ال PROCESS_ALL_ACCESS هي أمر لم أنتبه له و لم أعره أهتماما صراحة , فالغرض الوصول للبروسيس لا غير , ربما أهتم لهذا الأمر في أكوادي القادمة ,
فالأحترافية مطلوبة طَبعا .
كما أنني صراحة مبتدأ في الحقيقة
 
إنضم
27 مايو 2014
المشاركات
297
الإعجابات
391
النقاط
63
العمر
19
الإقامة
Marruecos
في الحقيقه اغلب فنكشنات ال C++ في المنتدى مأخوذة من كتب وقنوات اجنبيه
زي ZEROMEMORY
وبينقلوها بشكل او بتاني بشكل عربي
بس بمعنى مختلف
عندما يكون للغرض طريقة واحدة لتنفيذه فستستغل تلك الطريقة , فلا حل أخر لك , ليس بالضرورة أن يكون منقولا بالحرف , ربما سيكون لك طريقة خاصة كتابة الكود و لكن الطريقة واحدة .
طبعا أثناء بحثي و تعمقي في أمور ال Malwares وجدت قناة Zeromemory , ما لاحظته حقيقة أنه أيضا يقوم بنقل الأكواد , غير أنه نقل 100 % من الأكواد هه ,
لا يقوم بشرح طريقة عمل الكود بالأساس و لا شرح الأمور الأساسية في الكود .
 
إنضم
27 مايو 2014
المشاركات
297
الإعجابات
391
النقاط
63
العمر
19
الإقامة
Marruecos
يعطيك العافية على الطريقة
لتخطي الساندبوكس هناك اكثر من طريقة اولها استخدام دالة IsDebuggerPresent (يمكن تخطيها بالمنقح)
وبخصوص الكود: يمكن اخذ بروسس id اكسبلورر من خلال دالة getshellwindow()

وعمل مقارنة مع البروسس id الاب لبرنامجك (NtQueryInformationProcess) واذا الid غير متساوي يعني برنامجك في بيئة الساندبوكس او التحليل.
(
هناك طريقة اكثر فعالية على مااظن مثل عمل تشيك اذا برنامجك يعمل كjob object او لا QueryInformationJobObject)
هذا و
الله أعلم
ههه دائما ما تضيف الله أعلم في الأخير , مع العلم أنك ما شاء الله تعلم ههه ,
جرب دالة IsDebuggerPresent على الساندبوكسي و لم يشتغل الأمر ,
سأرى هذه الدوال أيضا , سأبحث في الأمر أكثر .
 
إنضم
27 يناير 2018
المشاركات
583
الإعجابات
532
النقاط
93
ههههه , لا أعلم حقيقة ما الكتاب الذي تتكلم عنه و ما علاقة ويكيليكس بهذا الأمر ,
الكود كنت كتبته منذ شهر تقريبا , حيث كنت أبحث حول طرق تخطي ال Debuggers , فلاحظت أنه عند التنقيح يقوم المنقح بتشغيل العملية على شكل Child Process ,
فقمت بأستغلال الأمر ,
لا كتاب و لا هم يحزنون
لم أقل أنك أخذته من الكتاب وإلا لكان الكود صحيحا ولكن قصدي أنه موجود في الكتاب الذي قرأته لذلك عرفت أن هذا الكود خطأ لأنك يجب أن لا تقارن بعملية explorer.exe ولكن بنفس عملية البرنامج والفكرة أنه الانتي فيرس يشغل الملف باسم آخر في sandbox فلو انت تعرف اسم الملف بتاعك بتقارن الاسم باسم بروسس الملف لو الاتنين زي بعض يبقي البرنامج شغال عادي ولو فيه اختلاف يبقى البرنامج تحت الساندبوكس
الطريقة كانت بتجيب 0/55 في فايروس توتال بس مش عارف شغالة لسة ولا لا
لأن كان فيه كام طريقة بسيطة بردو فيه بس صارت مكشوفة
 
إنضم
27 مايو 2014
المشاركات
297
الإعجابات
391
النقاط
63
العمر
19
الإقامة
Marruecos
لم أقل أنك أخذته من الكتاب وإلا لكان الكود صحيحا ولكن قصدي أنه موجود في الكتاب الذي قرأته لذلك عرفت أن هذا الكود خطأ لأنك يجب أن لا تقارن بعملية explorer.exe ولكن بنفس عملية البرنامج والفكرة أنه الانتي فيرس يشغل الملف باسم آخر في sandbox فلو انت تعرف اسم الملف بتاعك بتقارن الاسم باسم بروسس الملف لو الاتنين زي بعض يبقي البرنامج شغال عادي ولو فيه اختلاف يبقى البرنامج تحت الساندبوكس
الطريقة كانت بتجيب 0/55 في فايروس توتال بس مش عارف شغالة لسة ولا لا
لأن كان فيه كام طريقة بسيطة بردو فيه بس صارت مكشوفة
الكتاب الذي قرأته أنت ? هل يمكن مشاركتنا هذا الكتاب الذي قرأته أنت , أتمنى أن أستفيد كما أستفدت أنت مما قرأته أنت
 
إنضم
14 مارس 2011
المشاركات
3,396
الإعجابات
4,929
النقاط
113
الإقامة
Palestine
الفكرة بسيطه ومش عمليه غالبا ما بيخرج خطاء
ERROR_ACCESS_DENIED
على نواه64
عملية مقارنه ل id explorer
مع اخذ snpshot
صلاحيات PROCESS_ALL_ACCESS
لل explorer اي خطاء بيحصل حتدمر النظام

غالبا المتبدائين همه الي بياخدو PROCESS_ALL_ACCESS
لازم تحدد انت عايز ايه بالظبط

Change registry path to explorer.exe



return %0%

How to replace Explorer.exe in Windows? (2015 Update)
 

الأعضاء النشطين حاليآ الذين يشاهدون هذا الموضوع (1 عضو و 0 ضيف)

خيارات الاستايل

نوع الخط
مودك
اخفاء السايدر بار OFF
توسيط المنتدى OFF
فصل الأقسام OFF
الأقسام الفرعية OFF
عرض المشاركات
حجم الخط
معلومات العضو OFF
إخفاء التوقيع OFF

إرجاع خيارات الإستايل