![[صورة مرفقة: image.png]](https://i.ibb.co/xKZCnMdn/image.png)
مقدمة سريعة
في ويندوز توجد أدوات كثيرة “نظامية” موقَّعة من مايكروسوفت، صُممت أساسا لأعمال إدارية أو لتشغيل مكوّنات داخل النظام. واحدة من أشهر هذه الأدوات هي rundll32.exe. و هذه الأداة تلعب دوراً هاماً للغاية في بيئة التشغيل ويندوز و يتم أستخدامها من الجميع تقريباً بما فيهم بعض مطوري برامج الحماية و تتمثل مهمة هذه الأداة بشكل رئيسي في تشغيل كود موجود داخل ملفات DLL.
ما هو rundll32.exe ؟
rundll32.exe هو ملف تنفيذي موقّع من مايكروسوفت وظيفته الأساسية تحميل مكتبة DLL (Dynamic Link Library) واستدعاء دالة بداخلها.
يوجد عادة بنسختين على أنظمة 64-بت:
C:\Windows\System32\rundll32.exe
C:\Windows\SysWOW64\rundll32.exe
و بنسخه واحدة على أنظمة 32-بت:
C:\Windows\System32\rundll32.exe
الفكرة الجوهرية: بدل أن يكون لديك برنامج EXE مستقل لكل مهمة، يمكن لويندوز (أو التطبيقات) وضع وظائف داخل DLL واستدعاؤها عند الحاجة عبر rundll32. وجود توقيع مايكروسوفت لا يعني أن كل استخدام لـ rundll32 آمن؛ هو فقط يعني أن الملف نفسه أصلي عادة، لكن ما يتم تحميله (DLL) قد يكون خبيثا و هذا ما قد تجده في بعض البرامج الملغومة.
يوجد عادة بنسختين على أنظمة 64-بت:
C:\Windows\System32\rundll32.exe
C:\Windows\SysWOW64\rundll32.exe
و بنسخه واحدة على أنظمة 32-بت:
C:\Windows\System32\rundll32.exe
الفكرة الجوهرية: بدل أن يكون لديك برنامج EXE مستقل لكل مهمة، يمكن لويندوز (أو التطبيقات) وضع وظائف داخل DLL واستدعاؤها عند الحاجة عبر rundll32. وجود توقيع مايكروسوفت لا يعني أن كل استخدام لـ rundll32 آمن؛ هو فقط يعني أن الملف نفسه أصلي عادة، لكن ما يتم تحميله (DLL) قد يكون خبيثا و هذا ما قد تجده في بعض البرامج الملغومة.
لماذا يتحدث الخبراء كثيرا عنه؟
لأنه مثال كلاسيكي على مفهوم “التشغيل بالوكالة عبر أدوات النظام” (System Binary Proxy Execution): تشغيل كود عبر برنامج نظام موثوق بدل تشغيله مباشرة و هذا ما شجع بعض مطوري البرامج الضارة في أستخدام هذه الأداة الموجودة أصلاً في نظام التشغيل في الهجمات، وrundll32 من أشهرها. حيث يمكن تنفيذ كود برمجي خبيث من خلالها و هذا ما يصعب مهمة برامج مكافحة الفيروسات و ذلك لأن هذا الكود الضار تم تشغيله من خلال أداة رسمية موثقة تابعه لشركة مايكروسوفت. بالطبع هذه الأداة لديها الكثير من الفوائد الهامة على مستوى نظام التشغيل و البرامج الرسمية الأخرى و ما يهمنا هنا هو أن بعض برامج الحماية و بعض البرامج التي يواجها المهندس العكسي في حياته اليومية تستخدم هذا التكنيك في اخفاء بعض الأشياء أو تنفيذها بطريقة لا تخطر على البال أحيانا.
كيف يعمل rundll32 تحت الغطاء (بصورة مبسطة)
لفهمه بدون تعقيد نحتاج ثلاثة مفاهيم:
1) DLL: ملف يحتوي دوال يمكن للبرامج الأخرى استدعاؤها.
2) Entry Point: اسم الدالة التي تريد استدعاءها داخل DLL.
3) DllMain: دالة داخل كثير من DLLs تُستدعى تلقائيا عند تحميل المكتبة داخل عملية جديدة.
عمليا: يقوم rundll32 بتحميل DLL داخل مساحة ذاكرة عملية rundll32 نفسها. عند التحميل قد يتم استدعاء DllMain أولا. بعدها يحاول استدعاء الدالة (Entry Point) المطلوبة.
نقطة أمنية مهمة: حتى لو كان اسم Entry Point غير صحيح، قد يكون كود داخل DllMain قد نُفّذ بالفعل لأن عملية التحميل نفسها تستدعي DllMain.
1) DLL: ملف يحتوي دوال يمكن للبرامج الأخرى استدعاؤها.
2) Entry Point: اسم الدالة التي تريد استدعاءها داخل DLL.
3) DllMain: دالة داخل كثير من DLLs تُستدعى تلقائيا عند تحميل المكتبة داخل عملية جديدة.
عمليا: يقوم rundll32 بتحميل DLL داخل مساحة ذاكرة عملية rundll32 نفسها. عند التحميل قد يتم استدعاء DllMain أولا. بعدها يحاول استدعاء الدالة (Entry Point) المطلوبة.
نقطة أمنية مهمة: حتى لو كان اسم Entry Point غير صحيح، قد يكون كود داخل DllMain قد نُفّذ بالفعل لأن عملية التحميل نفسها تستدعي DllMain.
أين تكمن إساءة الاستخدام؟
المهاجم أو مطور البرامج الضارة أيما كان نوعها لا يحتاج لـ “اختراع” أداة جديدة. يكفيه إسقاط DLL خبيث على الجهاز أو جلبه من مسار شبكي ثم جعله يُحمَّل عبر rundll32. وبما أن rundll32 ملف نظامي موقّع ومألوف، قد يمر هذا التنفيذ تحت الرادار لفترة أطول أو يلتف على بعض سياسات تقييد التطبيقات في سيناريوهات معيّنة.
مثال حساس: تفريغ ذاكرة LSASS لاستخراج بيانات اعتماد.
مثال حساس: تفريغ ذاكرة LSASS لاستخراج بيانات اعتماد.
![[صورة مرفقة: image.png]](https://i.ibb.co/XkZwLN8d/image.png)
استخدامات أخرى قد تكون غير متوقعة
يمكن إساءة استخدام rundll32 أيضا في تشغيل/التلاعب بسكربتات، والتعامل مع COM Objects، وحتى محتوى مخفي مثل Alternate Data Streams وغيرها.
كيف تفرّق بين الاستخدام الطبيعي والمشبوه؟
لا توجد قاعدة سحرية واحدة، لكن هذه مؤشرات عملية:
1) مسار rundll32 نفسه: الطبيعي أن يكون من System32 أو SysWOW64. وجوده في مسار غريب قد يشير لانتحال.
2) سطر الأوامر: أهم نقطة. راقب ما الذي يتم تحميله. DLL في مسار مستخدم عادي أو مشاركة شبكة يستحق تدقيقا.
3) الأب (Parent Process): من الذي شغّل rundll32؟ تشغيله من مستندات Office أو المتصفح أو PowerShell في سياق غير معتاد يرفع الشك.
4) اتصالات شبكة صادرة: قد تكون طبيعية نادرا، لكنها علامة تستحق التحقيق خاصة إذا ارتبطت بـ DLL مجهول.
1) مسار rundll32 نفسه: الطبيعي أن يكون من System32 أو SysWOW64. وجوده في مسار غريب قد يشير لانتحال.
2) سطر الأوامر: أهم نقطة. راقب ما الذي يتم تحميله. DLL في مسار مستخدم عادي أو مشاركة شبكة يستحق تدقيقا.
3) الأب (Parent Process): من الذي شغّل rundll32؟ تشغيله من مستندات Office أو المتصفح أو PowerShell في سياق غير معتاد يرفع الشك.
4) اتصالات شبكة صادرة: قد تكون طبيعية نادرا، لكنها علامة تستحق التحقيق خاصة إذا ارتبطت بـ DLL مجهول.
ماذا تفعل كمهندس عكسي للتعامل مع هذا النوع من التشغيل للأكواد في ملفات الـ DLL ؟
1) فعّل تسجيل سطر الأوامر لإنشاء العمليات (Event ID 4688) مع تضمين Command Line عبر Group Policy، لأن هذا يكشف أي DLL تم تحميله وكيف.
2) راقب rundll32 ضمن سياق MITRE T1218.011: ثنائيات موقّعة تُستخدم كوكيل لتشغيل حمولة مشبوهة عبر المعاملات.
3) كنا فطناً: rundll32 قد يُستخدم بشكل كبير في الحياة اليومية، لذا ركّز على الانحرافات عن السلوك الطبيعي و أفحصها.
ملاحظة: MITRE T1218.011 هو تكنيك يستخدم للتخلص من مراقبة برامج مكافحة الفيروسات و التحكم بالبرامج و تدقيق الشهادات الألكترونية. يمكنكم البحث عنه للتعرف أكثر عنه.
2) راقب rundll32 ضمن سياق MITRE T1218.011: ثنائيات موقّعة تُستخدم كوكيل لتشغيل حمولة مشبوهة عبر المعاملات.
3) كنا فطناً: rundll32 قد يُستخدم بشكل كبير في الحياة اليومية، لذا ركّز على الانحرافات عن السلوك الطبيعي و أفحصها.
ملاحظة: MITRE T1218.011 هو تكنيك يستخدم للتخلص من مراقبة برامج مكافحة الفيروسات و التحكم بالبرامج و تدقيق الشهادات الألكترونية. يمكنكم البحث عنه للتعرف أكثر عنه.
في الختام
rundll32.exe أداة نظامية بسيطة في فكرتها: “تحميل DLL واستدعاء دالة”. لكن يمكن أن تتحول إلى أداة ممتازة للمهاجمين عندما يتم تحميل DLL غير موثوق، أو تُستخدم كوكيل تشغيل لتجاوز القيود، أو تُربط بسلوكيات خطرة مثل محاولات الوصول لبيانات اعتماد. فيجب الحذر حيث أن بعض البرامج الملغومة تستخدم هذه الأداة لتجنب الأكتشاف، و كثيراً ما تعرض العديد من المهندسين العكسين للأختراق و تسرب البيانات من خلال أستخدامهم لأدوات و برامج حصلوا عليها من مواقع الهندسية العكسية و أستخدموها و وقعوا في المحضور بطرق مشابه لما تم ذكره في هذه المقالة. أيضاً عندما تواجه برنامج يصعب عليك فكه أبحث فيما أذا ما كان هنالك أستخدام لهذه الأداة فربما تجد ضالتك التي تبحث عنها.

