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

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

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

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

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

Категории

Все категории
Loading categories
FalconEye — Драйвер режима ядра Windows для обнаружения в реальном времени техник внедрения процессов, включая внедрение шелл-кода, DLL и рефлективное внедрение, с перехватом системных вызовов (syscall hooking) и обнаружением аномалий. | Kitploit
Инструменты/GitHubGitHub/rajiv2790/falconeye
Оборонительные ИнструментыАнализ вредоносных программАнализ Бинарных ФайловОбнаружение Вторжений
GitHubrajiv2790/falconeye

FalconEye

Драйвер режима ядра Windows для обнаружения в реальном времени техник внедрения процессов, включая внедрение шелл-кода, DLL и рефлективное внедрение, с перехватом системных вызовов (syscall hooking) и обнаружением аномалий.

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

Популярное

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

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

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

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

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

FalconEye: Программное обеспечение для обнаружения внедрения процессов в реальном времени в Windows

FalconEye — это программное обеспечение для обнаружения конечных точек Windows для внедрения процессов в реальном времени. Это драйвер режима ядра, предназначенный для обнаружения внедрения процессов по мере их выполнения (в реальном времени). Поскольку FalconEye работает в режиме ядра, он обеспечивает более сильную и надежную защиту от методов внедрения процессов, которые пытаются обойти различные перехватчики пользовательского режима.

Вы можете ознакомиться с нашей презентацией на 2021 Blackhat ASIA Arsenal и слайдами.

Обзор проекта

Охват обнаружения

В таблице ниже показаны статус реализации и логика обнаружения различных методов внедрения процессов. WPM означает WriteProcessMemory. Для тестирования обнаружения можно обратиться к разделу ссылок.

ТехникаСтатусДетекцияИспользуемый POC
Atombombing✓Перехват QueueUserAPC и поиск функций семейства GlobalGetAtomPinjectra
Instrumentation callback injection✓Обнаружение создания нового потока из плавающего кодаhttps://github.com/antonioCoco/Mapping-Injection
Reflective DLL Injection✓Обнаружение создания нового потока из плавающего кода и записи PE-заголовка в жертвуMInjector
PROPagate✓Перехват SetProp для получения адреса записываемого свойства и соотнесение с предыдущими вызовами WPM для получения адреса плавающего кодаPinjectra
Process Hollowing✓Обнаружено по записи PE-заголовка в память целевого процессаMInjector
CreateRemoteThread with LoadLibrary✓Новый поток с начальным адресом, указывающим на LoadLibrary. Версия MInjector также записывает путь к DLL через WPM, что также обнаруживаетсяMInjector, Pinjectra
CreateRemoteThread with MapViewOfFile✓Обнаружение создания нового потока из плавающего кодаPinjectra
Suspend-Inject-Resume✓Обнаружение создания нового потока из плавающего кода (MInjector). Запись пути к DLL через WPM (MInjector). Обнаружение установки контекста на ранее приостановленный поток (Pinjectra)MInjector, Pinjectra
QueueUserAPC✓Путь к DLL записывается через WPMMInjector
QueueUserAPC with memset (Stackbombing)✓Перехват QueueUserAPC и поиск memsetPinjectra
SetWindowLong (Extra window memory injection)✓Перехват SetWindowLong для получения адреса записываемого указателя на функцию и соотнесение с предыдущими вызовами WPM для получения адреса плавающего кодаPinjectra
Unmap + Overwrite✓Предупреждение, если процесс атакующего отображает ntdll из жертвыPinjectra
Kernel Ctrl Table✓Обнаружение перезаписи поля KernelCallbackTable в PEB жертвы через WPMhttps://github.com/odzhan/injection/blob/master/kct
USERDATA

Обзор архитектуры

alt text

  1. Драйвер загружается по требованию.
  2. Инициализация включает настройку обратных вызовов и перехватчиков системных вызовов через libinfinityhook.
  3. Обратные вызовы поддерживают карту PID, построенную на основе межпроцессной активности, такой как OpenProcess, но не ограничиваясь OpenProcess.
  4. Последующие обратные вызовы и перехватчики системных вызовов используют эту карту PID для уменьшения шума при обработке. В рамках снижения шума перехватчики системных вызовов фильтруют активность внутри одного процесса.
  5. Логика обнаружения разделена на подкатегории: без сохранения состояния (например, Atombombing), с сохранением состояния (Unmap+Overwrite) и плавающий код (шеллкод из нескольких техник).
  6. Для обнаружений с сохранением состояния перехватчики системных вызовов записывают историю действий (ActionHistory), реализованную как кольцевой буфер. Например, записываются все вызовы NtWriteVirtualMemory, где процесс-вызывающий отличается от целевого процесса.
  7. Логика обнаружения содержит общую функциональность обнаружения аномалий, такую как обнаружение плавающего кода и обнаружение триггеров шеллкода в удаленных процессах. Как обратные вызовы, так и перехватчики системных вызовов вызывают эту общую функциональность для фактического обнаружения.

ПРИМЕЧАНИЕ: Наш фокус был на обнаружении, а не на создании производительного движка. Мы продолжим эти усилия после презентации на BlackHat.

Файлы

root@kitploit:~
.
├── src 
│   ├── FalconEye ---------------------------# FalconEye пользовательское и ядерное пространство
│   └── libinfinityhook ---------------------# Реализация ядерных хуков
├── 2021BHASIA_FalconEye.pdf
└── README.md

Начало работы

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

  1. Windows 10 Build 1903/1909
  2. Microsoft Visual Studio 2019 и новее
  3. Программное обеспечение виртуализации, такое как VMware, Hyper-V (опционально)

Установка

Сборка

  1. Откройте решение в Visual Studio 2019.
  2. Выберите x64 в качестве платформы сборки.
  3. Соберите решение. Это должно сгенерировать бинарный файл FalconEye.sys в src\kernel\FalconEye\x64\Debug или src\kernel\FalconEye\x64\Release.

Настройка тестовой машины

  1. Установите Windows 10 Build 1903/1909 в виртуальную машину.
  2. Настройте ВМ для тестирования неподписанного драйвера:
    • С помощью bcdedit отключите проверки целостности: BCDEDIT /set nointegritychecks ON
  3. Запустите DbgView из Sysinternals на ВМ или начните отладку с помощью WinDbg.

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

  1. Скопируйте FalconEye.sys на тестовую машину (Windows 10 ВМ).
  2. Загрузите FalconEye.sys как драйвер с загрузкой по требованию с помощью OSR Loader или аналогичных инструментов.
  3. Запустите инструменты тестирования внедрения, такие как pinjectra, minjector или другие примеры.
  4. Отслеживайте отладочные логи через WinDbg или DbgView.

Ссылки

InfinityHook, 2019

Itzik Kotler and Amit Klein. Process Injection Techniques - Gotta Catch Them All, Blackhat USA Briengs, 2019

Pinjectra, 2019

Mapping-Injection, 2020

Atombombing: Brand new code injection for windows, 2016

Propagate - a new code injection trick, 2017

Windows process injection: Extra window bytes, 2018

Pavel Asinovsky. Diving into zberp's unconventional process injection technique, 2016

Rotem Kerner. Ctrl-inject, 2018

Windows process injection: Consolewindowclass, 2018

Windows process injection: Windows notication facility, 2018

A paradox: Writing to another process without openning it nor actually writing to it, 2007

Windows process injection: Service control handler, 2018

Marcos Oviedo. Memhunter - Automated hunting of memory resident malware at scale. Defcon Demo Labs, 2019

Условия лицензии

FalconEye предоставляется вам по лицензии с открытым исходным кодом Apache 2.0.

Скачать инструмент
✓
Проверить, находится ли целевой адрес WPM в диапазоне conhost.exe. Если да, проверить, совпадают ли соответствующие указатели функций из conhost с ранее сохраненным адресом WPM
https://github.com/odzhan/injection/blob/master/conhost
Ctrl-inject✓Обнаружение WPM в диапазоне KernelBase.dll жертвыPinjectra
ALPC Callback✓Извлечение PID жертвы из вызовов NtConnectPort к порту ALPC. Для пары атакующий-жертва проверить предыдущие вызовы WPM и применить обнаружение плавающего кодаPinjectra
WNF Callback✓WPM с последующим вызовом UpdateWNFStateDatahttps://github.com/odzhan/injection/tree/master/wnf
SetWindowsHook✓Сохранить пути модулей, зарегистрированных в хуке NtUserSetWindowsHookEx. Позже, когда модуль, соответствующий этому пути, загружается в другом процессе, генерировать предупреждениеMInjector
GhostWriting✓Обнаружение установки контекста (вызов NtSetContextThread) на ранее приостановленный потокPinjectra
Service Control✓WPM перезаписывает Service IDE процесса (службы)https://github.com/odzhan/injection/tree/master/svcctrl
Shellcode injection✓Новый поток запущен из плавающего кода. Путь к DLL записывается через WPMMInjector
Image Mapping✓Поток запущен из плавающего кода. PE-заголовок записывается через WPM. Путь к DLL записывается через WPMMInjector
Thread Reuse✓Поток запущен из плавающего кода. Путь к DLL записывается через WPMMInjector