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

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

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

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

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

Категории

Все категории
Loading categories
LdrLockLiberator — Для случаев, когда DLLMain — единственный доступный способ | Kitploit
Инструменты/GitHubGitHub/elliotkillick/ldrlockliberator
Механизмы персистентностиЭксплуатацияПост-эксплуатацияRed TeamingРазработка Полезной Нагрузки
GitHubelliotkillick/ldrlockliberator

LdrLockLiberator

Для случаев, когда DLLMain — единственный доступный способ

Репозиторий
43571171 год назадПроверено Kitploit

Популярное

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

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

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

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

Смотреть все инструменты →
Сайт
Поделиться
Логотип

LdrLockLiberator

Для тех случаев, когда DLLMain — единственный способ

LdrLockLiberator — это набор техник для выхода из Loader Lock или отказа от него при выполнении вашего кода из DllMain или из любого другого места, где может присутствовать блокировка. Он был выпущен вместе со статьёй "Perfect DLL Hijacking". Мы даём вам ключ к разблокировке загрузчика библиотек, чтобы вы могли делать со своим загрузчиком всё, что захотите (на своём компьютере)!

Эти техники предназначены быть универсальными, чистыми и на 100% безопасными, где это возможно. Они разработаны для работы без изменения защиты памяти или указателей. Это важно для сохранения совместимости с современными средствами смягчения эксплойтов. Единственная официально поддерживаемая архитектура — x86-64 (32-битные системы в значительной степени вымерли).

Хотите узнать архитектурные причины, по которым DllMain доставляет столько хлопот в Windows, тогда как Unix-подобные операционные системы с этим не сталкиваются? Пожалуйста, милости просим!.

Техники

LdrFullUnlock

Это ровно то, что звучит в названии. Разблокируйте Loader Lock, установите события загрузчика и переключите LdrpWorkInProgress. Для наилучшей стабильности рекомендуется оставить RUN_PAYLOAD_DIRECTLY_FROM_DLLMAIN неопределённым.

НЕ ИСПОЛЬЗУЙТЕ ЭТУ ТЕХНИКУ В ПРОДУКЦИОННОМ КОДЕ. Она была создана как побочный продукт моего чистого любопытства и желания не оставить ничего неизученным. Всё, что вы делаете с этим кодом, — на вашей ответственности.

Побег при завершении

Мы используем CRT-функцию atexit, обычно применяемую EXE-файлами, в нашем DLL-коде, чтобы выйти из Loader Lock при завершении программы. Для динамических загрузок (с использованием LoadLibrary) это становится 100% безопасным благодаря закреплению (LDR_ADDREF_DLL_PIN) нашей библиотеки с помощью LdrAddRefDll, чтобы последующий вызов FreeLibrary не удалил нашу DLL из памяти.

Используем блокировки в своих интересах

Скоро!

Примеры

Предоставленные примеры перехватывают MpClient.dll из C:\Program Files\Windows Defender\Offline\OfflineScannerShell.exe. В комментариях к исходному коду приведены инструкции, позволяющие легко адаптировать это для любой другой пары DLL и программы (в основном просто обновив экспортируемые функции для статических загрузок)!

В качестве доказательства концепции мы запускаем ShellExecute в качестве полезной нагрузки по умолчанию. Однако вы можете заставить это делать всё, что захотите!

Компиляция

Visual Studio

Файл LdrLockLiberator.c в корне этого проекта протестирован и компилируется в Visual Studio 2022.

Подключите NTDLL, выбрав текущий проект Visual Studio в окне обозревателя решений, затем перейдите в Project > Properties в строке меню. В раскрывающихся меню Configuration вверху выберите All Configurations и All Platforms. Теперь перейдите в Linker > Input и добавьте в Additional Dependencies: ntdll.lib.

WDK

Установка правильной версии WDK

  1. Перейдите на страницу загрузки WDK
  2. Нажмите на ссылку Windows 7 WDK 7.1.0, чтобы начать загрузку правильной версии WDK
  • Это последний публичный WDK, который официально поддерживает связывание с оригинальной MSVCRT (C:\Windows\System32\msvcrt.dll)
  • SHA-256 контрольная сумма: 5edc723b50ea28a070cad361dd0927df402b7a861a036bbcf11d27ebba77657d
  1. Подключите загруженный ISO-образ, затем запустите KitSetup.exe
  2. Пройдите процесс установки, используя параметры по умолчанию

Компиляция

  1. В меню «Пуск» найдите «x64 Free Build Environment» и откройте его
  2. Перейдите (с помощью cd) в LdrLockLiberatorWDK в этом репозитории
  3. Выполните build

Готово! Ваша DLL собрана и готова к использованию!

В качестве альтернативы WDK, компиляция с помощью MinGW, вероятно, тоже будет работать.

Лицензия

MIT License - Авторское право (C) 2023-2024 Elliot Killick [email protected]

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