PentesterFlow
在终端中协助渗透测试,并由分析人员掌控高风险操作。
README 明确列出 shell、HTTP、文件修改、Burp/MCP、日志及持久化数据的外部影响,并说明敏感操作默认需要逐次或会话级批准;数据目录、远程模型端点、隐藏记忆注入和敏感调试日志也披露得较完整。扣分在于工具权限仍然广泛,YOLO 模式可跳过部分批准;密钥脱敏和高风险路径保护只有说明而无实现证据;依赖使用宽松版本范围,工作流 action 仅固定到主版本;外部攻击操作没有通用撤销或恢复方案。仓库、包元数据和许可证提供来源线索,但发布者身份未知且未给出明确版权主体。没有材料显示恶意软件、凭据窃取、隐蔽外传或无同意的破坏性默认行为。
README、package.json 和 CI/release 工作流对 Node 20+、构建命令、平台资产及检查流程基本一致,且 CI 覆盖 Node 20/22 与 macOS/Linux。扣分在于 package.json 为 0.1.0-dev,而安装示例引用 v0.1.6;Windows 仅见交叉编译发布,没有常规 CI;外部模型、Burp 和 MCP 的可用性依赖未给出降级矩阵。失败处理只零散提到学习失败写日志、调试日志及发布资产错误,缺少面向用户的系统化错误信息与恢复指导。
目标用户、授权渗透测试场景、完整测试生命周期、多种模型后端、操作系统、架构、技能覆盖和扩展目录均有清晰说明,环境适配证据较强。扣分在于能力边界主要依赖文档声明,广泛的自然语言触发、技能覆盖和隐藏记忆检索可能产生选择歧义;除 /target、计划模式、工具批准和步数上限外,没有展示更严格的目标白名单、网络边界或触发判定规则。
README 信息架构完整,安装、快速上手、命令、工具、数据路径、开发流程和贡献方式易于查找;安装器、校验和、直接下载及多平台资产说明充分。Apache-2.0 元数据与完整 LICENSE 一致,因此许可证得满分。扣分在于没有专门 FAQ 或完整故障排查章节;已知限制分散在警告和 provider 注记中;browser-ingest 已废弃且版本示例与包版本不一致。发布流程会生成版本与说明,但未提供仓库内 changelog。维护入口只有通用 issue/PR 链接和自动化更新路径,没有具名维护者、安全报告渠道或明确支持责任。
预期产出包括可复制 curl、Markdown 漏洞报告、原始请求证据、覆盖状态、日志和可恢复会话,对渗透测试工作流具有很强的直接可用性,因此输出可用性得满分。整合规划、工具、证据、报告、Burp 和持续学习显示出相对通用终端助手的增量价值,但核心效果主要由 README 陈述,缺少所给材料中的代码或测试佐证。支持本地模型并提供廉价模型提示有助于控制成本,但没有延迟、资源消耗、令牌费用、误操作成本或收益基准,故成本效益未获满分。
安装、许可、构建、CI、发布资产和校验和等主张可由 package.json 与工作流相互追踪;README 也给出确定的命令、文件路径和输出格式。扣分在于审批、脱敏、命令阻断、发现确认、记忆检索等关键产品主张没有随附源代码或测试,跨来源只能佐证外围工程与发布流程。文档使用“should”区分部分规范性要求,并明确调试日志风险,但多数能力仍作为既成事实陈述,未系统地区分已验证行为、设计意图和营销性效果主张。
- 该代理可执行 shell 命令、发送网络请求、修改文件并处理真实认证流量;仅应在书面授权且边界明确的目标上使用,并保持 YOLO 模式关闭。
- 远程模型提供商可能接收提示、目标细节和工具上下文;使用前应核对各提供商的数据政策,并优先使用隔离的测试凭据。
- 会话、个人记忆、Burp 捕获、finding 和完整调试日志可能包含敏感目标数据;即使声明有脱敏,也应限制权限、审查内容并制定保留与删除策略。
- curl 或 PowerShell 管道式安装会执行远程脚本;应固定版本、先审阅安装器并独立校验发布校验和。
- 本次仅依据 README、许可证、包元数据和工作流进行静态审查,未执行程序,也未验证审批、脱敏、命令阻断或漏洞确认逻辑。
这个 Agent 能做什么,适合哪些场景?
PentesterFlow 是面向授权渗透测试与漏洞赏金工作的开源终端助手,覆盖侦察、枚举、漏洞验证、证据收集和报告。它通过计划、执行、观察、验证、报告和学习的循环,调用 Shell、HTTP、文件、搜索、浏览器捕获及 Burp 相关工具,并默认要求人工批准敏感操作。产品支持 Ollama、LM Studio、Kimi、Groq、Gemini、OpenRouter、DeepSeek 和 OpenAI 兼容接口,可使用本地模型或托管模型。已确认的问题会以 Markdown 写入 ./findings/<slug>.md,并可同时保留覆盖状态、会话、上下文快照和 JSON Lines 日志。其运行边界是用户自己的终端与本地工作区;它能够执行命令、访问目标网络、修改文件并处理捕获的流量,因此只适用于获得明确授权的系统。
用户先用 /target 设置获准测试的目标,再给出诸如映射 API 或验证访问控制的问题。代理可加载 recon、webvuln、ssrf、ssti、jwt、graphql、race、takeover、supabase 或 deserialize 等 Markdown 技能,并调用 shell/BashTool、http、GlobTool、GrepTool、web_fetch、web_search、browser_capture_* 和文件工具开展测试。coverage 记录端点、参数与漏洞类型的测试组合,/next 根据尚未覆盖的部分建议后续工作。候选漏洞需要通过可复现的请求和响应证据验证;confirm_finding 随后把标题、严重性、影响、修复建议、证据和可复制的 curl 命令写入 ./findings/<slug>.md。会话保存在 ~/.pentesterflow/sessions/*.json,/compact、/memory、/snapshot 和后台持续学习机制用于跨长时间评估保留上下文。启用 --burp 后,本地监听器可接收 Burp 或浏览器流量,配套 pentesterflow-browser-mcp 则把捕获数据暴露给兼容的 MCP 客户端。
- 渗透测试人员在已获授权的 Web 或 API 项目中,需要从侦察一路推进到证据化报告,并希望敏感命令仍由人工审批。
- 漏洞赏金研究员需要测试 IDOR、JWT、SSRF、SSTI、GraphQL 或竞态问题,并把复现请求与响应保存为可提交的发现。
- 安全团队正在进行周期较长的评估,希望通过保存会话、压缩记忆、上下文快照和覆盖记录,在多次终端会话间继续工作。
- Burp Suite 用户希望把选中的请求发送到终端代理分析,并将确认后的发现重新导入 Burp issues。
- 重视数据边界的团队希望使用 Ollama 或 LM Studio 本地模型,同时仍保留切换到多个托管后端或 OpenAI 兼容端点的选择。
这个 Agent 有哪些优点和局限?
- 工作流针对实战安全评估设计,内置从侦察到反序列化测试的多类技能,并以覆盖记录和 /next 管理大型攻击面。
- 默认采用人工审批,并提供 allow once、allow session、敏感路径保护和灾难性 Shell 命令拦截。
- 强调可审计证据:工具调用可见,命令可复现,确认后的发现包含请求证据、影响、修复建议及 curl PoC。
- 支持多个本地和托管模型后端,以及 OpenAI 兼容接口,降低单一模型供应商锁定。
- Burp、本地浏览器捕获和 MCP 路径可把现有代理流量纳入分析,而会话、快照及本地记忆适合长期项目。
- 代理获批后可以执行 Shell 命令、发送网络请求和修改文件;错误的授权范围或审批决定可能直接影响本机及目标系统。
- 远程后端需要相应 API 密钥、网络连接并可能产生供应商费用;来源没有提供价格或成本上限。
- 持续学习、会话、发现和调试日志会在本地保存目标上下文;完整调试日志可能含命令输出及复制的请求材料,需要单独保护。
- 不同后端存在已记录的适配差异,例如 Groq 使用更紧凑的提示与较低压缩阈值,LM Studio 需要停止标记防护,部分服务还可能遇到 SSE 或工具调用问题。
- Burp 工作流依赖配套 PentesterFlow Burp Integration;浏览器 MCP 还需要单独的 pentesterflow-browser-mcp 二进制文件。
如何安装或部署这个 Agent?
macOS 或 Linux:
curl -fsSL https://raw.githubusercontent.com/PentesterFlow/agent/main/install.sh | shWindows PowerShell:
irm https://raw.githubusercontent.com/PentesterFlow/agent/main/install.ps1 | iex安装器下载对应系统的独立二进制文件,并在可用时校验发布的 SHA-256。也可以从 GitHub Releases 下载 macOS arm64/x64、Linux arm64/x64 或 Windows x64 文件。若从源码开发,需要 Node.js 20+,然后运行:
npm install
npm run dev -- --version
npm run typecheck
npm run lint
npm run test
npm run build首次使用还需要一个受支持的模型后端。使用本地 Ollama 的示例是:
ollama pull qwen2.5-coder:32bpentesterflow
如何使用这个 Agent?
启动 pentesterflow 后,用 /provider 选择后端、API 密钥和模型;本地 Ollama 或 LM Studio 通常不需要托管服务密钥,Kimi、Groq、OpenRouter、DeepSeek 和 Gemini 示例分别使用 MOONSHOT_API_KEY、GROQ_API_KEY、OPENROUTER_API_KEY、DEEPSEEK_API_KEY 和 GEMINI_API_KEY。最小交互流程:
/provider
/target https://app.example.com
map the authenticated API surface and test for IDOR也可直接指定后端,例如:
pentesterflow --backend ollama --model qwen2.5-coder:32bOpenAI 兼容端点可这样配置:
pentesterflow --backend openai-compat --base-url https://api.example.com/v1 --api-key sk-...
恢复工作使用 pentesterflow --resume <session-id>。Burp 桥接使用 pentesterflow --burp 或 pentesterflow --burp 9999,默认监听 http://127.0.0.1:9999。仅应对明确授权的目标运行测试;除实验环境外,不应启用会自动批准非敏感工具调用的 --yolo。