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

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

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

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

工具目录

分类

查看所有分类
Loading categories
工具/GitHubGitHub/loosehose/dutchoven
后渗透利用网络安全红队混沌工程对抗性攻击
GitHubloosehose/dutchoven

DutchOven

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

查看仓库
13天前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

DutchOven 红色炖锅标志

DutchOven

面向应用范围的 Windows 网络局部中断,用于确定性的红队验证。

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

快速开始 • 操作预设配置 • CLI 参考 • 工作原理 • 构建 • BOF • 验证工作流

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

DutchOven 是什么?

DutchOven 是一个刻意保持精简的 Windows 红队原语,它将显式可执行文件路径置于一个确定性网络闸门之后。在每个周期内,匹配的应用程序会在一个有界的时间间隔内被阻断,并在剩余时间内被放行。

结果是可重复的局部中断(brownout),而不是服务停止或永久防火墙规则。它提供了一种受控方式,用于在进程保持存活的同时,测量重试逻辑、缓冲、健康状态转换、延迟投递和恢复行为。

设计选择操作者价值
应用范围的 WFP 筛选器将实验限制在操作者提供的路径范围内
定时阻断/放行占空比产生可测量的性能降级,而不仅仅是在线/离线两种状态
IPv4 与 IPv6 原子化变更让两个地址族保持相同的调度节奏
动态 WFP 会话引擎会话关闭时移除筛选器及生成的子层
原生 C 实现不依赖 Go、.NET、服务安装或自定义驱动程序
仅限显式目标不进行产品枚举、进程猜测,也没有内置目标数据库

DutchOven 管控新的出站连接授权。WFP 已授权的现有连接不会被追溯终止;在验证不间断的长生命周期连接时,请使用新的 canary 连接,或自行强制目标重新连接。

快速开始

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

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

root@kitploit:~
.\dutchoven.exe --app 'C:\Path\To\Target.exe' --dry-run

运行默认的 brownout 预设配置:

root@kitploit:~
.\dutchoven.exe --app 'C:\Path\To\Target.exe'

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

使用 Ctrl+C 可提前停止。DutchOven 会在关闭其 WFP 会话之前移除活动筛选器;如果进程被中断,动态会话就是清理的后备保障。

操作预设配置

预设配置内置了实用的调度方案,操作者无需逐一指定每个时序值。

使用一个可选参数选择预设配置:

root@kitploit:~
.\dutchoven.exe --app 'C:\Path\To\Target.exe' --profile heavy

CLI 参考

root@kitploit:~
dutchoven --app <absolute.exe> [--app <absolute.exe> ...] [options]

使用 dutchoven version 打印构建版本。

无论参数顺序如何,高级时序参数都会覆盖所选预设配置:

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

JSON Lines 面向测试框架和证据收集场景:

root@kitploit:~
.\dutchoven.exe --app 'C:\Path\To\Target.exe' --profile heavy --json

解析器强制实施以下时序限制:

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

工作原理

root@kitploit:~
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 目标会以 Unicode 形式解析,并在 DutchOven 向 WFP 请求应用程序标识之前规范化为其长路径。这可以防止诸如 ADMINI~1 之类的 8.3 路径别名静默创建一个无法匹配进程长格式映像标识的筛选器。

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

root@kitploit:~
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 构建用于测试解析和 dry-run 行为。实际的 WFP 闸门需要原生 Windows 交叉构建。

root@kitploit:~
make check
make release

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

主要产物:

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

Beacon 对象文件

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

root@kitploit:~
make bof

在 Cobalt Strike 的脚本管理器中加载 bof/dutchoven.cna,然后从 Beacon 控制台调用它:

root@kitploit:~
dutchoven "C:\Path\To\Target.exe"
dutchoven "C:\Path\To\Target.exe" heavy

默认预设配置为 brownout。预设配置映射到单个有界的阻断间隔:

预设配置脉冲
light0.5 s
brownout1.5 s
heavy3.5 s

每次调用都会打开一个动态 WFP 会话,原子化安装 IPv4 和 IPv6 连接筛选器,等待所选脉冲时长,显式移除这两个筛选器,并在返回前关闭会话。如果显式移除失败,关闭动态会话仍然是清理的后备保障。

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

验证工作流

有价值的红队结果需要独立证据。不要将一次成功的添加筛选器调用视为目标确实经历了预期局部中断的证明。

  1. 选择一个网络行为可观察的良性 canary 应用程序。
  2. 记录未受管控时的基线。
  3. 在运行 DutchOven 的同时,并行运行一个不相关的对照应用程序。
  4. 同时测量新的连接尝试和一条已建立的连接。
  5. 独立捕获客户端时间戳、服务器时间戳和数据包。
  6. 确认对照应用始终未受影响,且每个放行间隔都能恢复。
  7. 确认正常退出和强制终止后均无 DutchOven 筛选器残留。

本仓库包含一个 Windows 集成测试工具,它使用两个无害 TCP canary 副本来自动化上述断言。它需要一个提升权限的 PowerShell 会话和一个可访问的非本地 TCP 监听器;回环流量不能替代经过路由的 WFP 验证。

root@kitploit:~
.\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 已在装有 Elastic Defend 9.4.2 的 Windows Server 2022 上完成验证:

  • 六个生效中的筛选器为三个显式 Elastic 可执行文件路径覆盖了 IPv4 和 IPv6;
  • 在强制建立新连接后,目标后端连接降为零,而一个不相关的 PowerShell 对照仍能到达两个后端端口;
  • 在整个有界的完全中断期间,Elastic 服务始终保持运行;
  • DutchOven 成功退出,独立的 WFP 状态转储未发现残留的筛选器、会话或子层;以及
  • 所有代理连接和 Fleet 运行状况均恢复正常。

Elastic 记录了 DutchOven 的进程启动、进程结束、SYSTEM 身份和完整命令行,并在恢复后投递了缓冲的遥测数据。在该配置下,它没有产生 Elastic Defend 警报。请将此视为一次测量到的结果,而非普适的检测或规避声明。

操作边界

DutchOven 刻意不:

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

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

仓库结构

下载工具
预设配置阻断放行周期持续时间预期用途
light0.5 s4.5 s5 s60 s低影响重试观察
brownout1.5 s3.5 s5 s60 s均衡的默认实验
heavy3.5 s1.5 s5 s60 s队列与恢复压力测试
blackout5 s0 s5 s30 s短时、有界的完全中断
参数必需说明
--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否打印命令帮助
产物用途
build/dutchovenPOSIX 解析器与 dry-run 二进制
build/dutchoven_tests核心单元测试
build-windows/dutchoven.exe原生 Windows WFP 闸门
build-windows/dutchoven_tests.exe原生 Windows 测试二进制
build-windows/windows_canary.exe路由集成测试 canary
bof/dutchoven.x64.o带版本号的 x64 Beacon 对象文件
artifacts/v<version>/剥离后的发布 EXE、BOF 和校验和
blackout5 s
路径内容
src/main.c极简命令行入口点
src/gate.cWFP 闸门、预设配置、时序与清理
tests/test_gate.c解析器、预设配置和边界测试
tests/windows_canary.c用于路由 Windows 集成测试的无害 TCP canary
tests/windows_integration.ps1正常与强制清理的 WFP 集成测试工具
bof/x64 BOF 源码、Aggressor 包装器和契约检查器