deonmenezes/appsec-redteam-harness

GitHub: deonmenezes/appsec-redteam-harness

一个仅依赖 Python 标准库的独立多智能体红队渗透测试框架,针对 Web 应用层在授权范围内完成从攻击面测绘到证据驱动报告的完整安全评估流程。

Stars: 0 | Forks: 0

# 🛡️ appsec-redteam-harness

scope: authorized-only pattern: supervisor OWASP Top 10 2021 deps: stdlib only python 3.10+

## ⚠️ 仅限授权使用 这是**攻击性安全工具**。请**仅**针对您拥有或获得**明确书面授权**进行测试的系统运行此工具。在大多数司法管辖区,未经授权扫描或利用计算机系统是非法的(例如美国《计算机欺诈和滥用法》、英国《计算机滥用法》以及全球类似的法律法规)。 该 harness 的设计旨在让您保持在合规界限内: - **授权范围是强制执行的,而非建议性的。** 协调器会解析您的授权范围,将其持久化到内存中,并在每次任务委派时传递该范围。任何针对范围外主机的发现都会被标记为 `VOID` 并记录在案。 - **设计上即为非破坏性。** Agent 仅使用仅用于检测的 canary(SQLi 错误/布尔/时间盲注探针,免执行的 XSS polyglot,`{{7*7}}` 风格的 SSTI 检测,安全的 SSRF 指示器)。不进行数据窃取,不进行拒绝服务攻击,不建立持久化。如果无法安全地确认某个发现,该发现将被升级为**“需要人工审查”**,而不是被直接利用。 - **无证据则视为未发生。** 每个确认的发现都必须引用逐字的 HTTP 请求/响应证据、CVSS 3.1 向量以及 CWE / OWASP 类别——这是由质量门强制执行的。 您需对自己的使用方式负责。请参阅 [`AUTHORIZED_USE.md`](AUTHORIZED_USE.md)。 ## 快速开始 ``` cp .env.example .env # add ANTHROPIC_API_KEY (or another provider) # 1) 交互式 TUI — 优先聊天,在内部输入 /help ./appsec_redteam_harness # 2) 一次性执行,范围限定于您的授权 target ./appsec_redteam_harness "AUTHORIZED ENGAGEMENT. In-scope target (only host): \ https://staging.example.com — I have written authorization. Map the attack \ surface, probe OWASP Top 10 (focus SQLi, XSS, access control) with safe \ non-destructive checks, validate with CVSS, and produce a pentest report." # 3) 相同的运行,但会重试直到 report 通过 quality gate ./appsec_redteam_harness --loop "AUTHORIZED ENGAGEMENT. In-scope target: ..." ``` 无需框架,无需 `pip install` —— `app.py` 即为完整的运行时(包含 providers、工具、 supervisor 模式、guardrails、内存、LLM-judge 质量门以及 TUI),仅依赖 Python 标准库。只需带上您的 API key 即可开始。 **Providers:** `anthropic/…` (默认), `openai/…`, `groq/…`, `openrouter/…`, `ollama/…` (本地)。通过 `--model anthropic/claude-sonnet-4-6` 一次性切换所有 agent, 或在 TUI 中使用 `/model `。 ## 团队 采用 **supervisor** 模式 —— `pentest_coordinator` 负责规划测试任务、强制执行 授权范围,并将每个阶段委派给专家,最后将所有内容移交给报告者。 | agent | 阶段 | 功能描述 | |---|---|---| | 🧭 `pentest_coordinator` | 编排 | 规划阶段,**强制执行授权范围**,对发现去重,整合报告 | | 🗺️ `surface_mapper` | 侦查 | 爬取路由、表单、参数、认证流程、cookies、headers 以及技术指纹 | | 🔎 `vuln_hunter` | 发现 | 采用结构化的 OWASP Top 10 测试矩阵及安全、仅用于检测的探针 | | 🧪 `vuln_validator` | 验证 | 安全的 PoC 确认 + 附带各维度依据的 CVSS 3.1 评分 | | 📝 `report_writer` | 报告 | 证据、复现步骤、CWE/OWASP 映射、按优先级排序的修复建议 | **覆盖范围:** injection (SQLi / command / SSTI), broken access control & IDOR, broken authentication & session management, XSS (reflected / stored / DOM), SSRF, insecure deserialization, security misconfiguration, sensitive data exposure, CSRF. ## 质量门 `--loop` 会运行一个 LLM-as-judge 质量门(得分 ≥ 7.0),报告必须通过此项检测: - 每个发现都引用了**逐字的请求/响应证据** —— 无证据,则无发现 - 所有测试过的 endpoints 都**被证明在授权范围内**;对未授权主机的发现数量为零 - 每个发现都包含**有效的 CVSS 3.1 向量 + 得分**,并带有匹配的严重性标签 - 复现步骤**足够精确,以便开发人员能够独立复现** - 所有 PoC 都**表现出明确的非破坏性**;无法确认的发现 → *需要人工审查* - 每个发现都映射到一个 **CWE + OWASP Top 10 2021** 类别,并附带按优先级排序的修复建议 ## 编辑 agent —— `{{ }}` prompt 结构剖析 每个 agent 的系统 prompt 都是每次运行时从 **`prompts/ANATOMY.md`** 重新组装的, 它包含五个明确的插槽,让您始终确切知道该把内容放在哪里: | 插槽 | 填充来源 | 归属内容 | |---|---|---| | `{{IDENTITY}}` | `prompts/.md` | agent 的身份、目标及其标准 | | `{{ENVIRONMENT}}` | 由 `app.py` 实时注入 | 无内容 —— 运行时事实绝不手写 | | `{{BEHAVIORAL_RULES}}` | `skills/*.md` | 流程、测试矩阵、陷阱(篇幅最大的部分) | | `{{OUTPUT_FORMAT}}` | `harness.json` → `agents[].output_format` | 确切的响应结构 | | `{{SAFETY}}` | 从 `harness.json` 的 guardrails 生成 | 无内容 —— 应改为编辑 guardrails | 编辑任何 `prompts/*.md` 或 `skills/*.md`,保存后重新运行即可 —— 无需重新构建。 在 identity/skills 内部,您可以使用像 `{{date}}` 和 `{{working_directory}}` 这样的实时变量。 TUI 中的 `/prompts` 会渲染此映射,并提供每个文件的 token 估算。 ## 目录结构 ``` appsec-redteam-harness/ ├── appsec_redteam_harness launcher → app.py ├── app.py the whole harness: providers, tools, supervisor │ pattern, guardrails, memory, judge gate, TUI ├── harness.json team wiring: models, tools, gate, guardrails ├── prompts/ ANATOMY.md (assembly) + one identity file per agent ├── skills/ behavioral rules — the OWASP test craft ├── memory/ MEMORY.md (durable facts, injected every run) ├── docs/ drop .md/.txt references → agents search them ├── workspace/ the agents' sandbox (files & shell confined here) └── runs/ one JSONL trace per run (created at runtime) ``` ## Guardrails (在代码中强制执行,而不仅是写在提示词中) - **沙盒:** 所有文件和 shell 活动都限制在 `workspace/` 目录内;拒绝任何路径逃逸行为。 - **Shell 黑名单:** 破坏性模式(`rm -rf /`, `sudo`, `mkfs`, …)会在执行前被拦截。 - **预算:** 设有每次运行的 token 和自然时间上限;在停止时,agent 会如实总结当前状态。 - **抗 Prompt-injection:** 获取到的页面和工具输出被视为数据,绝不被当作指令执行。 使用 [harness-builder](https://github.com/deonmenezes) 构建 —— 输入 prompt,输出独立 harness。请合法、负责任地使用。
标签:CISA项目, OWASP Top 10, Python, Web安全, 多智能体, 无后门, 自动化漏洞扫描, 蓝队分析, 逆向工具