Code Injection By Installing Hook
Code Injection By Installing Hook

في هذا المقال سنقوم بشرح احد تقنيات المالوير في حقن الشيل كود عن طريق تنصيب ما يسمى بالهوك.
ما هو الهوك ؟
(Windows Events)بحسب مايكروسوفت فان الهوك هو عبارة عن الية لمراقبة أحداث النظام المختلفة مثل نقرات الماوس او ضغطات لوحة المفاتيح.
ألية العمل :
يحتوي على الشيل كود الخاص بنا والثاني DLL1-سنقوم بانشاء مشروعين , الأول عبارة عن ملف
لعمل استيراد للفنكشن الموجود بداخلها الشيل كود.
2-بعدها سنقوم بكتابة فنكشن لتصيب الهوك على النظام.
3- بمجرد الضغط على لوحة المفاتيح داخل أي عملية , سيتم تفعيل الهوك ووصول الاتصال في جلسة meterpreter
الأن سننتقل الى الجانب البرمجي لتطبيق ما قمنا بكتابته :-
- أولاً في مشروع ال DLL نقوم بكتابة فنكشن ونضيف لها الكيورد __declspec(dllexport) حتى نستطيع عمل import لها من ملف اخر
- نقوم الان بكتابة الشيل كود داخل مصفوفة ونقوم بعمل حجز للذاكرة عن طريق فنكشن VirtualAlloc
- نقوم بنسخ الشيل كود الى مساحة الذاكرة التي قمنا بحجزها باستخدام فنكشن memcpy او RtlCopyMemory
- نقوم الان بتشغيل الشيل كود بأي طريقة قمنا بتعلمها مسبقاً
الان في مشروع اللودر وهو عبارة عن مشروع من نوع EXE , نقوم بالخطوات التالية :
1-نقوم بعمل لود لملف ال DLL باستخدام فنكشن LoadLibraryA
2- نقوم باستخراج الادرس الخاص بالفنكشن GO باستخدام GetProcAddress
3- نقوم بتنصيب الهوك باستخدام فنكشن SetWindowsHookEx
للتعرف اكثر :
4- بعد الانتهاء , يمكننا إزالة الهوك من النظام باستخدام فنكشن UnhookWindowsHookEx
للتعرف اكثر:
الكود الكامل لمشروع الDLL
الكود الكامل لمشروع الEXE
نلاحظ هنا عند تشغيل اللودر , قام بالفعل باستخراج الادرس الخاص بفنكشن Go الموجودة في ملف ال DLL وسيقوم بالخطوة القادمة بتنصيب الهوك على النظام
ومن ثم , تم وصول الاتصال بنجاح