Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

الخلاصاتاتصالالخصوصية© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
PPLRunner — يبني برنامج تشغيل ELAM وخدمة تُشغّل عملية فرعية موقّعة كعملية محمية من البرامج الضارة (PPL) على Windows، لأغراض البحث الأمني. | Kitploit
أدوات/GitHubGitHub/pathtofile/pplrunner
أدوات دفاعيةتصعيد الامتيازاتآليات الاستمراريةالاستغلالتحليل البرمجيات الخبيثةالأوراق والأبحاثالفريق الأحمر
GitHubpathtofile/pplrunner

PPLRunner

يبني برنامج تشغيل ELAM وخدمة تُشغّل عملية فرعية موقّعة كعملية محمية من البرامج الضارة (PPL) على Windows، لأغراض البحث الأمني.

عرض المستودع
1853612منذ 4 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

PPLRunner

يهدف هذا المشروع إلى تمكين تشغيل عملية "عشوائية*" كعملية محمية من نوع Anti Malware Protected-Process-Light (PPL)، لأغراض البحث. (* راجع قسم القيود لمزيد من التفاصيل)

راجع هذه المدونة التي كتبتها لمزيد من التفاصيل والأسباب الكامنة وراء هذا المشروع.

نظرة عامة

العملية المحمية من النظام (System protected process) هي نموذج أمني في Windows مصمم لحماية عمليات النظام ومكافحة الفيروسات من العبث بها أو فحصها داخليًا، حتى من قِبل المسؤولين/‏SYSTEM.

العمليات التي تبدأ كعملية "محمية خفيفة" لمكافحة البرمجيات الخبيثة (Anti Malware Protected Process-Light - PPL) تكون مقيّدة فيما يمكنها فعله، ولا يمكنها تحميل سوى الشيفرة الموقّعة، ولا يمكن تصحيحها أو فحصها أو إيقافها بواسطة عمليات غير محمية. بالإضافة إلى ذلك، يمكنها الوصول إلى بيانات خاصة، مثل موفّر ETW المسمّى Microsoft-Windows-Threat-Intelligence.

ينشئ هذا المشروع برنامج تشغيل Early-Launch Anti Malware (ELAM) وخدمة usermode. ستقوم الخدمة عند بدء تشغيلها بإطلاق عملية فرعية قابلة للتهيئة والتي ستُعلَّم أيضًا كـ PPL.

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

بصراحة، لا أقوم بعمل جيد في شرح ماهية ELAM وPPL، بدلًا من ذلك أوصي بالبدء من هنا:

  • الفصل 3، Windows Internals Part 1 (المصدر رقم 1 لأي شيء يتعلق بـ Windows بصراحة)
  • https://docs.microsoft.com/en-us/windows/win32/services/protecting-anti-malware-services-
  • https://www.crowdstrike.com/blog/protected-processes-part-3-windows-pki-internals-signing-levels-scenarios-signers-root-keys/
  • https://googleprojectzero.blogspot.com/2018/10/injecting-code-into-windows-protected.html

الوضع المُسبق البناء/السهل

يمكنك الحصول على نسخة مُسبقة البناء وموقّعة من خدمة PPLRunner ووحدة النواة من Releases. تتضمن الإصدار أيضًا الشهادة والمفتاح الخاص المُولَّدين تلقائيًا في ملف .pfx محمي بكلمة مرور هي password. لقد قلت بالفعل إن هذا لأغراض البحث فقط، أليس كذلك؟

يدويًا

لتوليد وبناء مشروعك الخاص:

الإعداد

تأكد من تثبيت Windows SDKs.

افتح generate_cert.ps1 وsign_file.ps1، وغيّر المتغير $password إلى شيء آخر (يجب أن يتطابقا مع بعضهما البعض).

شغّل generate_cert.ps1. سيؤدي هذا إلى توليد ppl_runner.pfx بشهادة خاصة وعامة جديدة. سيُستخدم هذا لتوقيع جميع الملفات التنفيذية التي يستخدمها PPLRunner.

البناء

ابنِ ppl_runner.sln. سينتج عن ذلك 3 ملفات تنفيذية:

elam_driver.sys

برنامج تشغيل ELAM Kernel Driver الذي يحتوي على معلومات الشهادة بداخله. لا يقوم برنامج التشغيل بأي شيء فعليًا، ولن يُحمَّل فعليًا، بل يُستخدم فقط كوعاء لشهادة التوقيع.

ppl_runner.exe

مثبّت الخدمة والملف التنفيذي. كخدمة PPL، عند بدء تشغيلها ستُطلق عملية فرعية، أيضًا كـ PPL، ثم تتوقف وتخرج.

child_example.exe

ملف تنفيذي نموذجي سيُوقَّع بالشهادة الصحيحة بواسطة Visual Studio وقت البناء. يمكن لـ PPLRunner تشغيل أي ملف تنفيذي تقريبًا، وهذا مجرد مثال سيُوقَّع تلقائيًا.

التثبيت

ملاحظة ثبّت فقط على جهاز اختبار، وليس على جهاز الإنتاج/جهازك المنزلي.

  1. بعد البناء، انسخ elam_driver.sys وppl_runner.exe إلى مجلد على الجهاز الهدف.

  2. فعّل توقيع الاختبار (test signing) بتشغيل هذا من موجه أوامر مرتفع الصلاحيات، ثم أعد التشغيل:

bcdedit /set testsigning on
  1. من موجه أوامر مرفوع الصلاحيات، انتقل إلى المجلد الذي يحتوي على الملفات التنفيذية المنسوخة ونفّذ:
ppl_runner.exe install

سيقوم هذا بتثبيت خدمة باسم ppl_runner.

التهيئة

لتوقيع ملف ثنائي ليتم تشغيله، وقّعه باستخدام شهادة ppl_runner.pfx، إما باستخدام السكربت sign_file.ps1، أو بمجرد تشغيل signtool.exe بنفسك. إذا لم يكن لديك signtool.exe، فهو موجود في Windows SDKs.

أنشئ مفتاح التسجيل HKLM\SOFTWARE\PPL_RUNNER. اضبط المفتاح الافتراضي/الفارغ ليكون من النوع REG_SZ، يحتوي على المسار الكامل للملف الثنائي المراد تنفيذه، وأي وسيط سطر أوامر. على سبيل المثال من سطر الأوامر:

REG.exe ADD HKLM\SOFTWARE\PPL_RUNNER /ve /t REG_SZ /d "C:\path\to\binay --argument 1"

التشغيل

لجعل الخدمة تُشغّل الملف التنفيذي، ما عليك سوى التشغيل من موجه أوامر بصلاحيات مرتفعة:

net start ppl_runner

بصفتها خدمة PPL، عند بدء التشغيل سيقرأ ppl_runner مفتاح التسجيل، ويطلق العملية الفرعية، أيضًا بصفتها PPL، ثم يتوقف ويخرج. سيظل الإطلاق الناجح يظهر الرسالة the service failed to run، ولكن إذا تحققت من رمز الإرجاع باستخدام sc query ppl_runner، فيجب أن يكون 0، أي ERROR_SUCCESS.

لن تكون العملية الفرعية مرئية، ولكن يمكنك استخدام Debug Outputs وDBGView.exe للحصول على شكل من أشكال المخرجات (انظر كود child_example).

التنظيف/الإزالة

نظرًا لأن الخدمة هي أيضًا Anti Malware PPL، فلا يمكن إيقافها وحذفها إلا بواسطة عملية مماثلة عالية المستوى. ومع ذلك، يمكننا استخدام PPLRunner لإزالة نفسه، ببساطة عيّن الأمر في مفتاح التسجيل ليكون:

C:\path\to\ppl_runner.exe remove

وشغّل الخدمة. أي شغّل:

REG.exe ADD HKLM\SOFTWARE\PPL_RUNNER /ve /t REG_SZ /d "C:\path\to\ppl_runner.exe remove"
net start ppl_runner

القيود

  • هذا المشروع يعمل فقط في وضع testsigning.
  • يجب إعادة تشغيل ppl_runner.exe install بعد كل إعادة تشغيل.
  • يجب توقيع الملف التنفيذي الفرعي بنفس الشهادة المستخدمة للخدمة.
  • يجب أيضًا توقيع أي ملفات DLL يقوم الملف التنفيذي بتحميلها.

تصحيح الأخطاء

شغّل أداة DBGView من Sysinternals وسجّل Win32 Global، مع التصفية على *[PPL_RUNNER]*. سيعرض هذا جميع السجلات من الخدمة والمثبّت.

أمثلة على الاستخدام

يُحدَّد لاحقًا - مدونة Sealighter

مشاريع مشابهة

أنشأ James Forshaw مشروعًا رائعًا لـحقن الشيفرة في عمليات PPL الموجودة.

قراءات إضافية وشكر

متابعة Alex Ionescu هي على الأرجح أفضل طريقة لمعرفة المزيد عن ELAM وPPL. ربما ابدأ بهذا: https://www.crowdstrike.com/blog/protected-processes-part-3-windows-pki-internals-signing-levels-scenarios-signers-root-keys/

متابعة Matt Graeber وJames Forshaw هي طريقة رائعة أخرى.

شكر جزيل لمات على سكربت powershell للحصول على تجزئة 'To-Be-Signed' من شهادة.

كتب جيمس الكثير عن PPL وعيوبه.

تنزيل الأداة