Kudaes/Puzzle

GitHub: Kudaes/Puzzle

Puzzle 是一组滥用 Windows 微筛选器功能的 PoC 工具集,用于在被监控环境中隐蔽投递和执行恶意软件,绕过静态分析与终端检测。

Stars: 58 | Forks: 6

# Puzzle Puzzle 是一组 PoC 和实用工具集,能够在被监控的环境中执行恶意软件时,利用由多个 Windows 微筛选器提供的功能。本仓库的核心概念旨在演示,通过滥用 Windows 微筛选器架构以及这些设备的不同加载高度,我们在红蓝对抗中投递和执行恶意软件时,如何实现一定程度的隐蔽与隐藏。 本仓库中提供的各种“拼图碎片”描述如下: - **SyncProvider**:滥用由 `CldFlt` 微筛选器提供的 [Cloud Filter API](https://learn.microsoft.com/en-us/windows/win32/api/_cloudapi/) 功能的项目,可将恶意软件写入磁盘而不被静态分析。 - **WOFProvider**:利用由 `Wof` 微筛选器提供的 [wofapi](https://learn.microsoft.com/en-us/windows/win32/api/wofapi/) 功能的解决方案,将 WIM 文件指定为外部数据源。它提供了与 **SyncProvider** 类似的功能。 - **BindLinks**:允许创建和删除 `bindlinks` 的解决方案,该功能由 `bindflt` 微筛选器提供。它增加了一层隐蔽性,使得恶意软件在运行时更难被分析。 - **IdMapper**:使通过 FRN(File Reference Number,文件引用号)加载和执行隐藏在 `bindlink` 背后的二进制文件变得更加容易的解决方案。 - **Scripts**:提供 Python 脚本的文件夹,包含用于执行本仓库所述技术的实用工具。 - **Utils**:Rust 解决方案,提供对 **Scripts** 文件夹中实用工具的补充。 除了本仓库的总体说明外,三个主要项目(**SyncProvider**、**BindLinks** 和 **WOFProvider**)还有它们各自的文档。强烈建议事先按相同顺序阅读这三个 README 文件,以了解本仓库背后的完整概念以及此处提供的不同解决方案的推荐组合方式。 本仓库中的代码已在 Windows 10 和 11 及其对应的 Windows Server 版本上进行了测试。上述三个微筛选器在几乎所有构建版本中都应存在,但您始终可以使用 `fltmc` 命令来验证它们是否存在。 ## 构建 本仓库提供了两个构建脚本:`build.cmd` 和 `build.ps1`。这两个脚本均通过 `cargo` 工具一次性编译所有的 Rust 解决方案(必须事先在计算机上安装 Rust 环境)。编译后的二进制文件存储在仓库根目录的 `bin` 文件夹中: ``` C:\Path\To\Puzzle> build.cmd clean # Clean all previous builds, if any C:\Path\To\Puzzle> build.cmd build release # Build all Rust solutions in release mode ``` ## SyncProvider `需要管理员权限:否` **SyncProvider** 是一个恶意的同步引擎,使用 `Cloud Filter API` 将恶意软件投递到磁盘。该解决方案允许将恶意软件写入磁盘而不被静态分析,在某些情况下,还可以规避某些终端安全解决方案在执行 payload 时执行的部分动态分析。 有关该工具的工作原理及其推荐使用方式的详细信息,请先参阅[此解决方案](SyncProvider/README.md)的 README,然后查阅 [BindLinks](BindLinks/README.md) 项目的文档。 ## BindLinks `需要管理员权限:是` 本项目允许创建和删除 `bindlinks`。正如[解决方案 README](BindLinks/README.md) 中所记录的那样,我们可以使用此功能为我们的恶意软件增加额外的隐蔽层,使其在执行期间不被察觉,并防止其内容被扫描。 无论我们是使用 **SyncProvider** 还是 **WOFProvider** 将恶意软件写入磁盘,都推荐使用此解决方案,以增加额外的隐蔽层。 ## WOFProvider `需要管理员权限:是` 该解决方案使用 `wofapi` 将 WIM 文件设置为外部数据源,从而允许将恶意软件投递到磁盘而不被静态分析。要通过[此方法](WOFProvider/README.md)投递并执行 payload,建立能够在运行时将其隐藏的 `bindlink` 是必不可少的。 ## 链接 - https://www.elastic.co/security-labs/immutable-illusion - https://github.com/bitdefender/bindutil-toolset - https://www.microsoft.com/en-us/download/details.aspx?id=13096 - https://www.microsoft.com/en-us/security/blog/2022/06/30/using-process-creation-properties-to-catch-evasion-techniques/ - https://learn.microsoft.com/en-us/windows/win32/api/_cloudapi/ - https://learn.microsoft.com/en-us/windows/win32/api/bindlink/ - https://learn.microsoft.com/en-us/windows/win32/api/wofapi/
标签:Bind Links, CldFlt, DNS 反向解析, DNS 解析, EDR绕过, FRN, PoC, Python, Rust, WIM文件, Windows Minifilter, Windows内部机制, WOF API, 中高交互蜜罐, 云文件过滤器, 可视化界面, 安全测试, 安全防御绕过, 恶意软件开发, 搜索语句(dork), 攻击性安全, 数据展示, 数据隐藏, 文件引用号, 无后门, 暴力破解, 红队, 绕过静态检测, 网络信息收集, 网络流量审计, 逆向工具, 通知系统, 隐匿执行, 高交互蜜罐