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

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

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

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

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

Категории

Все категории
Loading categories
KDU — Утилита для драйверов ядра Windows, которая эксплуатирует уязвимые подписанные драйверы (BYOVD) для обхода DSE, загрузки неподписанных драйверов, перехвата защищённых процессов и дампа памяти процессов. | Kitploit
Инструменты/GitHubGitHub/hfiref0x/kdu
Оборонительные ИнструментыПовышение привилегийМеханизмы персистентностиАнализ уязвимостейЭксплуатацияОбратная инженерияШелл-кодАнализ вредоносных программRed TeamingРазработка Полезной НагрузкиЭксплуатация Бинарных Файлов
2.8k552828 дней назадПроверено Kitploit

Популярное

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

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

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

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

Смотреть все инструменты →
GitHubhfiref0x/kdu

KDU

Утилита для драйверов ядра Windows, которая эксплуатирует уязвимые подписанные драйверы (BYOVD) для обхода DSE, загрузки неподписанных драйверов, перехвата защищённых процессов и дампа памяти процессов.

Репозиторий
Поделиться

KDU

Build status Visitors

Утилита для работы с драйверами ядра

Системные требования

  • x64 Windows 7/8/8.1/10/11;
  • Требуются права администратора.

Назначение и возможности

Назначение этого инструмента — предоставить простой способ исследования ядра Windows и его компонентов без необходимости сложной настройки или локального отладчика. Возможности:

  • Перехват защищённых процессов через произвольный PPL или произвольные дескрипторы процессов, оба способа — через модификацию объекта EPROCESS;
  • Обход проверки подписи драйверов (аналогично DSEFix);
  • Загрузчик драйверов для обхода проверки подписи драйверов (аналогично TDL/Stryker);
  • Поддержка различных уязвимых драйверов, используемых в качестве «провайдеров» функциональности.

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

KDU -list
KDU -listcsv
KDU -diag
KDU -prv ProviderID
KDU -ps ProcessID
KDU -pse Commandline
KDU -psw Commandline
KDU -pho ProcessID
KDU -dmp ProcessID
KDU -dse value
KDU -map filename
  • -list — вывести список доступных провайдеров;
  • -listcsv [file] — вывести список доступных провайдеров в формате CSV, опционально записать в файл;
  • -diag — запустить диагностику системы для устранения неполадок;
  • -prv — опционально, выбрать провайдер уязвимого драйвера;
  • -ps — изменить объект процесса с указанным ProcessID, понизив уровень любых защит;
  • -pse — запустить программу как ProtectedProcessLight-AntiMalware (PPL);
  • -psw — запустить программу как ProtectedProcessLight-WinTcb (PPL);
  • -pho — открыть произвольный процесс с полным доступом
    • -pht — также открыть все потоки этого процесса с полным доступом
    • -phc — командная строка (дочерний процесс) для наследования флага, по умолчанию powershell
    • -phe — также запустить дочерний процесс как ppl
  • -dmp — дамп виртуальной памяти указанного процесса;
  • -dse — записать пользовательское значение в системные флаги состояния DSE;
  • -map — загрузить драйвер в ядро и выполнить его точку входа; эта команда имеет зависимости, перечисленные ниже;
    • -scv version — опционально, выбрать версию шелл-кода, по умолчанию 1;
    • -drvn name — имя объекта драйвера (действительно только для версии шелл-кода 3);
    • -drvr name — опционально, имя ключа реестра драйвера (действительно только для версии шелл-кода 3).

Пример:

  • kdu -ps 1234
  • kdu -map c:\driverless\mysuperhack.sys
  • kdu -dmp 666
  • kdu -prv 1 -ps 1234
  • kdu -prv 1 -map c:\driverless\mysuperhack.sys
  • kdu -prv 6 -scv 3 -drvn DrvObj -map c:\install\e3600bm.sys
  • kdu -prv 6 -scv 3 -drvn edrv -drvr e3600bl -map c:\install\e3600bl.sys
  • kdu -dse 0
  • kdu -dse 6
  • kdu -pse "C:\Windows\System32\notepad.exe C:\TEMP\words.txt"
  • kdu -psw "C:\Windows\System32\cmd.exe"
  • kdu -pho 1234 -pht -phe 3
  • kdu -listcsv "c:\kdu\out.csv"

Запуск на Windows 11 24H2*

Запуск на Windows 10 20H2*

Скомпилировано и запущено на Windows 8.1*

Запуск на Windows 7 SP1 с полностью установленными обновлениями (предкомпилированная версия)*

Запуск на Windows 10 19H2 (предкомпилированная версия, SecureBoot включён)*

Большинство скриншотов сделано с версии 1.0X.

Ограничения команды -map

Из-за необычного способа загрузки, который не задействует стандартный загрузчик ядра, а использует перезапись уже загруженных модулей шелл-кодом, существуют некоторые ограничения:

  • Загружаемые драйверы ДОЛЖНЫ БЫТЬ специально спроектированы для работы в режиме «driverless»;

Это означает, что вы не можете использовать параметры, указанные в вашем DriverEntry, так как они не будут действительны. Это также означает, что вы не можете загрузить любой драйвер, а только специально спроектированный, либо вам нужно изменить процедуры шелл-кода.

  • Отсутствие поддержки SEH для целевых драйверов;

В x64 нет кода SEH. Вместо этого имеется таблица областей try/except/finally, описываемая указателем в заголовке PE. При возникновении исключения это может привести к BSOD.

  • Отсутствие выгрузки драйвера;

Отображённый код не может выгрузить себя; однако вы можете освободить все ресурсы, выделенные вашим отображённым кодом. DRIVER_OBJECT->DriverUnload должен быть установлен в NULL.

  • Разрешается только импорт из ntoskrnl, всё остальное — на ваше усмотрение;

Если вашему проекту требуется зависимость от другого модуля, вы должны переписать эту часть загрузчика.

  • Некоторые примитивы Windows запрещены PatchGuard для использования динамическим кодом.

Из-за необычного способа загрузки отображённый драйвер не будет присутствовать в PsLoadedModulesList. Это означает, что любой обработчик обратного вызова, зарегистрированный таким кодом, будет расположен в памяти вне этого списка. PatchGuard может обнаружить это и вызвать крах системы.

В целом, если вы хотите узнать, что вам не следует делать в ядре, посмотрите https://github.com/hfiref0x/KDU/tree/master/Source/Examples/BadRkDemo, где приведено несколько примеров запрещённых действий.

Примечание о трассировках ядра

Этот инструмент не изменяет (и не будет изменять в будущем) внутренние структуры Windows MmUnloadedDrivers и/или PiDDBCacheTable. Причина в том, что:

  • KDU не предназначен для обхода стороннего защитного ПО или различного сомнительного программного обеспечения (например, античитов);
  • Эти данные могут стать целью защиты PatchGuard в следующем крупном обновлении Windows 10.

Вы используете его на свой страх и риск. Некоторые ленивые антивирусы могут пометить этот инструмент как hacktool/malware.

Поддерживаемые провайдеры

Полный список со всеми метаданными доступен здесь:

  • https://github.com/hfiref0x/KDU/blob/master/Help/providers.md

В будущем могут быть добавлены другие провайдеры.

Как это работает

Он использует известные уязвимые (или намеренно содержащие «червоточины») драйверы из легитимного программного обеспечения для доступа к произвольной памяти ядра с примитивами чтения/записи.

В зависимости от команды KDU будет работать либо как TDL/DSEFix, либо модифицировать объекты процессов режима ядра (EPROCESS).

В режиме -map KDU для большинства доступных провайдеров по умолчанию использует сторонний подписанный драйвер из SysInternals Process Explorer и перехватывает его, размещая небольшой загрузочный шелл-код внутри его процедуры IRP_MJ_DEVICE_CONTROL.

Версии шелл-кода

KDU использует шелл-код для отображения входных драйверов и выполнения их DriverEntry. В KDU встроено несколько вариантов шелл-кода. Шелл-коды V1, V2 и V3 используются вместе со сторонним драйвером-жертвой (Process Explorer и т. д.).

Сборка и примечания

Скачать инструмент