PPLcontrol

Post-Exploitation vlatest не обновлялся >2 лет

Инструмент для исследования и работы с механизмом Protected Process Light (PPL) в Windows в контексте авторизованного тестирования.

vlatest
current

Установка
git clone https://github.com/itm4n/PPLcontrol.git
# Сборка:
# 1. Открыть решение (.sln) в Visual Studio
# 2. Выбрать конфигурацию Release/x64 (x86 не поддерживается)
# 3. Собрать решение

# Установка драйвера (в виртуальной машине):
sc.exe create RTCore64 type= kernel start= auto binPath= C:\PATH\TO\RTCore64.sys DisplayName= "Micro - Star MSI Afterburner"
net start RTCore64

# Пример использования
PPLcontrol.exe list
PPLcontrol.exe get 1234
PPLcontrol.exe set 1234 PPL WinTcb
PPLcontrol.exe protect 1234 PPL WinTcb
PPLcontrol.exe unprotect 1234
net stop RTCore64
sc.exe delete RTCore64
показать оригинал переведено ИИ

PPLcontrol

Описание

Этот инструмент позволяет перечислять защищённые процессы, получать уровень защиты конкретного процесса или устанавливать произвольный уровень защиты. Подробнее можно прочитать в этой статье блога: Отладка защищённых процессов.

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

1. Скачайте драйвер MSI

Вы можете получить копию драйвера MSI RTCore64.sys здесь: PPLKiller/driver.

2. Установите драйвер MSI

Отказ от ответственности: само собой разумеется, что никогда не следует устанавливать этот драйвер на основной машине. Используйте виртуальную машину!

sc.exe create RTCore64 type= kernel start= auto binPath= C:\PATH\TO\RTCore64.sys DisplayName= "Micro - Star MSI Afterburner"
net start RTCore64

3. Используйте PPLcontrol

Перечислите защищённые процессы.

PPLcontrol.exe list

Получите уровень защиты конкретного процесса.

PPLcontrol.exe get 1234

Установите произвольный уровень защиты.

PPLcontrol.exe set 1234 PPL WinTcb

Защитите не защищённый процесс произвольным уровнем защиты. Это также автоматически скорректирует уровни подписи EXE/DLL.

PPLcontrol.exe protect 1234 PPL WinTcb

Снимите защиту с защищённого процесса. Это установит уровень защиты на 0 (т.е. None), а уровни подписи EXE/DLL — на 0 (т.е. Unchecked).

PPLcontrol.exe unprotect 1234

4. Удалите драйвер

net stop RTCore64
sc.exe delete RTCore64

Сценарии использования

Отладка защищённого процесса с помощью WinDbg

WinDbg просто должен открыть целевой процесс, поэтому вы можете использовать PPLcontrol, чтобы установить произвольный уровень защиты для вашего процесса windbg.exe.

  1. Получите PID процесса windbg.exe.
  2. Используйте PPLcontrol, чтобы установить произвольный уровень защиты.
C:\Temp>tasklist | findstr /i windbg
windbg.exe                    1232 Console                    1     24,840 K
C:\Temp>PPLcontrol.exe protect 1232 PPL WinTcb
[+] The Protection 'PPL-WinTcb' was set on the process with PID 1232, previous protection was: 'None-None'.
[+] The Signature level 'WindowsTcb' and the Section signature level 'Windows' were set on the process with PID 1232.

Исследование защищённого процесса с помощью API Monitor

Помимо открытия целевого процесса, API Monitor внедряет в него DLL. Поэтому установка произвольного уровня защиты для процесса apimonitor.exe будет недостаточной. Поскольку внедрённая DLL не имеет правильной подписи для этой цели, флаг подписи секции целевого процесса, скорее всего, помешает её загрузке. Однако вы можете временно отключить защиту целевого процесса, начать мониторинг, а затем сразу же восстановить защиту.

Failed to load module in target process - Error: 577, Windows cannot verify the digital signature for this file. A recent hardware or software change might have installed a file that is signed incorrectly or damaged, or that might be malicious software from an unknown source.
  1. Получите PID целевого процесса.
  2. Используйте PPLcontrol, чтобы получить уровень защиты целевого процесса.
  3. Снимите защиту с процесса.
  4. Начните мониторинг процесса с помощью API Monitor.
  5. Восстановите защиту целевого процесса.
C:\Temp>tasklist | findstr /i target
target.exe                    1337 Services                   1     14,160 K
C:\Temp>PPLcontrol.exe get 1337
[+] The process with PID 1337 is a PPL with the Signer type 'WinTcb' (6).
C:\Temp>PPLcontrol.exe unprotect 1337
[+] The process with PID 1337 is no longer a PP(L).

C:\Temp>PPLcontrol.exe protect 1337 PPL WinTcb
[+] The Protection 'PPL-WinTcb' was set on the process with PID 1337, previous protection was: 'None-None'.
[+] The Signature level 'WindowsTcb' and the Section signature level 'Windows' were set on the process with PID 1337.

Сборка

  1. Откройте решение в Visual Studio.
  2. Выберите Release/x64 (x86 не поддерживается и, скорее всего, никогда не будет).
  3. Соберите решение.

Благодарности

Войдите, чтобы оставить комментарий