Z3r0 实战指南:用 392⭐ 开源 AI 渗透测试工具搭建自动化安全审计工作台
AI 辅助渗透测试不是新概念,但大多数方案只是把 LLM 塞进已有的扫描器里,本质还是一个「AI 增强的传统工具」——你提出问题,AI 给出思路,然后你手动操作。Z3r0 走的是另一条路:它把整个红队行动拆成可编排的专家 Agent 团队,每个 Agent 有明确的角色(侦察、代码审计、逆向工程、密码学验证),运行在 Docker 沙箱里,输出记录到可回放的时间线证据链。部署到本地只需要一个 docker compose up。
什么是 Z3r0?
Z3r0 是一个 AI-native 开源红队工作台(MIT 协议,392⭐,Python),专门为授权渗透测试和漏洞研究设计。它的核心理念是 Authorization Before Automation——所有操作必须在明确的授权范围内执行,然后 AI 专家团队才会开始工作。
架构分为清晰的分层:React 前端工作台 → FastAPI API 层 → Agent 运行时编排层 → Docker 沙箱执行层 → PostgreSQL 持久化层。前端只消费 REST/WebSocket 合同,不直接依赖模型 SDK 或提供商内部实现,这意味着你可以替换后端模型提供商而不改前端代码。
五分钟本地部署
Z3r0 的部署极其简单,依赖只有 Docker Engine + Docker Compose。
git clone https://github.com/yv1ing/Z3r0.git cd Z3r0 cp .z3r0/config.json.example .z3r0/config.json
编辑 config.json,必须设置三个关键值:
{
"system": {
"encrypt_key": "你的32位随机加密密钥",
"bootstrap_admin": {
"password": "管理员强密码"
}
},
"agents": {
"cso": {
"base_url": "https://api.openai.com/v1",
"api_key": "sk-xxx",
"model": "gpt-5.5",
"context_window": 1000000
}
}
}
encrypt_key 至少 32 个随机字符,bootstrap_admin.password 设置初始管理员密码,agents 下配置每个专家 Agent 的模型端点(支持 OpenAI、Anthropic、本地推理等兼容接口)。
配置完成后启动:
docker compose -f docker-compose.prod.yml up -d --build
服务监听 http://127.0.0.1:8000,首次启动自动创建数据库表,登录后即可创建 WorkProject 开始工作。
六人专家团队,各司其职
Z3r0 的 Agent 团队模拟了一个完整的红队组织架构:
| 代号 | 名字 | 角色 | 职责 |
|---|---|---|---|
cso | Z3r0 | 安全总监 | 任务分解、协调、结果整合 |
cae | V3ra | 审计总工 | 源码审计、依赖审查、修复验证 |
cie | L1ly | 情报总工 | 侦察、资产发现、关系映射 |
cpe | Fr4nk | 渗透总工 | 渗透测试、漏洞验证、影响评估 |
cre | J4m3 | 逆向总工 | 文件/二进制/固件/APK 逆向 |
cce | Nu1L | 密码总工 | 协议审查、密钥管理、加密实现分析 |
每个 Agent 在会话启动时由 AgentRegistry 按配置组装——角色规格、知识库、沙箱绑定、WorkProject 绑定。命令工具只在有授权运行的沙箱时才挂载,WorkProject 记录工具只在项目会话中挂载,普通聊天会话与资产/发现/攻击路径完全隔离。
运行时模型的核心设计
中断驱动的任务执行
Agent 循环由 run_until_idle 管理,事件流通过 iter_interruptible_events 驱动。当外部通知(如子 Agent 完成、沙箱任务返回)到达时,系统会在安全点(挂起工具调用完成后)抛出 InterruptSignal——这个机制参考了 CPU 中断屏蔽的原子性设计。
非阻塞实例驱动
主 Agent 和子 Agent 都通过 instance driver 驱动。driver 执行初始回合、处理当前可认领的通知,然后 settle。如果后台工作仍是 AWAITING 状态,driver 会保持静默;完成通知会重新启动通知所属的 driver 实例。
通知驱动的活性
AgentNotification 行是整个系统的唯一真相源:
AWAITING: 正在运行的后台义务PENDING: 唤醒 AgentPROCESSING: 已认领的通知回合
时间线事件日志
实时事件被标记稳定的序列号(seq)后写入持久化事件日志。回放时读取的是相同的 wire events,而不是从 SDK 消息重构 UI 状态。这意味着你可以随时回放一次渗透测试的完整操作过程,包括每个 Agent 的思考、工具调用和输出。
上下文压缩与持久会话
Z3r0 的运行时包含内置的上下文压缩机制。当上下文接近模型窗口时(触发比例 95%,硬停止 98%),系统会自动压缩早期的投影历史,同时保留最近的上下文(25% 的比例或至少 20 条最近项)。context_compression_summary_max_tokens 默认为 8000 tokens,确保压缩后的摘要足够详细。
这个设计意味着你可以运行长时间的红队任务——侦察几天、验证几周,Z3r0 的 WorkProject 和 Timeline 会持续记录,不会因为上下文限制而丢失中间状态。
沙箱执行边界
所有命令执行、浏览器工作流、文件管理、GUI 工具和技能都通过绑定的 Docker 沙箱运行,而非应用宿主机。容器挂载 /var/run/docker.sock 来管理沙箱容器,所以宿主机应该被视为受信隔离环境。
配置中的池管理参数可以控制并发:
{
"agent_pool": {
"max_size": 256,
"ttl_seconds": 1800,
"sweep_interval_seconds": 60
}
}
适用场景
Z3r0 最擅长的不是替代现有的扫描器(Nessus、OpenVAS),而是填补「自动化」和「人工分析」之间的空白。以下场景特别适合:
- 源码审计:CAE Agent 可以逐步审计整个代码库,输出每个发现的文件路径、风险等级和修复建议
- 攻击路径分析:CSO 协调 CIE 和 CPE,从资产发现到漏洞验证形成完整的攻击链
- 固件/APK 逆向:CRE Agent 专门处理二进制分析和移动应用逆向
- 密码学实现审查:CCE Agent 审查 TLS 配置、密钥管理、加密库的正确使用
- 培训环境:在受控环境中让新人学习真实的红队工作流
注意事项
Z3r0 不是一个”点一下自动黑掉一切”的工具。它是一个需要授权声明、范围定义、人工监督的红队工作台。每个 WorkProject 都应该在启动前明确声明目标范围、所有者、沙箱配置。证据记录和可回放时间线就是为审计和事后复查准备的——不是你运行了就万事大吉。
模型凭证、终端访问、文件管理和沙箱容器都是高权限资产,只应在受信隔离环境中使用。如果你的工作涉及敏感目标,建议使用本地模型(通过 Ollama 或 vLLM)而非外部 API。
总结
Z3r0 在 392⭐ 时被我们发现,项目质量远超同 Star 级别的工具。MIT 许可证、完整的 Python 实现、Docker 一键部署、六人专家团队、Docker 沙箱隔离、PostgreSQL 持久化、可回放时间线——这些构成了一个生产级渗透测试工作台的完整拼图。如果你的团队有定期的红队任务或安全审计需求,花一个周末部署 Z3r0 试试看,它可能会改变你对「AI 辅助渗透测试」的认知。