CTF-BTFly_CTF工具介绍

一题一容器!CTF-BTFly把AI解题做成可观察、可接管的桌面平台

桌面工作台 · Go控制平面 · Docker隔离沙箱 · 中文Writeup自动生成

—— 深度解析开源项目 CTF-BTFly

【配图:CTF-BTFly桌面端截图 / 系统架构图】

◆ ◇ ◆

◆ ◇ ◆

01 项目介绍

CTF-BTFly 到底是个什么东西?

CTF-BTFly 是一个自动化 CTF 解题工作台。它把桌面 GUI、独立 Go 控制平面、Docker 隔离沙箱、Pi Agent 和模型网关组合在一起,为每道题提供可观察、可复现、可人工接管的自主分析环境。

它的定位不是“把题目贴给大模型聊一聊”,而是把完整解题链路工程化:创建题目、上传附件、选择题型、启动沙箱、让 Agent 执行工具、保存 Artifact、生成中文 WRITEUP.md,最后从固定章节提取已验证 Flag。

最关键的是 GUI 和高权限控制平面分离。前端负责管理和展示,daemon 负责 SQLite、Docker、任务状态机、模型凭据和 Agent 生命周期。即使 GUI 退出或隐藏,daemon 仍然可以继续管理任务。

▎核心亮点速览

▸ Wails + React桌面端:题目管理、状态展示、文件预览、Writeup和模型用量

▸ 独立Go daemon:GUI退出后仍可管理任务,控制面和展示面分离

▸ 一题一沙箱:每道题独立容器、工作区、Agent会话和短期模型Token

▸ 实时事件流:Agent消息、工具调用、stderr、沙箱状态和Flag候选统一记录

▸ 断线重放:SQLite持久事件 + WebSocket实时推送,前端可按sequence补齐历史

▸ 中文Writeup:强制生成可复现的中文题解和关键分析产物

💡 一句话理解

CTF-BTFly = 桌面CTF任务台 + Go控制平面 + Docker专项沙箱 + Pi Agent + 模型网关

不是只让AI想答案,而是把CTF解题过程变成可观察、可复盘、可接管的自动化流水线。

02 能力数据

README没有公开比赛成绩,但工程指标很扎实

我没有找到 CTF-BTFly 公开披露的比赛名次、解题率或第三方评测结果,所以这里不编造“实测战绩”。我们只放两条 README 里可核验的量化能力数据:

指标

数值

说明

题型覆盖

6类

Web、Crypto、Pwn、Reverse、Forensics、Misc 六类专项 Docker 镜像

默认沙箱资源

4GiB / 4核 / 512PID

每题沙箱默认内存、CPU配额和PID限制,适合受控执行与资源隔离

▎为什么这两个指标重要?

CTF自动化最怕两个问题:第一,所有题型塞进一个通用环境,工具混乱、依赖冲突;第二,AI可以随便跑命令,但没有边界、没有日志、没有成本记录。CTF-BTFly 正好在这两点上做了工程化处理。

▸ 六类专项镜像意味着不同题型走不同工具链:Web用扫描与请求工具,Pwn用GDB和pwntools,取证用binwalk、tshark、volatility等。

▸ 默认资源限制意味着每道题不是无限制乱跑,而是在可控容器里执行,便于隔离、观察和回收。

▸ 模型网关只把题目级短期Token交给容器,真实API Key留在daemon侧,降低凭据暴露面。

▸ Flag只从 WRITEUP.md 的“最终 Flag”章节代码块提取,避免AI聊天里随口猜flag造成误判。

03 使用场景

它能帮你干什么?

CTF-BTFly 的优势不只是“自动解题”,更像一个面向 CTF 的安全实验工作台:任务、附件、沙箱、事件、产物、Writeup 都在同一个界面里被管理起来。

▎🏆 场景一:CTF比赛辅助解题

比赛中最直接的用法:创建题目,选择题型,上传附件,让对应专项沙箱启动 Pi Agent 分析。你可以在时间线里看它执行了什么命令、发现了什么线索、生成了哪些脚本和响应文件。

▸ Web题:Nmap、SQLMap、Gobuster、WhatWeb 等工具辅助探测

▸ Crypto题:John、gmpy2、PyCryptodome、SymPy、Z3 等组合分析

▸ Pwn题:GDB、QEMU、Pwntools、Ropper、Checksec 辅助调试利用

▸ Reverse题:Apktool、angr、GDB、Strace、Ltrace 做静态/动态分析

▸ Forensics/Misc:Binwalk、Tshark、Yara、Volatility、FFmpeg、ImageMagick、Steghide、ZBar 等覆盖常见附件题

▎🧪 场景二:赛后复盘与Writeup沉淀

很多自动化工具只给结果,CTF-BTFly 更强调过程沉淀。它会把 Agent 的分析过程、工具调用、产物文件和最终中文 WRITEUP.md 留下来,方便赛后整理题解。

▸ 从事件时间线复盘失败路径和关键转折点

▸ 从 artifacts 里找脚本、响应包、提取文件等证据

▸ 把自动生成的中文 Writeup 作为初稿,再人工修订发布

▎🔐 场景三:不可信附件的隔离分析

CTF题目附件可能包含恶意二进制、脚本或异常样本。CTF-BTFly 的一题一沙箱设计,让每道题都在独立容器和工作区里运行,宿主机目录只挂载当前题目工作区。

README 也明确建议:线上处理不可信题目时,普通题优先 gVisor/runsc,Pwn 优先 Kata Containers 或独立虚拟机。

▎📊 场景四:模型成本与任务状态管理

模型用量账本是这个项目里很实用的细节。它记录请求数、输入/输出/缓存/推理 Token,并支持按题目和日期聚合。对长期训练和比赛复盘来说,这比只看最终答案靠谱得多。

04 部署教程

手把手跑起来

CTF-BTFly 当前主要开发和验证平台是 Windows。要完整跑起来,需要 Go、Node.js、Docker、Wails v3 CLI,以及一个可用的 OpenAI-compatible 模型接口。

▎环境要求

▸ Go 1.26 —— 后端 daemon 与桌面程序构建

▸ Node.js 24+ 与 npm —— 前端依赖与构建

▸ Docker Desktop 或 Docker Engine —— 运行题型专项沙箱

▸ Wails v3 CLI —— 构建桌面应用

▸ OpenAI-compatible 模型接口 —— Pi Agent 调用模型

▸ Windows —— README 标注为当前主要开发和验证平台

▎第1步:安装前端依赖

git clone https://github.com/huihuilikaile/CTF-BTFly.git
cd CTF-BTFly

cd frontend
npm ci
cd ..

▎第2步:配置模型网关

在最终 CTF-BTFly.exe 所在目录创建 .env。开发构建默认产物在 bin/,因此通常创建 bin/.env:

CTF_UPSTREAM_MODEL_BASE_URL=https://your-openai-compatible-endpoint/v1
CTF_UPSTREAM_MODEL_API_KEY=your-real-provider-key
CTF_MODEL_ID=your-model-id
CTF_MODEL_INCLUDE_STREAM_USAGE=true

▎第3步:构建专项镜像

.\images\build.ps1 -Version 0.1.0

▎第4步:启动开发环境

# 构建独立 daemon
wails3 task daemon:build

# 启动 Wails + Vite 开发环境
wails3 task dev

# 也可以单独运行控制平面
wails3 task daemon:run

▎第5步:构建桌面程序

wails3 build

# 主要产物
bin/
├── CTF-BTFly.exe
└── ctfagent-daemon.exe

💡 使用流程小抄

新建题目 → 选择题型 → 上传附件 → 启动任务 → 观察时间线 → 查看Artifact → 下载中文Writeup → 提取最终Flag。

GUI会优先连接已有daemon;未检测到可用实例时,会自动启动同目录的ctfagent-daemon.exe。

⚠️ 风险警示

跑之前,这几件事必须知道

⚠️ 只能用于授权CTF与靶场

README 明确提醒:CTF-BTFly 只能用于明确授权的 CTF 题目、靶场和安全研究环境。

不要使用本项目扫描、测试或攻击未授权目标。

当前实现仍使用 Docker bridge 网络,尚未在网络层强制目标白名单,线上使用需额外隔离。

⚠️ 不要泄露题目附件、Flag和凭据

不要把比赛附件、Flag、凭据或私有数据上传到第三方服务。

.env 包含真实模型密钥,不要提交到 Git、复制进 Docker 镜像或放入题目工作区。

💬 写在最后

CTF解题工具正在从脚本集合变成工作台

CTF-BTFly 最值得关注的地方,不是某个单点功能,而是它把 CTF 解题做成了一套完整工作流。

传统做题时,我们往往在桌面、终端、浏览器、编辑器和笔记之间来回切换:附件放哪了?脚本跑过什么?模型花了多少?最后的 flag 是真的验证过,还是 AI 猜的?

CTF-BTFly 的答案是:把这些过程都纳入一个可观察、可复现、可接管的桌面工作台。Agent 可以自动干活,但人仍然可以随时看证据、补线索、接管任务。

这也许就是 AI 安全工具接下来最现实的形态:不是替代选手,而是把重复、繁琐、可记录的部分自动化,让人把精力放在判断和创造性突破上。

欢迎在评论区聊聊!觉得有用的话,点赞 + 在看 + 转发三连支持一下~

🔒 关注我,持续分享网安圈硬核干货

项目地址:github.com/huihuilikaile/CTF-BTFly

posted @ 2026-08-03 17:20  智能化态势感知  阅读(15)  评论(0)    收藏  举报