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

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

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

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

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

Категории

Все категории
Loading categories
RefleXXion — RefleXXion — это утилита, предназначенная для обхода user-mode хуков, используемых AV/EPP/EDR и т. п. Чтобы обойти user-mode хуки, она сначала собирает номера системных вызовов (syscall) для NtOpenFile, NtCreateSection, NtOpenSection и NtMapViewOfSection из массива LdrpThunkSignature. | Kitploit
Инструменты/GitHubGitHub/hlldz/reflexxion
Оборонительные ИнструментыПовышение привилегийМеханизмы персистентностиОбход IDS/IPSПост-эксплуатацияRed TeamingArchived
GitHubhlldz/reflexxion

RefleXXion

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

Популярное

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

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

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

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

Смотреть все инструменты →

Описание

RefleXXion — это утилита, предназначенная для обхода user-mode хуков, используемых AV/EPP/EDR и т. п. Чтобы обойти user-mode хуки, она сначала собирает номера системных вызовов (syscall) для NtOpenFile, NtCreateSection, NtOpenSection и NtMapViewOfSection из массива LdrpThunkSignature.

Поделиться

RefleXXion

Введение

RefleXXion — это утилита, предназначенная для обхода пользовательских хуков, используемых AV/EPP/EDR и т.д. Чтобы обойти пользовательские хуки, она сначала собирает номера системных вызовов NtOpenFile, NtCreateSection, NtOpenSection и NtMapViewOfSection, найденных в массиве LdrpThunkSignature. После этого пользователь может выбрать один из двух методов для обхода пользовательских хуков.

Метод 1: читает NTDLL как файл из C:\Windows\System32\ntdll.dll. После парсинга секция .TEXT уже загруженной NTDLL (где установлены хуки) в памяти заменяется секцией .TEXT чистой NTDLL.

Метод 2: NTDLL читается как секция из KnownDlls, \KnownDlls\ntdll.dll (поскольку DLL-файлы кэшируются в KnownDlls как секция). После парсинга секция .TEXT уже загруженной NTDLL (где установлены хуки) в памяти заменяется секцией .TEXT чистой NTDLL.

Подробный поток методологии и всех методов приведен ниже.

RefleXXion Flow

Как использовать

Вы можете открыть и скомпилировать проект с помощью Visual Studio. Весь проект поддерживает архитектуру x64 как для режима Debug, так и для Release.

Решение RefleXXion-EXE генерирует EXE для целей PoC. Если вы хотите понять, как проект работает шаг за шагом, это облегчит вашу задачу. Основная функция содержит определения функций Technique1 и Technique2. Закомментируйте одну из них и скомпилируйте. Не используйте обе функции одновременно.

Решение RefleXXion-DLL генерирует DLL, которую вы внедряете в процесс, для которого хотите обойти пользовательские хуки NTDLL. В начале файла main.cpp находятся определения того, какой метод использовать. Вы можете выбрать один из них и скомпилировать. Не устанавливайте все значения одновременно, задайте только нужный метод. Пример конфигурации приведен ниже.

root@kitploit:~
// Techniques configuration section
#define FROM_DISK 1 // If you set it to 1, the Technique-1 will be used. For more information; https://github.com/hlldz/RefleXXion
#define FROM_KNOWNDLLS 0 // If you set it to 1, the Technique-2 will be used. For more information; https://github.com/hlldz/RefleXXion

Эксплуатационные замечания и вопросы OPSEC

  • В настоящее время RefleXXion поддерживает только архитектуру x64.

  • RefleXXion снимает хуки только с функций NTDLL; возможно, вам также потребуется снять хуки с других DLL (kernel32.dll, advapi32.dll и т.д.). Для этого вы можете легко отредактировать необходимые места в проекте.

  • RefleXXion использует область памяти RWX только в процессе перезаписи секции .TEXT. Для этого процесса новая область памяти не создается: существующая область (секция TEXT уже загруженной NTDLL) получает права RWX, а затем преобразуется в RX.

    root@kitploit:~
    ULONG oldProtection;
    ntStatus = NtProtectVirtualMemory(NtCurrentProcess(), &lpBaseAddress, &uSize, PAGE_EXECUTE_READWRITE, &oldProtection);
    memcpy()...
    ntStatus = NtProtectVirtualMemory(NtCurrentProcess(), &lpBaseAddress, &uSize, oldProtection, &oldProtection);
    

    Примечание: RefleXXion вызывает API NtProtectVirtualMemory поверх чисто установленной NTDLL. Для этого используется функция CustomGetProcAddress, поскольку чистая NTDLL не находится в списке InLoadOrderModuleList, даже если она загружена в память. Поэтому такое решение, как здесь (https://stackoverflow.com/questions/6734095/how-to-get-module-handle-from-func-ptr-in-win32), не сработает. Именно поэтому существует и используется пользовательская функция GetProcAddress.

  • Вы можете загрузить RefleXXion DLL с диска в целевой процесс. Для чувствительной работы, такой как операции Red Team, такой запуск может быть нежелателен. Поэтому вы можете преобразовать RefleXXion DLL в шелл-код с помощью проекта sRDI или интегрировать код RefleXXion в свой собственный загрузчик или проект.

  • Даже если NTDLL (как файл или как секция) перезагружается во внедренный процесс, она не остаётся загруженной. RefleXXion закрывает все открытые дескрипторы (файловые и секционные) для своих процессов.

Особая благодарность и признательность

  • Исследование и PoC по сбору чистых системных вызовов с помощью LdrpThunkSignature от Peter Winter-Smith, @peterwintrsmith. EDR Parallel-asis through Analysis, https://www.mdsec.co.uk/2022/01/edr-parallel-asis-through-analysis/
  • Разбор параллельной загрузки Windows 10 от Jeffrey Tang. https://blogs.blackberry.com/en/2017/10/windows-10-parallel-loading-breakdown
  • https://stackoverflow.com/questions/42789199/why-there-are-three-unexpected-worker-threads-when-a-win32-console-application-s
  • Shellycoat от Upayan, @slaeryan. https://github.com/slaeryan/AQUARMOURY/tree/master/Shellycoat
Скачать инструмент