تطوير البرامج الخبيثة Malware Dev

سلسلة الدوال الغير نمطية : الجزء الثالث

في هذا الدرس سنقوم بشرح دالة CertEnumSystemStore  وهي دالة تستخدم لجلب اماكن تخزين الشهادات المتاحة على نظام التشغيل.

الشرح البرمجي :-

ملاحظة : سيتم ترك روابط للتعرف على الدوال بشكل مفصل لأن شرحها هو خارج اطار هذا الدرس.

سنقوم بتشغيل الشل كود باستخدام دالة CertEnumSystemStore وهي دالة تستخدم بالاصل لجلب اماكن تخزين الشهادات المتاحة على نظام التشغيل.

. الاستغلال سيكون كما في الدالة السابقة عن طريق استبدال الcallback function بالشيل كود الخاص بنا.

في البداية نقوم بتخزين الشيل كود داخل مصفوفة من نوع unsigned char ومن ثم نقوم بحجز مساحة من الذاكرة بحجم الشيل كود ونخزنها داخل متغير من نوع LPVOID 

بعدها ننقل الشيل كود الى مساحة الذاكرة التي قمنا بحجزها عن طريق استخدام دالة RtlMoveMemory

والان نقوم باستدعاء دالة CertEnumSystemStore  والتي بدورها تحتوي على عدد من 

المتغيرات . المتغير الأول لتحديد مكان التخزين الذي نريد ان نجلب منه الشهادات المتاحة,  نقوم بتحديده عن طريق استخدام احد الflags التالية #️⃣

CERT_SYSTEM_STORE_CURRENT_USER

CERT_SYSTEM_STORE_CURRENT_SERVICE

CERT_SYSTEM_STORE_LOCAL_MACHINE

CERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY

CERT_SYSTEM_STORE_CURRENT_USER_GROUP_POLICY

CERT_SYSTEM_STORE_SERVICES

CERT_SYSTEM_STORE_USERS

CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE

في شرحنا سنقوم باستخدام الخيار الاول CERT_SYSTEM_STORE_CURRENT_USER



المتغير الثاني والثالث نعطيهم قيمة 0 او NULL  , والمتغير الأخير هو عبارة عن دالة من نوع 

callback  وهي عبارة عن دالة تكون كمدخل في دالة أخرى , يتم استدعائها فور استدعاء الدالة الأولى 

ونعطيها  قيمة المساحة التي قمنا بحجزها والتي تحتوي على الشيل كود ,لذلك عند 

البدأ بعملية الاستدعاء لدالة , سيتم فوراً استدعاء هذه المساحة ومن ثم تشغيل الشيل كود

نقوم الأن بعمل كومبايل ونشغل البرنامج #️⃣

والى هنا نصل لنهاية هذا الدرس , نلتقي في الجزء القادم .

المصادر #️⃣

https://learn.microsoft.com/en-us/windows/win32/api/wincrypt/nf-wincrypt-certenumsystemstore
https://learn.microsoft.com/en-us/windows/win32/devnotes/rtlmovememory
https://learn.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-virtualalloc

Mohammed Hassan

باحث في تحليل وتطوير البرامج الخبيثة و الأمن السيبراني ، حاصل على درجة البكالوريوس في هندسة البرمجيات ، ولدي معرفة وخبرة كبيرة في لغات البرمجة مثل #x86 \ x64 IA ، C / C ++ / C ، والتعامل مع Debuggers مثل OllyDbg ، x64dbg ، هدفي هو نقل المعرفة والمهارة إليك بأسهل الطرق.

مقالات ذات صلة

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

زر الذهاب إلى الأعلى