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

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

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

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

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

Категории

Все категории
Loading categories
DLLHSC — Автоматизированный сканер для поиска кандидатов на перехват порядка поиска DLL в исполняемых файлах Windows, с функциями разбора таблицы импорта, перечисления модулей во время выполнения и перехвата API с помощью Microsoft Detours. | Kitploit
Инструменты/GitHubGitHub/ctxis/dllhsc
ЭксплуатацияТестирование на ПроникновениеАнализ Бинарных ФайловРазработка Полезной Нагрузки
GitHubctxis/dllhsc

DLLHSC

Автоматизированный сканер для поиска кандидатов на перехват порядка поиска DLL в исполняемых файлах Windows, с функциями разбора таблицы импорта, перечисления модулей во время выполнения и перехвата API с помощью Microsoft Detours.

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

Популярное

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

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

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

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

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

DLLHSC

DLL Hijack SCanner — инструмент для генерации зацепок и автоматизации поиска кандидатов для перехвата порядка поиска DLL (DLL Search Order Hijacking).

Содержание этой страницы

  • Содержимое этого репозитория
  • Режимы работы
  • Инструкция по компиляции и запуску
  • Меню помощи
  • Примеры запуска
  • Обратная связь

Содержимое этого репозитория

В этом репозитории размещены файлы проекта Visual Studio для инструмента (DLLHSC), файл проекта для функциональности перехвата API (detour), файл проекта для полезной нагрузки (payload) и, наконец, скомпилированные исполняемые файлы для архитектур x86 и x64 (в разделе release этого репозитория). Код написан и скомпилирован с помощью Visual Studio Community 2019.

Если вы решите скомпилировать инструмент из исходников, вам потребуется скомпилировать проекты DLLHSC, detour и payload. DLLHSC реализует основную функциональность этого инструмента. Проект detour генерирует DLL, используемую для перехвата API. Проект payload генерирует DLL, используемую в качестве доказательства концепции для проверки, может ли тестируемый исполняемый файл загрузить её через перехват порядка поиска. Сгенерированная полезная нагрузка должна быть помещена в тот же каталог, что и DLLHSC, и переименована в payload32.dll для архитектуры x86 и payload64.dll для архитектуры x64.

Режимы работы

Инструмент реализует три режима работы, описанные ниже.

Облегчённый режим

Загружает образ исполняемого файла в память, анализирует таблицу импорта и затем заменяет любую DLL, указанную в таблице импорта, на DLL-полезную нагрузку.

Инструмент помещает в каталог приложения только тот модуль (DLL), который отсутствует в каталоге приложения, не принадлежит к WinSxS и не входит в список KnownDLLs.

DLL-полезная нагрузка при выполнении создаёт файл по следующему пути: C:\Users\%USERNAME%\AppData\Local\Temp\DLLHSC.tmp в качестве доказательства выполнения. Инструмент запускает приложение и сообщает, была ли выполнена DLL-полезная нагрузка, проверяя наличие временного файла. Поскольку некоторые исполняемые файлы импортируют функции из загружаемых ими DLL, могут появляться окна сообщений об ошибках, когда предоставленная DLL не экспортирует эти функции и, таким образом, не удовлетворяет зависимостям предоставленного образа. Однако появление окон сообщений указывает на то, что DLL может быть хорошим кандидатом для выполнения полезной нагрузки, если зависимости будут удовлетворены. В этом случае требуется дополнительный анализ. Заголовки таких окон могут содержать строки: Ordinal Not Found или Entry Point Not Found. DLLHSC ищет окна, содержащие эти строки, закрывает их сразу после появления и сообщает результаты.

Режим списка модулей

Создаёт процесс с предоставленным образом исполняемого файла, перечисляет модули, загруженные в адресное пространство этого процесса, и сообщает результаты после применения фильтров.

Инструмент сообщает только о модулях, загруженных из системного каталога (System directory) и не входящих в список KnownDLLs. Полученные результаты являются зацепками, требующими дополнительного анализа. Аналитик может затем поместить отмеченные модули в каталог приложения и проверить, загрузит ли приложение предоставленный модуль вместо оригинального.

Режим времени выполнения

Перехватывает API LoadLibrary и LoadLibraryEx с помощью Microsoft Detours и сообщает о модулях, загружаемых во время выполнения.

Каждый раз, когда сканируемое приложение вызывает LoadLibrary или LoadLibraryEx, инструмент перехватывает вызов и записывает запрошенный модуль в файл C:\Users\%USERNAME%\AppData\Local\Temp\DLLHSCRTLOG.tmp. Если LoadLibraryEx вызывается с флагом LOAD_LIBRARY_SEARCH_SYSTEM32, вывод в файл не производится. После завершения всех перехватов инструмент считывает файл и выводит результаты. Для дальнейшего анализа представляют интерес модули, отсутствующие в ключе реестра KnownDLLs, модули, отсутствующие в системном каталоге, и модули без полного пути (для этих модулей загрузчик применяет обычный порядок поиска).

Инструкция по компиляции и запуску

Если вы решите скомпилировать инструмент из исходников, рекомендуется делать это в Visual Studio 2019. Для корректной работы инструмента проекты DLLHSC, detour и payload должны быть скомпилированы для одной архитектуры, а затем помещены в один каталог. Обратите внимание, что DLL, сгенерированная из проекта payload, должна быть переименована в payload32.dll для 32-битной архитектуры или payload64.dll для 64-битной архитектуры.

Меню помощи

Меню помощи данного приложения

root@kitploit:~
NAME
        dllhsc - DLL Hijack SCanner

SYNOPSIS
        dllhsc.exe -h

        dllhsc.exe -e <executable image path> (-l|-lm|-rt) [-t seconds]

DESCRIPTION
        DLLHSC scans a given executable image for DLL Hijacking and reports the results

        It requires elevated privileges

OPTIONS
        -h, --help
                display this help menu and exit

        -e, --executable-image
                executable image to scan

        -l, --lightweight
                parse the import table, attempt to launch a payload and report the results

        -lm, --list-modules
                list loaded modules that do not exist in the application's directory

        -rt, --runtime-load
                display modules loaded in run-time by hooking LoadLibrary and LoadLibraryEx APIs

        -t, --timeout
                number of seconds to wait for checking any popup error windows - defaults to 10 seconds

Примеры запуска

В этом разделе приведены примеры того, как можно запустить DLLHSC, и результаты, которые он сообщает. Для этой цели использовалась легитимная утилита Microsoft OleView.exe (MD5: D1E6767900C85535F300E08D76AAC9AB). Для лучших результатов рекомендуется сканировать предоставленный образ исполняемого файла в его каталоге установки.

Флаг -l анализирует таблицу импорта предоставленного исполняемого файла, применяет фильтры и пытается «вооружить» импортированные модули, помещая DLL-полезную нагрузку в текущий каталог приложения. Сканируемый исполняемый файл может показывать окно ошибки, когда зависимости для DLL-полезной нагрузки (экспортируемые функции) не удовлетворены. В этом случае появляется окно сообщения об ошибке. По умолчанию DLLHSC проверяет в течение 10 секунд (или в течение количества секунд, указанного пользователем с флагом -t), было ли открыто окно сообщения. Окно сообщения об ошибке указывает, что если зависимости будут удовлетворены, модуль можно «вооружить».

На следующем скриншоте показано окно сообщения об ошибке, возникающее при загрузке OleView.dll через DLL-полезную нагрузку:

зависимость

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

импортированные_модули

Флаг -lm запускает предоставленный исполняемый файл и выводит модули, которые он загружает и которые не принадлежат ни списку KnownDLLs, ни зависимостям WinSxS. Этот режим предназначен для того, чтобы дать представление о DLL, которые могут быть использованы в качестве полезной нагрузки, и существует только для генерации зацепок для аналитика.

загруженные_модули

Флаг -rt выводит модули, которые предоставленный образ исполняемого файла загружает в своё адресное пространство при запуске в качестве процесса. Это достигается перехватом API LoadLibrary и LoadLibraryEx с помощью Microsoft Detours.

модули_загруженные_во_время_выполнения

Обратная связь

Для любой обратной связи по этому инструменту используйте раздел Issues на GitHub.

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