Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

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

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

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
DutchOven — 以原生 C 和 BOF 形式实现的应用级 Windows 网络降级 | Kitploit
工具/GitHubGitHub/loosehose/dutchoven
后渗透利用网络安全红队混沌工程对抗性攻击
GitHubloosehose/dutchoven

DutchOven

以原生 C 和 BOF 形式实现的应用级 Windows 网络降级

查看仓库
22332个月前Kitploit 审核通过

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

DutchOven 红色炖锅标志

DutchOven

面向应用范围的 Windows 网络间歇性降级,用于确定性的红队验证。

原生 C  •  Windows 筛选平台  •  IPv4 + IPv6  •  动态清理

阅读配套博客文章 →

快速开始 • 配置文件 • CLI • 工作原理 • 构建 • BOF • 验证

[!CAUTION] 仅限受控环境。 仅在您拥有或获得明确授权进行评估的系统上运行 DutchOven。它会更改实时 Windows 网络策略,并且需要提升的管理员令牌。使用前请查阅 SECURITY.md。

什么是 DutchOven?

DutchOven 是一个刻意保持小巧的 Windows 红队原语,它将显式的可执行文件路径置于确定性的网络门控之后。在每个周期内,匹配的应用程序会在有限的时间间隔内被阻止,并在剩余时间内被允许通过。

其结果是可重复的间歇性降级,而非停止服务或永久防火墙规则。它提供了一种受控方式,用于在进程保持存活期间测量重试逻辑、缓冲、健康状态转换、延迟交付和恢复行为。

设计选择对操作者的价值
面向应用范围的 WFP 筛选器将实验限制在操作者提供的路径上
定时阻止/放行占空比产生可测量的性能下降,而不仅仅是在线/离线状态
原子化 IPv4 和 IPv6 变更使两个地址族保持在同一时间表上
动态 WFP 会话当引擎会话关闭时移除筛选器和生成的子层
原生 C 实现无 Go、.NET、服务安装或自定义驱动依赖
仅限显式目标无产品枚举、进程猜测或内置目标数据库

DutchOven 门控的是新的出站连接授权。WFP 已经授权的现有连接不会被追溯终止;在验证不间断的长连接流时,请使用新的金丝雀连接,或独立强制目标重新连接。

快速开始

打开一个提升权限的 PowerShell 窗口。

在不更改 WFP 的情况下验证解析后的目标和时序:

.\dutchoven.exe --app 'C:\Path\To\Target.exe' --dry-run

运行默认的 brownout 配置:

.\dutchoven.exe --app 'C:\Path\To\Target.exe'

这就是完整的最小调用方式。--app 是唯一必需的标志。默认配置在每个 5 秒周期内阻断目标 1.5 秒,并在运行一分钟后退出。

使用 Ctrl+C 提前停止。DutchOven 在关闭其 WFP 会话之前会移除活动过滤器;如果进程被中断,动态会话是清理的兜底机制。

操作配置

配置内置了实用的时间安排,因此操作人员无需指定每一个时间值。

配置阻断放行周期持续时间预期用途
light0.5 秒4.5 秒5 秒60 秒低影响重试观察
brownout1.5 秒3.5 秒5 秒60 秒均衡的默认实验
heavy3.5 秒1.5 秒5 秒60 秒队列与恢复压力测试
blackout5 秒0 秒5 秒30 秒短暂、有界的完全中断

使用一个可选标志选择配置:

.\dutchoven.exe --app 'C:\Path\To\Target.exe' --profile heavy

CLI 参考

dutchoven --app <absolute.exe> [--app <absolute.exe> ...] [options]
参数必需描述
--app <absolute.exe>是目标可执行文件路径;对多进程应用程序可重复指定
--profile <name>否light、brownout、heavy 或 blackout
--period-ms <ms>否覆盖完整的阻塞/放行周期
--block-ms <ms>否覆盖每个周期中被阻塞的部分
--duration-ms <ms>否覆盖有界总运行时长
--warmup-ms <ms>否在第一个阻塞间隔之前允许流量通过
--dry-run否验证并打印配置,而不打开 WFP
--json否以 JSON Lines 格式输出配置和状态转换
--help否打印命令帮助

使用 dutchoven version 打印构建版本。

高级计时参数无论参数顺序如何都会覆盖所选配置文件:

.\dutchoven.exe `
  --app 'C:\Path\To\Target.exe' `
  --period-ms 8000 `
  --block-ms 2000 `
  --duration-ms 120000 `
  --warmup-ms 5000

JSON Lines 用于测试框架和证据收集:

.\dutchoven.exe --app 'C:\Path\To\Target.exe' --profile heavy --json

时序限制由解析器强制执行:

  • 周期:100–60000 ms
  • 阻塞:1 ms 至完整周期
  • 持续时间:至少一个周期,最多 900000 ms(15 分钟)
  • 预热:最多 60000 ms
  • 目标:最多 16 个显式本地可执行文件路径

工作原理

explicit executable path
          │
          ▼
   WFP application ID
          │
          ├── ALE_AUTH_CONNECT_V4 ──┐
          └── ALE_AUTH_CONNECT_V6 ──┤── BLOCK / PASS schedule
                                    │
                                    └── dynamic WFP session cleanup
  1. DutchOven 将每个提供的可执行文件解析为 WFP 应用程序标识。
  2. 它打开一个非持久化的动态 WFP 引擎会话,并创建一个生成的子层。
  3. 在阻断间隔开始时,IPv4 和 IPv6 过滤器会在一个事务中添加。
  4. 在放行间隔开始时,这些过滤器会在一个事务中被移除。
  5. 在完成或正常中断时,DutchOven 会移除所有活动过滤器并关闭引擎。

Windows 目标在 DutchOven 向 WFP 请求应用程序标识之前,会以 Unicode 形式解析并规范化为其长路径。这可以防止诸如 ADMINI~1 之类的 8.3 路径别名在不知不觉中创建一个无法匹配进程长格式映像标识的过滤器。

控制台会打印带有挂钟时间和相对于调度的时间戳的状态转换:

Targets: 1
  C:\Path\To\Target.exe
Schedule: block=1500ms pass=3500ms period=5000ms duration=60000ms warmup=0ms
Profile: brownout
Mode: brownout
BLOCK cycle=1 filters=2 wall_ms=1786973903811 elapsed_ms=0
PASS cycle=1 wall_ms=1786973908813 elapsed_ms=5000
...
CLEAN filters=0 session=closed cycles=12 wall_ms=1786973963812 elapsed_ms=60000

构建

默认的 Linux 构建会执行解析和试运行行为。实时 WFP 门控需要 原生 Windows 交叉构建。

make check
make release

make check 运行可移植测试、交叉构建 Windows 产物,并验证 BOF 导入契约。make release 在 artifacts/v<version>/ 下生成剥离后的发布产物和 SHA256SUMS。

主要输出:

产物用途
build/dutchovenPOSIX 解析器和 dry-run 二进制文件
build/dutchoven_tests核心单元测试
build-windows/dutchoven.exe原生 Windows WFP 门控
build-windows/dutchoven_tests.exe原生 Windows 测试二进制文件
build-windows/windows_canary.exe路由集成测试金丝雀
bof/dutchoven.x64.o带版本号的 x64 Beacon Object File
artifacts/v<version>/剥离后的发布 EXE、BOF 和校验和

Windows 可执行文件仅链接 Windows 系统库:fwpuclnt、rpcrt4 和 advapi32。

Beacon Object File

BOF 将 DutchOven 打包为一个简短的同步脉冲,在 x64 Beacon 中内联运行。构建 COFF 对象、刷新带版本号的产物,并通过以下命令验证其导入契约:

make bof

在 Cobalt Strike 的 Script Manager 中加载 bof/dutchoven.cna,然后从 Beacon 控制台调用它:

dutchoven "C:\Path\To\Target.exe"
dutchoven "C:\Path\To\Target.exe" heavy

默认配置文件是 brownout。配置文件映射到单个有界阻塞区间:

配置文件脉冲
light0.5 秒
brownout1.5 秒
heavy3.5 秒
blackout5 秒

每次调用都会打开一个动态 WFP 会话,原子地安装 IPv4 和 IPv6 连接过滤器,等待选定的脉冲,显式移除两个过滤器,并在返回前关闭会话。如果显式移除失败,关闭动态会话仍然是清理的兜底措施。

该 BOF 对 Kernel32、Rpcrt4 和 Fwpuclnt 使用动态函数解析;它没有 C 运行时导入。它接受一个已存在的绝对可执行文件路径,要求具有提升权限的 Beacon,并拒绝拦截承载该 BOF 的进程。由于它以内联方式执行,它有意不复现独立二进制文件的一分钟多周期调度器。

验证工作流

有用的红队结果需要独立证据。不要将成功添加过滤器的调用视为目标经历了预期 brownout 的证明。

  1. 选择一个网络行为可观察的良性金丝雀应用程序。
  2. 记录未拦截的基线。
  3. 并行运行 DutchOven 和一个无关的对照应用程序。
  4. 同时测量新的连接尝试和已建立的连接。
  5. 独立捕获客户端时间戳、服务器时间戳和数据包。
  6. 确认对照组未受影响,并且每个通过区间都已恢复。
  7. 确认在正常退出和强制终止后没有残留的 DutchOven 过滤器。

该仓库包含一个 Windows 集成测试框架,它使用两个无害 TCP 金丝雀副本自动执行这些断言。它需要提升权限的 PowerShell 会话和可访问的非本地 TCP 监听器;回环流量不能替代路由 WFP 验证。

.\tests\windows_integration.ps1 `
  -DutchOvenPath '.\build-windows\dutchoven.exe' `
  -CanaryPath '.\build-windows\windows_canary.exe' `
  -ServerAddress '192.0.2.10' `
  -ServerPort 8443

该测试框架验证了基线连通性、定向阻断、未受影响的对照、正常恢复、通过动态会话实现的强制终止恢复,以及零 WFP 残留。

已验证行为

DutchOven 0.4.1 已在 Windows Server 2022 上使用 Elastic Defend 9.4.2 完成验证:

  • 六个活动过滤器覆盖了三个显式 Elastic 可执行文件路径的 IPv4 和 IPv6;
  • 在强制建立新连接后,定向后端连接降至零,而一个无关的 PowerShell 对照仍能访问两个后端端口;
  • 在限时中断期间,Elastic 服务始终保持运行;
  • DutchOven 成功退出,独立的 WFP 状态转储未发现残留过滤器、会话或子层;以及
  • 所有代理连接和 Fleet 健康状态均已恢复。

Elastic 记录了 DutchOven 的进程启动、进程结束、SYSTEM 身份和完整命令行,然后在恢复后交付了缓冲的遥测数据。在该配置下,它未产生 Elastic Defend 告警。请将此视为一项实测结果,而非通用的检测或规避声明。

操作边界

DutchOven 有意不执行以下操作:

  • 枚举已安装的安全产品;
  • 推断可执行文件路径或进程归属;
  • 停止、挂起或修改服务;
  • 安装服务、驱动程序、持久化机制或启动时过滤器;
  • 更改 Windows 防火墙配置文件、组策略或策略 QoS 注册表状态;
  • 冒充商业代理协议;或
  • 在没有独立后端证据的情况下声称供应商侧遥测结果。

需要管理员权限,因为添加 WFP 对象需要对基础筛选引擎(Base Filtering Engine)的写入访问权限。应用程序身份必须与实际拥有网络流的可执行文件匹配。多进程代理、代理服务器、内核网络和长连接可能会改变观察到的结果,必须进行实测而非假设。

仓库结构

路径内容
src/main.c最小命令行入口点
src/gate.cWFP 门控、配置文件、计时和清理
tests/test_gate.c解析器、配置文件和边界测试
tests/windows_canary.c用于路由 Windows 集成测试的无害 TCP 金丝雀
tests/windows_integration.ps1正常和强制清理 WFP 集成测试框架
bof/x64 BOF 源代码、Aggressor 包装器和契约检查器
下载工具