Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
FalconEye — 内核模式Windows驱动程序,用于实时检测进程注入技术,包括shellcode注入、DLL注入和反射注入,具备系统调用挂钩和异常检测功能。 | Kitploit
工具/GitHubGitHub/rajiv2790/falconeye
防御工具恶意软件分析二进制分析入侵检测
GitHubrajiv2790/falconeye

FalconEye

内核模式Windows驱动程序,用于实时检测进程注入技术,包括shellcode注入、DLL注入和反射注入,具备系统调用挂钩和异常检测功能。

查看仓库
310675年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

FalconEye: Windows进程注入实时检测软件

FalconEye是一款针对Windows端点的实时进程注入检测软件。它是一个内核模式驱动程序,旨在实时捕获进程注入(实时进行)。由于FalconEye运行在内核模式下,它针对试图逃避各种用户模式挂钩的进程注入技术提供了更强且可靠的防御。

您可以查看我们在2021 Blackhat ASIA Arsenal上的演示以及幻灯片。

项目概览

检测覆盖范围

下表展示了各类进程注入技术的实现状态和检测逻辑。WPM代表WriteProcessMemory。如需测试检测功能,可参考参考文献部分。

技术状态检测逻辑使用的POC
Atombombing✓挂钩QueueUserAPC并查找GlobalGetAtom系列函数Pinjectra
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版本还会使用WPM写入DLL路径,该操作也会被检测MInjector, Pinjectra
CreateRemoteThread with MapViewOfFile✓检测新线程是否从浮动代码中创建Pinjectra
Suspend-Inject-Resume✓检测新线程是否从浮动代码中创建(MInjector)。通过WPM写入DLL路径(MInjector)。检测先前挂起的线程上是否设置了上下文(Pinjectra)MInjector, Pinjectra
QueueUserAPC✓通过WPM写入DLL路径MInjector
QueueUserAPC with memset (Stackbombing)✓挂钩QueueUserAPC并查找memsetPinjectra
SetWindowLong (Extra window memory injection)✓挂钩SetWindowLong以获取正在写入的函数指针的地址,并与之前的WPM调用关联以获取浮动代码的地址Pinjectra
Unmap + Overwrite✓若攻击者进程正在从目标进程中取消映射ntdll,则发出警报Pinjectra
Kernel Ctrl Table✓检测WPM是否正在覆盖目标PEB中的KernelCallbackTable字段https://github.com/odzhan/injection/blob/master/kct
USERDATA✓检查WPM目标地址是否在conhost.exe范围内。如果是,则检查conhost中相关的函数指针是否与先前存储的WPM地址匹配https://github.com/odzhan/injection/blob/master/conhost
Ctrl-inject✓检测攻击者是否在目标的KernelBase.dll范围内执行WPMPinjectra
ALPC Callback✓在NtConnectPort调用中提取目标进程ID以连接ALPC端口。对于攻击者-目标进程ID元组,检查之前的WPM调用并应用浮动代码检测Pinjectra
WNF Callback

架构概览

alt text

  1. 该驱动程序是按需加载的驱动程序。
  2. 初始化包括通过libinfinityhook设置回调和系统调用挂钩。
  3. 回调维护一个由跨进程活动(如OpenProcess,但不限于OpenProcess)构建的进程ID映射。
  4. 后续的回调和系统调用挂钩使用此进程ID映射以减少处理中的噪声。作为降噪的一部分,系统调用挂钩会过滤掉同一进程的活动。
  5. 检测逻辑分为子类别:无状态(例如Atombombing)、有状态(Unmap+Overwrite)和浮动代码(来自多种技术的Shellcode)。
  6. 对于有状态检测,系统调用挂钩记录了ActionHistory,该历史记录实现为环形缓冲区。例如,它记录了所有调用者进程与目标进程不同的NtWriteVirtualMemory调用。
  7. 检测逻辑具有通用的异常检测功能,例如浮动代码检测和远程进程中shellcode触发器的检测。回调和系统调用挂钩都调用此通用功能进行实际检测。

注意:我们的重点是检测,而非创建一个高性能的检测引擎。我们将在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. 构建解决方案。这将在src\kernel\FalconEye\x64\Debug或src\kernel\FalconEye\x64\Release下生成FalconEye.sys二进制文件

测试机设置

  1. 在虚拟机中安装Windows 10 Build 1903/1909
  2. 配置虚拟机以测试未签名的驱动程序
    • 使用bcdedit禁用完整性检查:BCDEDIT /set nointegritychecks ON
  3. 在虚拟机中运行Sysinternals的DbgView,或使用WinDbg启动调试连接。

使用方法

  1. 将FalconEye.sys复制到测试机(Windows 10虚拟机)
  2. 使用OSR Loader或类似工具将FalconEye.sys作为“按需加载”驱动程序加载
  3. 运行注入测试工具,如pinjectra、minjector或其他示例
  4. 通过WinDbg或DbgView监控调试日志

参考文献

InfinityHook, 2019

Itzik Kotler and Amit Klein. Process Injection Techniques - Gotta Catch Them All, Blackhat USA Briefings, 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 notification facility, 2018

A paradox: Writing to another process without opening 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后调用UpdateWNFStateData
https://github.com/odzhan/injection/tree/master/wnf
SetWindowsHook✓保存NtUserSetWindowsHookEx挂钩中注册的模块路径。当匹配此路径的模块在不同进程中加载时,生成警报MInjector
GhostWriting✓检测在先前挂起的线程上是否设置了上下文(调用了NtSetContextThread)Pinjectra
Service Control✓WPM覆盖进程(服务)的服务IDhttps://github.com/odzhan/injection/tree/master/svcctrl
Shellcode injection✓新线程从浮动代码启动。通过WPM写入DLL路径MInjector
Image Mapping✓线程从浮动代码启动。通过WPM写入PE头。通过WPM写入DLL路径MInjector
Thread Reuse✓线程从浮动代码启动。通过WPM写入DLL路径MInjector