PROJECT ARCHIVE / Product

FlowSage

从 CTF 流量分析出发,逐步扩展为面向多协议安全分析与网络取证的跨平台工具。

GoVue 3TypeScriptViteWails v2网络取证
GitHub 仓库 ↗

从 CTF 解题工具到流量分析工作台

FlowSage 的起点是 CTF 里一个很实际的问题:答案通常就在流量包里,但要拿到它,得手动关联会话、解码载荷、重建应用层行为,再反复验证零散的假设。我想把这些重复劳动收敛成一条连贯的分析流程,而不是每次从零拼一堆脚本。

随着版本迭代,它从 Flag 提取扩展到面向网络调查、安全研究与流量取证的协议分析:常见企业网络协议、工控流量、蓝牙与 USB 数据、CAN、流媒体协议,以及命令与控制流量,都在覆盖范围内。

一套分析引擎,两种工作方式

FlowSage 同时提供命令行版本(脚本与批处理)和桌面 GUI(交互式调查),两者共用同一套 Go 分析引擎。

flowchart TB
  CLI["CLI / 自动化与批处理"] --> CORE["共享 Go 分析引擎"]
  GUI["桌面 GUI / 交互式分析"] --> CORE
  CORE --> PROTO["协议感知分析"]
  CORE --> ARTIFACTS["分析结果与提取工件"]

GUI 用 Vue 3、TypeScript、Vite 与 Wails v2 构建。交互上支持文件历史、批量导入、结果分类、会话检查、请求与响应查看、十六进制查看器以及 JSON 导出,也可以直接导入 PCAP 与 JSON。CLI 面向自动化脚本、批量任务和服务器环境,我自己最常用的路径是先用 Wireshark 导出分组解析 JSON,再交给 FlowSage 分析。两个入口的平台支持并不相同:GUI 覆盖 Windows 10/11(x64/ARM64),CLI 覆盖 Windows、Linux、macOS(x64/ARM64)。

面向不同流量场景的分析能力

FlowSage 把较广的协议覆盖和针对具体任务的分析器结合在一起。CTF 场景包括 Flag 提取、SQL 注入流量还原、USB 键盘与鼠标数据恢复、Telnet 会话重建;后续版本又加入了 Modbus、Siemens S7 等工控协议,Kerberos 分析、WebShell 流量解码、RTSP/RTMP 流媒体分析、CAN 流量检查,以及 Cobalt Strike Beacon 分析。

v3.6.0 有 38 种协议分析器,并扩展了 CMS 指纹识别引擎。这个数字是该版本的分析器清单,实际覆盖仍以你手上的构建版本和样本为准——协议实现总有边界,我不会承诺”任何样本都能解析”。

工程问题

  • 先重建,再解释。 会话重建基于 TCP 序列号,处理分段传输与乱序重组。很多分析真正依赖的是从数据包碎片里把应用层交互拼回来,字段解析反而是后面的事。
  • 处理协议异构性。 同一套工作流要面对 HTTP、DNS、工控协议、设备协议——数据模型几乎没有共同点,抽象错了后面全是补丁。
  • 围绕任务提取信息。 目标不是把字段解析干净,而是拿到能回答具体问题的工件与行为。文件提取、损坏数据修复、多种编码识别都是为这件事服务的。
  • 兼顾两种入口。 共享引擎意味着自动化处理和交互式调查复用同一套能力,而不是维护两套实现、让行为逐渐漂移。