ubercylon8/f0_pentest
GitHub: ubercylon8/f0_pentest
面向本地 AI 代理的隐私优先型进攻性安全工具包,专为渗透测试和红队评估提供端到端的自动化驱动与严格的人工可控机制。
Stars: 0 | Forks: 0
# f0_pentest — 面向本地 AI Agents 的进攻性安全工具与技能
[](https://opensource.org/licenses/Apache-2.0)
[](https://www.python.org/)
[](https://github.com/ubercylon8/f0_pentest/actions/workflows/ci.yml)
**f0_pentest** 将 AI agents 连接到真实的进攻性工具——包括侦察、Web 和 Active Directory 枚举、受控的漏洞利用以及带有证据的报告——使得 **penetration tester 或 red teamer** 能够端到端地执行一次授权的测试任务。它专为在**您自己的基础设施上使用小型、开放权重模型**运行而构建——没有遥测,没有测试数据离开主机,不依赖前沿的云端 API。
## 目前可用的功能
六个 MCP servers 提供了 **27 个工具**——默认可逆,所有七种不可逆操作类别均受 flag + 人工确认 + 审计限制:
| Server | 状态 | 工具 | 封装 |
|---|---|---|---|
| `f0-recon` | ✅ | 5 | nmap, httpx, subfinder (+ 离线 XML 解析) |
| `f0-web` | ✅ | 4 | nuclei (+ 离线筛选) |
| `f0-ad-enum` | ✅ | 4 | netexec, LDAP, BloodHound 收集 + 离线路径分析 (只读) |
| `f0-ad-actions` 🔒 | ✅ 受控 | 6 | netexec, impacket, bloodyAD, certipy |
| `f0-web-actions` 🔒 | ✅ 受控 | 1 | sqlmap |
| `f0-report` | ✅ | 7 | 测试生命周期 + 证据存储 (无外部二进制文件) |
此外还有一个共享的 `core/`(scope gate、控制机制、findings schema、CVSS、脱敏处理、证据存储),涵盖 5 个类别的 **18 个可移植的 [agentskills.io](https://agentskills.io) 技能**,四个角色人设,针对 opencode / Hermes / pi 的运行时配置,以及一个小型模型评估测试套件。[完整工具参考](docs/reference/tools/README.md)——从代码生成,并在 CI 中进行偏移检测。
## 面向 penetration tester 和 red teamer
- **范围优先,默认拒绝。** 没有一个处于活动状态且 `scope.yaml` 带有 `authorization_ref` 的测试任务,任何操作都不会运行。明确的范围外条目始终优先于范围内条目——客户的“不要碰那台机器”的指令即使在过度热情的模型面前也能得到保障。默认拒绝,在服务器端强制执行,不受 prompt 中的任何内容影响。
- **由人类掌控每一个不可逆时刻。** Spray、exec、relay、write、cert、dcsync 和 webexploit 均需要操作员设置的 flag **以及** 一个在带外发出的、全新的、一次性的、绑定目标的确认——模型永远看不到 token。如果没有它,该工具只会记录一个*意图*而不执行任何操作。Spraying 始终需要确认,因为账户锁定正是授权测试演变成安全事件的原因。
- **构造性隐私。** 测试数据——基础设施映射、漏洞、恢复的凭证——永远不会离开主机。凭证通过 `cred_ref` 引用并在服务器端解析,绝不进入模型上下文。所有输出都会进行脱敏处理,**包括错误路径**。审计条目仅记录目标 + `cred_ref`。
- **一个证据库,一份报告。** 每个工具都返回相同的 [findings schema](docs/explanation/findings-schema.md),记录到测试任务中,使用真正的 CVSS v3.1 实现进行评分,并渲染为**不依赖模型**的 Markdown——报告结构绝不取决于模型的情绪。
在部署前请阅读 **[安全模型](docs/explanation/security-model.md)**——它记录了提供的保证*以及*未涵盖的内容。然后阅读 **[用户指南](docs/user-guide/README.md)** 了解各运行时的设置、测试任务、技能和工作流。
## 面向本地 AI 构建者 —— 差异化优势
小型本地模型现在在 tool calling 方面已经非常出色,但是当面对复杂的 schema、过多的工具以及超大的 payload 时,其可靠性会下降。这里的每个工具都是针对这一点设计的:**扁平的标量参数,简短的封闭枚举,每个 server ≤ ~8 个工具,有限/分页的输出。** 而且我们会**衡量**它,因此它不会悄无声息地退化。
在 tool calling 的 [**记分卡**](evals/SCORECARD.md) 中,**Qwen3.5 9B 在每个 server 上都达到了 100%/100%**(工具选择 / 参数填充),同时 Qwen3 4B、Qwen3.5 4B 和 Gemma 4 12B 在包含 26 个工具的注册表中得分均 ≥ 94%。其背后的设计准则是:*一个通过了契约测试但小型模型却无法可靠调用的工具就是一个**设计缺陷**——应该简化 schema,而不是降低标准。*
记分卡自身声明的一点需要注意:**单步可调用性并不意味着 agentic 可靠性**,这就是为什么多步骤技能遵循度在 [`AGENTIC.md`](evals/AGENTIC.md) 中单独评分的原因。请根据这些数据选择您的驱动模型。
- [`docs/explanation/small-model-design.md`](docs/explanation/small-model-design.md) —— 规则、衡量循环以及我们刻意没有构建的内容。
- [`docs/running-with-local-models.md`](docs/running-with-local-models.md) —— 使用 llama.cpp / vLLM / Ollama 部署 tool calling 模型。
### 查看运行效果(无需目标、无需 GPU、无需测试任务)
```
uv sync --all-packages # core + 6 servers + dev tooling
uv run pytest # 317 tests: contract, guards, harness
uv run python scripts/demo_mock_findings.py # offline end-to-end findings demo
```
关于打印输出内容及其重要性的演示说明:[`docs/demo.md`](docs/demo.md)。
## 快速开始
使用您选择的运行时来驱动它:
- **[opencode](docs/user-guide/runtimes/opencode.md)** —— 推荐;配置已内置在代码库中(`opencode.json`,`.opencode/` agents + skills),只需从 checkout 目录中运行即可。
- **[Hermes](docs/user-guide/runtimes/hermes.md)** / **[pi](docs/user-guide/runtimes/pi.md)** —— 请查看 `integrations/`。
- **[Claude Code](docs/user-guide/runtimes/claude-code.md)** *(旧版)* —— `./install.sh` 仍然会安装技能、权限墙和角色人设,但上面的 MCP 运行时是主要的。
然后创建一个测试任务——**在您这样做之前,不会运行任何攻击性操作**。请参阅[测试任务](docs/user-guide/engagements.md)。
部署一个模型并衡量它驱动工具的效果:
```
llama-server -m /models/qwen3-8b.gguf -a qwen3-8b --port 8080 -c 16384 --jinja
uv run python -m evals.run --server all --base-url http://localhost:8080/v1 --model qwen3-8b
```
请参阅 [`evals/README.md`](evals/README.md)。
## 文档
从 **[`docs/README.md`](docs/README.md)** 开始——它会根据您的身份进行引导。
| 如果您想… | 请阅读 |
|---|---|
| 在授权之前了解信任机制 | [安全模型](docs/explanation/security-model.md) |
| 安装并运行您的第一次测试任务 | [入门指南](docs/user-guide/getting-started.md) |
| 了解范围和授权是如何工作的 | [测试任务](docs/user-guide/engagements.md) |
| 启用并批准不可逆操作 | [受控操作](docs/user-guide/gated-actions.md) |
| 通过小型模型良好地驱动它 | [Prompting](docs/user-guide/prompting.md) |
| 查看端到端流程 | [工作流](docs/user-guide/workflows.md) |
| 查找工具、技能或术语 | [工具](docs/reference/tools/README.md) · [技能](docs/reference/skills.md) · [术语表](docs/reference/glossary.md) |
| 贡献代码 | [CONTRIBUTING.md](CONTRIBUTING.md) · [架构](docs/explanation/architecture.md) |
## 仓库布局
```
core/ f0_pentest_core — all safety/cross-cutting logic
servers/ recon, web, ad-enum, ad-actions, web-actions, report (uv workspace members)
skills/ Portable agentskills.io skill render (generated, committed)
dist/claude-code/ Claude Code skill render (generated, committed; install.sh source)
maintainer/ src/ single source + build.py dual-renderer + gen_guide.py + TOOLS.md
integrations/ hermes + pi runtime wiring (drift-guarded)
evals/ small-model callability + agentic harness, tasks, scenarios, scorecard
scripts/ confirm_action.py (approval CLI), gen_docs.py, smoke, demo
docs/ explanation, user guide, reference (generated), plans
assets/ install.sh verify-wall.sh Claude Code installer + permission wall
.opencode/ opencode.json in-repo opencode runtime
```
**维护者:** 编辑 `maintainer/src/`,然后运行 `python3 maintainer/build.py && python3
maintainer/gen_guide.py`(两个渲染结果和技能参考都会重新生成;时效性由
测试强制执行)。要添加或更改工具,请遵循 [`maintainer/TOOLS.md`](maintainer/TOOLS.md)
和 [`CLAUDE.md`](CLAUDE.md)。项目的未来发展方向:[`ROADMAP.md`](ROADMAP.md)。
## 测试任务数据不在此 repo 中
本仓库仅包含**工具包**。测试任务文件夹(收集的信息、证据、发现、
凭证、报告、`scope.yaml`)位于您在信息收集时设置的 `storage_path` 中,
并通过 `~/.f0pentest/engagements/active`(或 `~/.claude/engagements/active`)指向——
永远不会在这里。[`.gitignore`](.gitignore) 是一个双重保险的安全网,
用于排除测试任务产物和机密材料。**切勿提交恢复的凭证
或客户数据。**
## 安全
发现了绕过 scope gate、控制流程或脱敏处理的方法?请私下报告——
参阅 [SECURITY.md](SECURITY.md)。请注意,*支持授权的进攻性活动是
产品本身,而不是漏洞*;但**绕过安全控制**绝对是漏洞。
## 许可证
Apache-2.0 —— 参阅 [LICENSE](LICENSE) 和 [NOTICE](NOTICE)。
f0_pentest 编排的第三方攻击性二进制文件(nmap、httpx、subfinder、nuclei、
netexec、impacket、bloodyAD、certipy、sqlmap、BloodHound 收集器)**并未**在此处内置
或重新分发,它们仍受其各自的许可证约束。
标签:AI智能体, MCP服务器, SNMP, 人工智能, 域名收集, 密码管理, 插件系统, 本地部署, 用户模式Hook绕过, 运行时操纵, 逆向工具