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

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

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

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

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

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/knight0x07/impulsivedllhijack
Повышение привилегийМеханизмы персистентностиЭксплуатацияRed TeamingЭксплуатация Бинарных Файлов
GitHubknight0x07/impulsivedllhijack

ImpulsiveDLLHijack

Инструмент на C#, который автоматизирует процесс обнаружения и эксплуатации DLL Hijack'ов в целевых бинарных файлах. Обнаруженные пути перехвата могут быть впоследствии использованы в операциях Red Team для обхода EDR.

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться
Репозиторий
5541014 лет назадПроверено Kitploit

ImpulsiveDLLHijack

Инструмент на C#, который автоматизирует процесс обнаружения и эксплуатации DLL-хайджека в целевых бинарных файлах. Обнаруженные пути хайджека могут быть впоследствии использованы в качестве оружия во время операций Red Team для обхода EDR.

1. Методологический подход:

Инструмент в основном автоматизирует следующие этапы, выполняемые для DLL-хайджека:

  • Обнаружение - Поиск потенциально уязвимых путей DLL-хайджека
  • Эксплуатация - Подтверждение того, что подтверждающая DLL была загружена из пути хайджека, что приводит к подтверждению 100% эксплуатабельного DLL-хайджека!

Методология обнаружения:

  • Укажите путь к целевому бинарному файлу для ImpulsiveDLLHijack.exe
  • Автоматизация ProcMon вместе с выполнением целевого бинарного файла для поиска потенциально уязвимых путей для DLL-хайджека.

Методология эксплуатации:

  • Разбор потенциально уязвимых путей DLL-хайджека из CSV, автоматически создаваемого ProcMon.

  • Копирование подтверждающей DLL (в соответствии с архитектурой PE) на пути хайджека один за другим и одновременный запуск целевого бинарного файла на заданный период времени.

  • В процессе DLL-хайджека можно получить следующие выходные данные:

    • Если подтверждающая DLL, находящаяся на потенциально уязвимом пути хайджека, загружается целевым бинарным файлом, мы получаем следующий вывод на консоль, указывающий, что DLL-хайджек был успешным - DLL Hijack Successful -> DLLName: | <Target_binary_name>
    • Если подтверждающая DLL, находящаяся на потенциально уязвимом пути хайджека, не загружается целевым бинарным файлом, мы получаем следующий вывод на консоль, указывающий, что DLL-хайджек был неуспешным - DLL Hijack Unsuccessful -> <DLL_Path>

    Сценарии «Точка входа не найдена»:

    • Если подтверждающая DLL, находящаяся на потенциально уязвимом пути хайджека, не загружается целевым бинарным файлом, поскольку точка входа в DLL отличается от нашей точки входа по умолчанию "DllMain", и возникает ошибка "Entry Point Not Found", мы получаем следующий вывод на консоль, указывающий, что DLL-хайджек был бы возможен, если бы точка входа была правильной -> DLL Hijack Successful -> [Entry Point Not Found - Manual Analysis Required!]: <Hijack_path>
    • Если подтверждающая DLL, находящаяся на потенциально уязвимом пути хайджека, выполняется целевым бинарным файлом даже после того, как точка входа в DLL отличается от нашей точки входа по умолчанию "DllMain" и возникает ошибка "Entry Point Not Found", мы получаем следующий вывод на консоль, указывающий, что DLL-хайджек был успешным, даже если точка входа была неправильной -> DLL Hijack Successful -> [Entry Point Not Found]: <Hijack_path>

Примечание: Ошибка «Entry Point not found» обрабатывается программно, не нужно закрывать MsgBox вручную :) # В противном случае это приведет к сбою кода****

  • После завершения процесса DLL-хайджека для каждого потенциально уязвимого пути хайджека мы получаем окончательный вывод на консоль, а также в текстовый файл (C:\DLLLogs\output_logs.txt) в следующем формате:

    • <DLLHijack_path> --> DLL Hijack Successful (if the Hijack was successful)
    • <DLLHijack_path> --> DLL Hijack Unuccessful (if the Hijack was unsuccessful)
    • <DLLHijack_path> --> DLL Hijack Successful [Entry Point Not Found - Manual Analysis Required] (if the Entry point was not found but can be successful after manual analysis)
    • <DLLHijack_path> --> DLL Hijack Successful [Entry Point Not Found] (if the hijack was successful even after the entry point was not found)
    • <DLLHijack_path> --> Copy: Access to Path is Denied (Access denied)

**Эти подтвержденные пути для DLL-хайджека могут быть впоследствии использованы во время Red Team Engagement для загрузки вредоносной DLL-имплантации через легитимный исполняемый файл (например, OneDrive, Firefox, MSEdge, «Bring your own LOLBINs» и т.д.) и обхода современных EDR, поскольку большинство из них не обнаруживают DLL-хайджекинг, как показали Джордж Каранцас и Константинос Патсакис в их исследовательской работе: https://arxiv.org/abs/2108.10422

2. Предварительные требования:

  • Procmon.exe -> https://docs.microsoft.com/en-us/sysinternals/downloads/procmon
  • Пользовательские подтверждающие DLL :
    • Это файлы DLL, которые помогают инструменту получить подтверждение того, что DLL были успешно загружены из идентифицированного пути хайджека
    • Скомпилированы из проекта MalDLL, предоставленного выше (или используйте предварительно скомпилированные бинарники, если вы мне доверяете!)
    • Имя 32-битной DLL должно быть: maldll32.dll
    • Имя 64-битной DLL должно быть: maldll64.dll
    • Установите пакет NuGet:** PeNet** -> https://www.nuget.org/packages/PeNet/ (предварительное требование при компиляции проекта ImpulsiveDLLHijack)

Примечание: предварительные требования i и ii должны быть размещены в каталоге самого ImpulsiveDLLHijacks.exe.

  • Информация о сборке и настройке:

    • ImpulsiveDLLHijack

      • Клонируйте репозиторий в Visual Studio
      • После загрузки проекта в Visual Studio перейдите в «Project» --> «Manage NuGet packages» --> Найдите и установите «PeNet» -> https://www.nuget.org/packages/PeNet/
      • Соберите проект!
      • ImpulsiveDLLHijack.exe будет находиться в каталоге bin.
    • А для подтверждающих DLL:

      • Клонируйте репозиторий в Visual Studio
      • Соберите проект для x86 и x64
      • Переименуйте сборку x86 в maldll32.dll, а сборку x64 в maldll64.dll
    • Настройка: Скопируйте подтверждающие DLL (maldll32 и maldll64) в каталог ImpulsiveDLLHijack.exe, а затем запустите ImpulsiveDLLHijack.exe :))

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

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

4. Примеры:

  • Целевой исполняемый файл: OneDrive.exe

  • Этап: Обнаружение

first

  • Этап: Эксплуатация

    • Успешные DLL-хайджеки:

    success_one

    • Неудачные DLL-хайджеки:

    unsuccessful

    • DLL не загружается, так как точка входа не идентична! Ручной анализ может сделать успешный DLL-хайджек :)

    entrypoint_not_found

    • DLL-хайджек успешен даже после неидентичной точки входа!

    entry_pointnot found - but dll is executed

  • Этап: Финальные результаты и логи

    • C:\DLLLogs\output_logs.txt:

    output_logs

Спасибо, буду очень признателен за отзывы! - knight!

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