
Outil Windows pour lister, obtenir, définir, protéger et déprotéger les niveaux de protection des processus (PP/L) pour le débogage, l'inspection et l'élévation de privilèges.
Cet outil vous permet de lister les processus protégés, d'obtenir le niveau de protection d'un processus spécifique ou de définir un niveau de protection arbitraire. Pour plus d'informations, vous pouvez lire cet article de blog : Debugging Protected Processes.
Vous pouvez obtenir une copie du pilote MSI RTCore64.sys ici : PPLKiller/driver.
Avertissement : il va sans dire que vous ne devez jamais installer ce pilote sur votre machine hôte. Utilisez une VM !
sc.exe create RTCore64 type= kernel start= auto binPath= C:\PATH\TO\RTCore64.sys DisplayName= "Micro - Star MSI Afterburner"
net start RTCore64
Lister les processus protégés.
PPLcontrol.exe list
Obtenir le niveau de protection d'un processus spécifique.
PPLcontrol.exe get 1234
Définir un niveau de protection arbitraire.
PPLcontrol.exe set 1234 PPL WinTcb
Protéger un processus non protégé avec un niveau de protection arbitraire. Cela ajustera également automatiquement les niveaux de signature en conséquence.
PPLcontrol.exe protect 1234 PPL WinTcb
Déprotéger un processus protégé. Cela définira le niveau de protection à 0 (c.-à-d. None) et les niveaux de signature EXE/DLL à 0 (c.-à-d. Unchecked).
PPLcontrol.exe unprotect 1234
net stop RTCore64
sc.exe delete RTCore64
WinDbg a seulement besoin d'ouvrir le processus cible, vous pouvez donc utiliser PPLcontrol pour définir un niveau de protection arbitraire sur votre processus windbg.exe.
windbg.exe.C:\Temp>tasklist | findstr /i windbg
windbg.exe 1232 Console 1 24,840 K
C:\Temp>PPLcontrol.exe protect 1232 PPL WinTcb
[+] La protection 'PPL-WinTcb' a été définie sur le processus avec le PID 1232, la protection précédente était : 'None-None'.
[+] Le niveau de signature 'WindowsTcb' et le niveau de signature de section 'Windows' ont été définis sur le processus avec le PID 1232.
En plus d'ouvrir le processus cible, API Monitor injecte une DLL dans celui-ci. Par conséquent, définir un niveau de protection arbitraire sur votre processus apimonitor.exe ne suffira pas. Comme la DLL injectée n'est pas correctement signée à cet effet, le drapeau de signature de section du processus cible l'empêchera probablement d'être chargée. Cependant, vous pouvez temporairement désactiver la protection sur le processus cible, commencer à le surveiller, puis rétablir la protection immédiatement après.
Échec du chargement du module dans le processus cible - Erreur : 577, Windows ne peut pas vérifier la signature numérique de ce fichier. Une modification récente du matériel ou du logiciel a peut-être installé un fichier mal signé ou endommagé, ou il pourrait s'agir d'un logiciel malveillant provenant d'une source inconnue.
C:\Temp>tasklist | findstr /i target
target.exe 1337 Services 1 14,160 K
C:\Temp>PPLcontrol.exe get 1337
[+] Le processus avec le PID 1337 est un PPL avec le type de signataire 'WinTcb' (6).
C:\Temp>PPLcontrol.exe unprotect 1337
[+] Le processus avec le PID 1337 n'est plus un PP(L).
C:\Temp>PPLcontrol.exe protect 1337 PPL WinTcb
[+] La protection 'PPL-WinTcb' a été définie sur le processus avec le PID 1337, la protection précédente était : 'None-None'.
[+] Le niveau de signature 'WindowsTcb' et le niveau de signature de section 'Windows' ont été définis sur le processus avec le PID 1337.
Release/x64 (x86 n'est pas pris en charge et ne le sera probablement jamais).