Files
CyberStrikeAI/docs/zh-CN/c2.md
T
2026-07-07 14:04:18 +08:00

5.0 KiB
Raw Permalink Blame History

内置 C2 使用说明

内置 C2 用于授权环境中的会话管理、任务下发、payload 生成和结果回收。不使用时建议关闭。

c2:
  enabled: false

功能组成

主要对象:

  • Listener:监听器,负责接收会话。
  • Session:上线会话。
  • Task:下发给会话的任务。
  • Payload:生成的载荷或 one-liner。
  • Profile:通信配置模板。
  • Event:监听器、会话、任务产生的事件。
  • File:给 implant 下载或任务结果回收的文件。

Web API 前缀是 /api/c2。关闭 C2 时接口返回 503 c2_disabled

监听器

常用接口:

  • GET /api/c2/listeners
  • POST /api/c2/listeners
  • POST /api/c2/listeners/:id/start
  • POST /api/c2/listeners/:id/stop
  • DELETE /api/c2/listeners/:id

建议给监听器使用清晰命名,标明演练项目、网络区域和授权范围。

会话

常用接口:

  • GET /api/c2/sessions
  • GET /api/c2/sessions/:id
  • PUT /api/c2/sessions/:id/sleep
  • DELETE /api/c2/sessions/:id

sleep 用于调整会话轮询间隔。间隔越短,交互越实时,但流量和暴露面更高。

任务

常用接口:

  • GET /api/c2/tasks
  • POST /api/c2/tasks
  • POST /api/c2/sessions/:id/tasks
  • POST /api/c2/tasks/:id/cancel
  • GET /api/c2/tasks/:id/wait
  • GET /api/c2/tasks/:id/result-file

任务应和授权目标一致。高风险任务建议走 HITL,并在审计日志中保留操作痕迹。

Payload

常用接口:

  • POST /api/c2/payloads/oneliner
  • POST /api/c2/payloads/build
  • GET /api/c2/payloads/:id/download

生成前确认:

  • 回连地址是否正确。
  • 平台和架构是否匹配。
  • 是否需要代理、sleep、profile。
  • 文件是否只在授权环境分发。

文件

常用接口:

  • POST /api/c2/files/upload
  • GET /api/c2/files
  • GET /api/c2/tasks/:id/result-file

上传文件可供 implant 下载。结果文件可能包含敏感信息,应按项目保密级别保存和清理。

MCP 工具

C2 启用后会注册相关 MCP 工具,供 Agent 管理监听器、会话、任务、payload 等。建议:

  • 不把 C2 工具加入全局免审批白名单。
  • 在角色提示词中限制项目、目标、任务类型。
  • 对执行命令、上传文件、生成 payload 的步骤开启人工审批。

安全建议

  • 仅在授权环境启用。
  • 不在公网暴露管理 Web。
  • Listener 暴露端口与 Web 管理端口分离。
  • 定期清理会话、任务、payload 和事件。
  • 演练结束后关闭监听器并删除无用 payload。
  • 保留必要审计证据,但不要长期保存敏感输出。

排错

监听器无法启动:

  • 端口被占用。
  • 权限不足,低端口需要额外权限。
  • 防火墙或安全组未放行。

会话不上线:

  • payload 回连地址错误。
  • 目标无法访问监听器。
  • TLS/Profile 不匹配。
  • 被安全产品阻断。

任务无结果:

  • 会话 sleep 较长。
  • 会话已离线。
  • 命令在目标端卡住。
  • 结果过大,需要通过结果文件下载。

生命周期视角

C2 的正确使用不是“创建 listener 然后下命令”,而是一个生命周期:

  1. 授权确认:项目、目标、时间窗口、允许动作。
  2. Profile 设计:通信方式、sleep、回连地址、文件通道。
  3. Listener 启动:确认端口、网络路径和日志。
  4. Payload 生成:记录 hash、用途、投递方式。
  5. Session 接入:确认目标身份、权限和环境。
  6. Task 下发:只执行与授权目标一致的任务。
  7. 结果归档:必要输出写入项目事实或报告。
  8. 清理:停止 listener、删除 payload、清理 session/task/event。

跳过前两步会导致后续每个操作都不可审计。

任务分级

等级 示例 审批建议
L1 只读识别 whoami、主机名、当前目录 可由审计 Agent 放行
L2 环境枚举 网络接口、进程、用户组 建议人工或严格审计
L3 文件访问 读取配置、下载结果文件 人工确认目标和路径
L4 执行变更 上传文件、修改 sleep、运行脚本 人工审批
L5 持久化/横向/破坏 自启、凭证、删除、加密、扩散 默认拒绝,除非授权明确

把这个分级写进 HITL 提示词,比单纯“危险则拒绝”更可操作。

事件复盘

一次 C2 操作复盘至少回答:

  • 哪个 listener 接收了哪个 session
  • payload 是谁生成的,什么时候生成的?
  • session 属于哪个授权目标?
  • 下发了哪些 task
  • task 输出是否写入报告或项目事实?
  • 是否停止 listener 并清理 payload

如果这些问题答不上来,说明 C2 过程管理还不够闭环。

源码锚点

  • C2 Managerinternal/c2/manager.go
  • Listenerinternal/c2/listener.go
  • HTTP Listenerinternal/c2/listener_http.go
  • TCP Listenerinternal/c2/listener_tcp.go
  • Payloadinternal/c2/payload_builder.go
  • Handlerinternal/handler/c2.go
  • MCP 工具:internal/app/c2_tools.go