CyberStrikeAI 完整实战指南:从一句指令到证据闭环的 AI 渗透测试工作流
【免费下载链接】CyberStrikeAIThe system of action for AI-native cybersecurity—where intent becomes governed execution, evidence becomes operational memory, and every operation improves the next.项目地址: https://gitcode.com/GitHub_Trending/cy/CyberStrikeAI
晚上十一点,客户丢来 30 个 IP,要求明早九点前给出端口服务清单,已知的几个可疑点还要复测。按老办法,这是一整晚的 nmap 脚本、sqlmap 进程和手工整理证据。CyberStrikeAI 是一个用 Go 写的 AI 安全测试平台:你用自然语言描述目标,它负责拆解任务、挑选工具、执行命令、沉淀证据,每一步都可审计、可回放。这篇文章带你走完整个使用生命周期——装起来、配上模型、跑通第一个任务、做批量运营、留证据、开编排、建治理,最后给你几套能直接抄的实战流程。
准备期:三条命令让 CyberStrikeAI 跑起来
先把环境要求核对一遍,就两项:
| 依赖 | 版本要求 | 用途 |
|---|---|---|
| Go | 1.25+(以go.mod为准) | 编译并运行服务 |
| Python | 3.10+ | 部分工具脚本与 venv 环境 |
然后是整个准备期唯一需要你敲的命令序列:
git clone https://gitcode.com/GitHub_Trending/cy/CyberStrikeAI cd CyberStrikeAI chmod +x run.sh && ./run.shrun.sh会依次完成环境校验、创建 Python 虚拟环境、装依赖、拉取 Go 模块、编译、启动服务,你不需要手工搭任何一环。默认走 HTTPS + 本机自签证书(多路流式场景更稳),只想本地快速体验就用./run.sh --http走明文 HTTP。
启动是否成功看两个信号:终端打印● ONLINE并给出 Web UI 地址;首次启动会在ADMIN SETUP REQUIRED下生成一个只显示一次的admin初始密码。
三个高频翻车点提前给你排掉:
- 浏览器提示证书不受信任:自签证书的正常表现,手动信任一次即可;
- 日志出现
client sent an HTTP request to an HTTPS server:你正用http://访问只开了 HTTPS 的端口,改成https://; - 端口被占用或想用别的监听地址:改
config.yaml里server.host/server.port再启动。
💡 经验提示:初始admin密码只在首次启动终端里出现一次,看到就立刻抄下来,登录后第一时间改掉;如果终端已关掉,最省事的办法是参考排错文档 docs/zh-CN/ 处理数据目录。
首次跑通:模型通道配置与 4 条可直接复制的指令
平台能不能动,只取决于一个前置条件:配好一条 OpenAI 兼容的模型通道。两种方式任选。
Web 方式:登录后进「系统设置 → 基本设置 → AI 通道配置」,填服务商、Base URL、API Key、模型名,点保存。左侧通道列表支持设为默认、复制、删除和批量探活。
文件方式:编辑config.yaml的ai段,最小可用配置如下:
ai: default_channel: openai-main channels: openai-main: provider: openai_compatible api_key: "sk-xxxx" base_url: "https://api.deepseek.com/v1" model: "deepseek-chat"ai.default_channel是新对话的默认模型;单条会话也可以在对话页的会话设置里临时换通道。配置完成后,把下面四条指令直接丢进 Web 控制台试手(先把自己环境里的靶场地址替换进去):
扫描 192.168.1.50 的 80、443、22 端口,告诉我上面跑了什么服务 检查 https://target.local/search?q=1 的参数是否可注入,保留请求证据 枚举 target.local 的子域,对存活主机跑 nuclei 对 https://target.local/admin 做目录爆破,整理返回 200/403 的路径你会看到 AI 把一句话拆成若干次工具调用:先规划端口范围和工具,再执行nmap、nuclei等命令,最后把结果解读成结论。确认存在漏洞时,它会自动写入结构化漏洞记录,而不是让结论烂在聊天记录里。
💡 新手易踩的坑:100+ 预置工具不用全装。没装的命令执行时会被自动跳过或改用替代方案,先装 nmap、sqlmap、nuclei 这类高频工具把主流程跑通,再按任务补货(tools/目录里每个 YAML 都写了参数说明)。
控制台导览:每一屏的信息与入口在哪
仪表盘是全局态势屏:运行中的任务数、漏洞总数与等级分布、工具调用次数与成功率、批量队列状态、最近漏洞列表都摆在最上层。出现红色告警时,它直接把你导向对应的漏洞或监控详情,不用自己翻菜单。
Web 控制台是日常主战场:左侧是历史对话列表(支持分组、置顶、批量管理),右侧是对话窗口,底部输入框支持选择代理模式、@唤起工具、Enter 发送、Shift+Enter 换行。任务管理、漏洞管理、角色、攻击链、知识库、WebShell、MCP、系统设置等功能入口都挂在左侧导航,每个页面职责单一,跟着任务找页面即可,不需要背路径。
功能深拆:单点深挖、批量运营、证据沉淀三种任务形态
单点深挖:让角色替你干活
什么情况下用:目标明确但需要特定方法论,比如只测 API、只测二进制。它会做什么:roles/目录内置 12+ 预设角色(渗透测试、Web 应用扫描、API 安全测试、二进制分析、云安全审计等),每个角色是一份 YAML,绑定专属提示词和tools工具集,等于给 AI 换一副"眼镜"。做完你能看到什么:符合该角色方法论的结论与证据,确认的漏洞自动进漏洞列表。
自定义角色就是在roles/下新增一个 YAML,启动后自动加载:
name: 自定义API安全测试 description: 专注 API 接口安全测试 user_prompt: 你是 API 安全专家,重点检测越权、参数注入、批量赋值问题 tools: [arjun, graphql-scanner] enabled: true批量运营:一组目标进队列
什么情况下用:你手里有一批目标要统一处理。它会做什么:把多个目标加入批量任务队列,每个任务作为独立对话执行,带完整状态流转(待处理/运行中/已完成/失败/已取消)和执行历史;队列支持整体启动与删除,单条任务支持重跑、编辑、删除。做完你能看到什么:逐任务的结果页,失败的任务可以单独重跑,不用整批重来。
证据沉淀:漏洞进入生命周期
对话中 AI 识别到的漏洞会自动生成结构化记录,包含描述、证据、影响分析和修复建议,随后进入生命周期管理:
- 分级:严重/高危/中危/低危/信息;
- 状态流转:打开 → 确认 → 已修复/误报;
- 批量操作:批量导出、批量删除;
- 统计看板:按等级分布与趋势实时刷新。
导出后的数据可以直接对接你们现有的工单或漏洞管理平台,测试结果不再是"一次性消费"。
进阶协作:多代理什么时候开、代价是什么
简单任务用单代理足够。面对复杂目标时,基于 CloudWeGo Eino 框架的多代理模式提供三种编排:
| 模式 | 协作方式 | 什么时候值得开 |
|---|---|---|
| Deep(深度) | 协调器 +task子代理并行取证 | 目标复杂、侦察与验证可并行 |
| Plan-Execute | 规划 → 执行 → 重新规划循环 | 长链路任务、方案需要反复修正 |
| Supervisor(监督) | 监督员统一分派任务 | 强调任务分工与优先级管理 |
代理定义全部是agents/目录下的 Markdown 文件:orchestrator.md是 Deep 协调器,orchestrator-plan-execute.md、orchestrator-supervisor.md分别对应另外两种模式,其余.md是侦察、攻击面枚举、横向移动、权限提升等子代理。每个文件由 YAML front matter(name / id / description / tools)加正文系统提示词组成,改行为直接改文件,不碰代码。
代价:多代理的 token 消耗显著高于单代理,日常扫描没必要开。批量队列默认不走多代理,需要时在配置里打开multi_agent.batch_use_multi_agent: true,成本会相应上升,按任务价值取舍。
攻击链可视化把散落的证据织成图:目标、工具、漏洞作为节点,连线展示"从哪一步走到哪一步",按风险等级着色,支持步骤回放与导出节点列表,可直接接入外部报告管道。
知识库让 AI 带着你的经验干活:扫描knowledge_base/下的 Markdown → 自动切块向量化 → 文件变更增量重建索引;检索链路组合了 MultiQuery 查询改写、rerank 精排与结果后处理,比裸向量搜索稳一截。开启配置:
knowledge: enabled: true base_path: knowledge_base embedding: provider: openai model: text-embedding-v4另外,vision.enabled: true可启用视觉分析:独立视觉模型处理截图、验证码、UI 元素,对话上下文里只保留文字摘要,功能与 token 开销两头都顾到了。
生态扩展:加一个文件就能扩能力
工具配方:所有工具都是tools/下的 YAML,支持热重载。以nmap.yaml为例,核心就四块——命令、默认参数、描述、参数表:
name: "nmap" command: "nmap" args: ["-sT", "-sV", "-sC"] enabled: true parameters: - name: "target" type: "string" required: true position: 0 - name: "ports" type: "string" flag: "-p"自研工具照抄一份改字段即可,系统自动识别加载,无需重启服务。
MCP 协议:平台原生支持 MCP(Model Context Protocol,AI 与外部工具通信的标准协议),三种接法按需选:
| 模式 | 入口 | 用途 |
|---|---|---|
| 内置 HTTP | config.yaml的mcp段 | Web 前端直接消费内置工具 |
| Stdio | cmd/mcp-stdio/入口 | 暴露给 Cursor、CLI 等外部客户端 |
| 外部联邦 | 设置 → 外部 MCP | 挂入第三方 server(HTTP/Stdio/SSE 传输) |
外部联邦的典型用法是把 Burp 认证流量、内网扫描器挂进来统一调度;mcp-servers/目录下还附带了可独立使用的 MCP 服务(如 reverse_shell),任意支持 MCP 的客户端都能接。
机器人与插件:config.yaml的robots段支持个人微信、企业微信、钉钉、飞书、Telegram、Slack、Discord、QQ,配好后手机上用「帮助 / 列表 / 切换 / 新对话 / 角色 渗透测试」这类自然语言命令即可远程操作。plugins/下还有 Burp Suite 插件(在 Burp 里直接看 AI 辅助测试结果)和 Chrome/Edge 浏览器扩展(DevTools 捕获 Network 流量转发给平台分析)。
技能包:skills/目录遵循标准 Agent Skills 结构,每个技能一个子目录、根部放SKILL.md(YAML front matter + Markdown 正文),在多代理会话中由skill中间件渐进式按需加载——这是把"团队方法论"塞给 AI 的正式通道。
信任与治理:AI 不跑偏的四道锁
第一道:HITL 人机协同。config.yaml的hitl段定义全局审批策略:default_mode取off / approval / review_edit,tool_whitelist列出免审批工具(默认是一批只读查询类工具)。审批方可以设成人工,也可以是审计 Agent——一个独立小模型审查每次工具调用的参数与影响,输出 approve / reject,审查编辑模式下还能改参后放行。内置裁决规则的精髓:注入、上传、getshell 探测这类渗透操作放行,只有会破坏业务可用性或造成数据不可逆损坏的操作才拒绝。
第二道:调用拦截。tool_guard段提供 MCP 执行前的正则拦截与提醒模板,默认启用政府域名保护规则,在「安全防护 → 调用拦截」页编辑保存后立即生效。
第三道:平台 RBAC。多用户、系统角色与自定义角色、权限 Scope、资源归属和显式授权,团队里谁能动哪类资源,边界写在配置里而不是口头约定里。
第四道:审计与留存。对话与工具调用存 SQLite,用户操作、工具执行、系统变更全程留痕,audit.retention_days控制保留期,支持 CSV 导出对接合规审查;storage段按类别(工作区 30 天、C2 产物 30 天、上传件 90 天等)管理磁盘产物,默认关闭自动清理,避免升级时误删数据。
💡 经验提示:白名单只放"只读"工具进去。写类操作(尤其 WebShell、C2 相关)建议一律走审批,出问题时审计日志能直接回放是谁、什么时候、用什么参数执行了什么。
实战剧本:三个可直接照抄的完整流程
剧本一:资产普查与暴露面清点
- 把待测 IP/域名批量加入批量任务队列,统一选"渗透测试"角色;
- 一键启动,每个任务自动跑 subfinder、nmap、nuclei 等侦察与检测工具;
- AI 逐任务汇总,确认的漏洞自动写入漏洞列表并分级;
- 打开攻击链页面,导出风险 ≥ 高的节点列表给管理层过目;
- 漏洞管理页批量导出 XLSX/CSV,进入交付流程。
剧本二:高危接口的修复回归验证
- 对已知可疑参数(如订单号)开单点对话,要求"验证是否可注入,并保留请求证据";
- AI 完成验证,
record_vulnerability生成漏洞记录,按实际影响定级; - 修复方案同步给开发,记录状态保持"打开";
- 开发修复后重放同一验证指令,复现失败;
- 将记录状态流转为"已修复",修复前后两组证据挂在同一条记录下,报告与复盘直接引用。
剧本三:授权对抗中的失陷后验证
- WebShell 页登记已控 Shell(支持 PHP/ASP/ASPX/JSP 及自定义类型);
- AI 助手标签页下达"列出当前目录""读取某配置"等指令,由 AI 转成 Shell 操作;
- 用内置 C2 启动监听器(TCP 反向连接或 HTTP 信标)维持通道,会话与任务队列持久管理;
- 委派权限提升与横向移动子代理,用 linpeas、impacket 继续侦察;
- 全程开启 HITL 审批,事后按审计日志逐步回放。
⚠️ 此剧本仅限自有系统或已获明确书面授权的对抗环境,动手前先读安全模型与安全加固文档(docs/zh-CN/ 中的security-model与security-hardening)。
FAQ:上手前先把这 5 个问题弄清楚
Q1:一个安全工具都没装,平台能用吗?能。未安装的工具执行时自动跳过或改用替代方案,先把 AI 通道和主流程跑通,再按任务装 nmap、sqlmap 这类高频工具即可。
Q2:主力模型通道被限流或抖动,任务会不会停?不会直接停。可以保存多条通道:ai.default_channel指定默认,multi_agent.eino_middleware.model_failover_channels配置重试耗尽后的故障切换顺序;单条会话还能在会话设置里随时换通道。
Q3:AI 通道的模型和知识库的嵌入模型是一回事吗?不是。ai.channels管对话模型,knowledge.embedding管向量化模型,两者独立配置;嵌入段留空的base_url/api_key会复用默认 AI 通道,少填一半字段。
Q4:出了办公室还能操作吗?可以。「系统设置 → 机器人设置」里配好企业微信、钉钉、飞书或 Telegram 等任一通道,手机端用「帮助 / 列表 / 切换 / 角色」这类自然语言命令远程驱动,权限仍走 RBAC 约束。
Q5:升级出问题去哪找退路?优先用控制台「系统设置 → 一键更新」:它会保留roles/skills/tools/agents/data/config.yaml,本地有未提交改动或历史分叉时拒绝覆盖而不是硬刷;git 工作树可用./cyberstrike-ai -update-rollback回到更新前,脚本路径的备份在.upgrade-backup/。
写在最后:今天就做的四件事
- 跑一次
./run.sh,把首次出现的admin密码抄下来并改掉; - 配一条 OpenAI 兼容通道,用"扫描 127.0.0.1 的开放端口"这类无害指令完成第一次对话;
- 把 2~3 个自有测试目标塞进批量队列,完成第一次漏洞批量导出;
- 打开
hitl.default_mode: approval并配审计 Agent,确认每次工具调用都有裁决留痕。
合规边界声明:本文全部指令仅应指向自有系统或已获得明确书面授权的目标,请遵守当地法律法规与职业道德,对任何越界行为承担责任。
【免费下载链接】CyberStrikeAIThe system of action for AI-native cybersecurity—where intent becomes governed execution, evidence becomes operational memory, and every operation improves the next.项目地址: https://gitcode.com/GitHub_Trending/cy/CyberStrikeAI
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考