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

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

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

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

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

Категории

Все категории
Loading categories
Chimera — Автоматизированный инструмент для подгрузки DLL с возможностями обхода EDR | Kitploit
Инструменты/GitHubGitHub/georgesotiriadis/chimera
Генерация полезной нагрузкиЭксплуатацияШелл-кодRed Teaming
GitHubgeorgesotiriadis/chimera

Chimera

Автоматизированный инструмент для подгрузки DLL с возможностями обхода EDR

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

Популярное

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

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

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

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

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

Chimera Unlea$ed 

Описание инструмента


Хотя подгрузка DLL (DLL sideloading) может использоваться в легитимных целях, таких как загрузка необходимых библиотек для работы программы, она также может применяться и в злонамеренных целях. Злоумышленники могут использовать подгрузку DLL для выполнения произвольного кода в целевой системе, часто эксплуатируя уязвимости в легитимных приложениях, которые используются для загрузки DLL.

Чтобы автоматизировать процесс подгрузки DLL и сделать его более эффективным, был создан Chimera — инструмент, включающий методы обхода для обхода продуктов EDR/AV. Этот инструмент может автоматически шифровать шелл-код с помощью XOR со случайным ключом и создавать шаблонные образы, которые можно импортировать в Visual Studio для создания вредоносной DLL.

Кроме того, используются динамические системные вызовы из SysWhispers3 и модифицированная ассемблерная версия для обхода шаблонов, которые ищет EDR; добавляются случайные NOP-ледники и перемещаются регистры. Также применяется инъекция Early Bird для внедрения шелл-кода в другой процесс, который пользователь может указать, с механизмами обхода песочницы, такими как проверка жесткого диска и проверка на отладку процесса. Наконец, в загрузчик добавлена временная атака, использующая ожидаемые таймеры для задержки выполнения шелл-кода.

Этот инструмент был протестирован и показал свою эффективность в обходе продуктов EDR/AV и выполнении произвольного кода в целевой системе.

Обновленная версия Chimera Unleashed продемонстрировала значительные успехи в обходе как статического, так и динамического анализа, особенно в контексте системы Endpoint Detection and Response (EDR) Microsoft 365. Методы подгрузки DLL инструмента, даже при применении к известным бинарным файлам, таким как OneDrive, успешно избегали обнаружения. Однако стоит отметить, что хотя аспект подгрузки DLL остался незамеченным, используемый инструментом процесс инъекции Early Bird был идентифицирован системой EDR. Это указывает на область для дальнейшего улучшения общей скрытности инструмента.

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


Ключевые обновления и функции:

  • Переработанная структура: Вся программа была реструктурирована для упрощения разработки и будущего сопровождения.
  • Интеграция полиморфного кода: Включение полиморфного кода значительно повысило возможности обхода и сделало инструмент более устойчивым к статическому анализу.
  • Интеграция SysWhispers 3: Переход с SysWhispers 2 на модифицированную версию SysWhispers 3. Это обновление улучшает способность инструмента обходить механизмы распознавания шаблонов, используемые системами EDR, с помощью динамических системных вызовов и модифицированных ассемблерных техник.
  • AES-шифрование: Реализовано AES-шифрование для защиты шелл-кода, что добавляет дополнительный уровень безопасности и обфускации.
  • Инъекция Early Bird: Инструмент использует методы инъекции Early Bird, что позволяет более скрытно выполнять код в целевых процессах.
  • Module Stomping: Будет добавлено в будущем; также вы можете реализовать свой собственный метод инъекции кода в инструмент.

Chimera написан на Python3, и нет необходимости устанавливать дополнительные зависимости.

В настоящее время Chimera поддерживает два варианта DLL: либо Microsoft Teams, либо Microsoft OneDrive.

Можно создать userenv.dll — отсутствующую DLL из Microsoft Teams — и поместить её в конкретную папку:

⁠%USERPROFILE%/Appdata/local/Microsoft/Teams/current

Для Microsoft OneDrive скрипт использует DLL версии, что распространено, так как она отсутствует в бинарном файле, например, onedriveupdater.exe.

Аргументы командной строки

Chimera Unleashed использует argparser для разбора аргументов командной строки. Доступны следующие аргументы:

  • --raw или -r: Путь к файлу, содержащему шелл-код. Обязательный.
  • --path или -p: Путь для вывода файла шаблона C. Обязательный.
  • --pname или -n: Имя процесса для инъекции шелл-кода. Обязательный.
  • --dexports или -d: Укажите, какие экспорты DLL использовать ('teams' или 'onedrive'). Обязательный.
  • --enc или -e: Укажите предпочитаемое шифрование (XOR / AES). Обязательный.
  • --inj или -i: Укажите предпочитаемую технику инъекции (EB / MS). Обязательный.
  • --rshell или -s: [Необязательно] Заменить имя переменной шелл-кода на уникальное. По умолчанию 'encoded_shell'.

Пример использования: python Chimera.py --raw <path_to_shellcode> --path <output_path> --pname <process_name> --dexports <exports_file> --enc AES --inj EB --rshell my_shellcode

Полезное примечание

После завершения компиляции будет создана DLL, которая должна содержать либо "version.dll" для OneDrive, либо "userenv.dll" для Microsoft Teams. Затем необходимо переименовать оригинальные DLL.

Например, оригинальную "userenv.dll" следует переименовать в "tmpB0F7.dll", а оригинальную "version.dll" — в "tmp44BC.dll". Кроме того, вы можете изменить имя прокси- DLL по желанию, изменяя исходный код экспортов DLL вместо использования имен по умолчанию из скрипта.

Файл code.h содержит шелл-код.

Настройка проекта Visual Studio


Шаг 1: Создание нового проекта Visual Studio с шаблоном DLL

  1. Запустите Visual Studio и нажмите "Создать новый проект" или перейдите в "Файл" -> "Создать" -> "Проект".
  2. В окне шаблонов проектов выберите "Visual C++" слева.
  3. Выберите "Пустой проект" из доступных шаблонов.
  4. Укажите подходящее имя и расположение проекта, затем нажмите "ОК".
  5. В окне свойств проекта перейдите в "Свойства конфигурации" -> "Общие" и установите "Тип конфигурации" в "Динамическая библиотека (.dll)".
  6. Настройте другие параметры проекта по желанию и сохраните проект.

Шаг 2: Импорт файлов в проект Visual Studio

  1. Найдите папку "chimera_automation", содержащую необходимые образы.
  2. Откройте папку и найдите следующие файлы: main.c, syscalls.c, syscallsstubs.std.x64.asm.
  3. В Visual Studio щелкните правой кнопкой мыши по проекту на панели "Обозреватель решений" и выберите "Добавить" -> "Существующий элемент".
  4. Перейдите к расположению каждого файла (main.c, syscalls.c, syscallsstubs.std.x64.asm) и выберите их по одному. Нажмите "Добавить", чтобы импортировать их в проект.
  5. Создайте папку с именем "header_files" в каталоге проекта, если она еще не существует.
  6. Найдите файл заголовка "syscalls_mem.h" в папке "header_files" каталога "chimera_automation".
  7. Щелкните правой кнопкой мыши по папке "header_files" на панели "Обозреватель решений" в Visual Studio и выберите "Добавить" -> "Существующий элемент".
  8. Перейдите к расположению "syscalls_mem.h" и выберите его. Нажмите "Добавить", чтобы импортировать его в проект.

Шаг 3: Настройка сборки

  1. В окне свойств проекта перейдите в "Свойства конфигурации" -> "Настройки сборки".
  2. Нажмите кнопку "Настройки сборки", чтобы открыть диалоговое окно настройки сборки.

Шаг 4: Включение MASM

  1. В диалоговом окне настройки сборки установите флажок рядом с "masm", чтобы включить его.
  2. Нажмите "ОК", чтобы закрыть диалоговое окно настройки сборки.

Шаг 5: 

  1. Щелкните правой кнопкой мыши по файлу ассемблера → свойства и выберите следующее
  2. Исключить из сборки → Нет
  3. Содержимое → Да
  4. Тип элемента → Microsoft Macro Assembler

Окончательная настройка проекта

Оптимизация компилятора


Шаг 1: Изменение оптимизации

  1. В Visual Studio выберите Проект → свойства
  2. C/C++ → Оптимизация и измените на следующее

Шаг 2: Удаление отладочной информации

  1. В Visual Studio выберите Проект → свойства
  2. Компоновщик → Отладка → Создавать отладочную информацию → Нет

Участники

Первоначальный автор:

  • George Sotiriadis
    • Первоначальный выпуск и концепция.
    • Рефакторинг кода в обновленной версии.
    • Модифицированный SysWhispers3 в обновленной версии.

Участник:

  • Efstratios Chatzoglou
    • Добавлен полиморфный код, обфускатор и AES-шифрование в обновленной версии.
    • Участвовал в рефакторинге кода и дальнейшей разработке.

Отказ от ответственности:


В максимальной степени, разрешенной применимым законодательством, я (George Sotiriadis) и/или аффилированные лица, предоставившие контент в мой репозиторий, не несут ответственности за любые косвенные, случайные, особые, косвенные или штрафные убытки, а также за любые потери прибыли или доходов, возникшие прямо или косвенно, или за любые потери данных, использования, деловой репутации или других нематериальных активов, возникшие в результате (i) вашего доступа к этому ресурсу и/или невозможности доступа к этому ресурсу; (ii) любого поведения или контента любой третьей стороны, на которую ссылается этот ресурс, включая, без ограничений, любые клеветнические, оскорбительные или незаконные действия других пользователей или третьих сторон; (iii) любого контента, полученного из этого ресурса.

Ссылки


https://www.ired.team/offensive-security/code-injection-process-injection/early-bird-apc-queue-code-injection

https://evasions.checkpoint.com/

https://github.com/Flangvik/SharpDllProxy

https://github.com/jthuraisamy/SysWhispers2

https://systemweakness.com/on-disk-detection-bypass-avs-edr-s-using-syscalls-with-legacy-instruction-series-of-instructions-5c1f31d1af7d

https://github.com/Mr-Un1k0d3r

Скачать инструмент
  • --rxor или -x: [Необязательно] Заменить имя шифрования XOR на уникальное. По умолчанию 'do_xor'.
  • --rkey или -k: [Необязательно] Заменить имя переменной ключа на уникальное. По умолчанию 'key'.
  • --rsleep или -z: [Необязательно] Общее время сна для включения во время выполнения (в секундах). По умолчанию 4000.
  • --size или -f: [Необязательно] Размер файла мусорных данных в КБ. Ноль (0) отключено, единица (1) — случайный размер файла. По умолчанию 0.