
Автоматизированное обнаружение, проверка и подтверждение подмены DLL. Превращение локальных неверных конфигураций в вооруженные, подтвержденные пути атаки.
Автоматизированное обнаружение, проверка и подтверждение DLL-хайжекинга
Превращение локальных ошибок конфигурации в подтверждённые векторы атак.
DLLHijackHunter — это автоматизированный инструмент обнаружения DLL-хайжекинга в Windows, который выходит за рамки статического анализа. Он обнаруживает, проверяет и подтверждает возможности DLL-хайжекинга с помощью многоэтапного конвейера:
Большинство инструментов DLL-хайжекинга останавливаются на этапе «эта DLL может быть хайжекнута». DLLHijackHunter пытается проверить её, сопоставить с известной разведданной об эксплойтах и подтвердить реальные пути выполнения там, где это возможно.
flowchart TB
subgraph Phase1["Фаза 1: Обнаружение"]
SE["Статический движок<br/>Службы, задачи, автозагрузка,<br/>COM, ключи Run"]
AE["Движок AutoElevate<br/>Манифест + обход UAC через COM"]
PE["Анализатор PE<br/>Таблицы импорта, отложенные загрузки,<br/>манифесты, экспорты"]
ETW["Движок ETW<br/>Мониторинг загрузки DLL<br/>в реальном времени"]
SO["Калькулятор<br/>порядка поиска"]
end
subgraph Phase2["Фаза 2: Конвейер фильтрации"]
direction LR
HG["Жёсткие фильтры<br/>(исключение кандидата)"]
SG["Мягкие фильтры<br/>(корректировка доверия)"]
end
subgraph Phase3["Фаза 3: Проверка загрузки (--verify-load)"]
LP["LoadProbe<br/>Тест загрузки в дочернем процессе<br/>Пробная DLL размещается и удаляется"]
end
subgraph Phase4["Фаза 4: Канарейка"]
CB["Конструктор DLL-канарейки"]
TE["Исполнитель триггеров"]
VF["Проверка"]
end
subgraph Phase5["Фаза 5: Вывод"]
SC["Многоуровневая оценка"]
RC["Отчёт в консоль"]
RJ["Отчёт в JSON"]
RH["Отчёт в HTML"]
end
SE --> PE --> SO
AE --> PE
ETW --> SO
SO --> Phase2
HG --> SG
Phase2 --> Phase3
Phase3 --> Phase4
CB --> TE --> VF
Phase4 --> Phase5
| Тип | Описание | Скрытность | Статус |
|---|---|---|---|
| Phantom | DLL не существует нигде на диске | Высокая | Реализовано |
| Search Order | Размещение DLL раньше в порядке поиска Windows | Высокая | Реализовано |
| Side-Loading | Злоупотребление загрузкой легитимным приложением DLL из своей директории | Высокая | Реализовано (путь AutoElevate copy-to-temp) |
| .local Redirect | Хайджек через перенаправление директории .local | Высокая | Реализовано |
| ENV PATH | Использование доступных для записи директорий в системном PATH | Высокая | Реализовано (подобранная карта служб/DLL) |
| AppInit DLLs | Злоупотребление реестром AppInit_DLLs | Низкая | Реализовано |
| AppCert DLLs | Злоупотребление реестром AppCertDLLs (загружается в каждый вызов CreateProcess/WinExec) | Низкая | Реализовано |
| CWD | Хайджек через текущую рабочую директорию | Низкая | Запланировано — в настоящее время не генерируется ни одним путём обнаружения |
Записи IFEO Debugger перечисляются, а указанный исполняемый файл анализируется на предмет импорта DLL, но выделенного типа хайджека IFEO/KnownDLL-bypass не существует — они не заявляются как отдельные детекции.
DLLHijackHunter включает специализированное обнаружение обхода UAC:
System32 и SysWOW64 на наличие EXE с <autoElevate>true</autoElevate> во встроенных манифестахHKLM\SOFTWARE\Classes\CLSID на наличие COM-объектов с Elevation\Enabled=1SetDllDirectory или SetDefaultDllDirectories, симулирует путь атаки «копирование EXE в доступную для записи папку + размещение DLL»Resources/hijacklibs.json. Совпадение повышает доверие и связывает находку со страницей ссылок HijackLibs; отсутствие совпадения ничего не значит. Набор данных управляется данными — обновите его, повторно загрузив https://hijacklibs.net/api/hijacklibs.json поверх этого ресурса (без изменения кода). Набор данных © проект HijackLibs и его участники.PATH и генерирует кандидатов на хайджек для подобранной карты нативных служб Windows, известных тем, что ищут отсутствующие DLL в PATHКонвейер снижает количество ложных срабатываний в два этапа:
Жёсткие фильтры
api-ms-*, ext-ms-*)Users / Authenticated Users / Everyone, а также защищённые от утечек служебные учётные записи ниже администратора, такие как LOCAL SERVICE/NETWORK SERVICE) имеет эффективные права записи. Важно, что это вычисляется независимо от токена, под которым работает инструмент, поэтому запуск с повышенными привилегиями не делает System32/Program Files доступными для записи. Именно это делает запуски с повышенными привилегиями значимыми для триажа LPE.Мягкие фильтры
LoadLibraryExВместо предположений DLLHijackHunter пытается доказать работоспособность хайджеков:
sequenceDiagram
participant H as DLLHijackHunter
participant B as Конструктор DLL-канарейки
participant T as Исполнитель триггеров
participant V as Целевой исполняемый файл