braydos-h/NetAttackAi

GitHub: braydos-h/NetAttackAi

一款基于本地 Ollama LLM 的 AI 驱动渗透测试与漏洞研究 Agent,通过 MCP 架构和多 Agent 集群实现自动化安全评估。

Stars: 2 | Forks: 0

# NetAttackAI **AI 驱动、本地优先的渗透测试与漏洞赏金研究 Agent。** NetAttackAI 是一款本地优先的 Python 应用程序,它使用 Ollama LLM 来规划并执行已授权的安全评估。它将防御性、受范围限制的 MCP 扫描服务器与宽松的、锁定目标的 exploit MCP 服务器、多 Agent 集群、自动化任务编排器、Textual TUI 和交互式菜单结合在一起——所有这些都由操作员本地机器上的本地模型驱动。 ## ⚠️ 授权与负责任的使用 NetAttackAI 是一款攻击性安全工具。**请仅在您拥有或获得明确书面授权测试的网络、系统和应用程序上运行它。** 未经授权扫描或利用您不拥有或无权测试的系统是非法且不道德的。 使用本软件即表示您对自己的行为承担全部责任。作者和贡献者对滥用行为不承担任何责任。将输出视为建议,并在采取行动之前验证每一个发现。如有疑问,请勿运行。 这是一个**仅供实验室使用的构建版本**:攻击路径不受限制,但被锁定为操作员指定的单个 IP(参见[安全与范围模型](#safety--scope-model))。Recon 保持完全受范围限制且仅限提议。 ## 它是什么 NetAttackAI 在同一核心上具有两个接口: - **Exploitation 引擎** (`main.py` / `app.py`) —— 操作员实际运行的现代、异步、基于 MCP 的路径。开启 MCP exploit 会话,分发工具调用,并可以驱动多 Agent 集群或持久的自动化任务。 - **遗留研究循环** (`cli.py` + `agent_loop.py`) —— 一个基于数据库、受范围限制、无头/CI 友好的工作流,使用 SQLite (`research_workspace/`)。 两者共享相同的任务/范围 schema。范围、命令和搜索安全性在 Python 代码中强制执行,而不仅仅是在 prompt 中。 ## 特性 - **MCP exploit 引擎** —— 一个宽松的 exploit MCP 服务器 (`mcp_exploit_server.py`),公开终端执行、Python 文件写入/运行、searchsploit、Metasploit、msfvenom、impacket 横向移动、凭据转储等功能——在策略层进行限制。 - **防御性 MCP 服务器** (`mcp_server.py`) —— 受范围限制的 Nmap 扫描、经过净化的漏洞搜索以及 NVD CVE 查询。 - **多 Agent 集群** (`tools/swarm/`) —— 6 个专家 Agent(recon、vuln、exploit、post-exploit、critic、reflection),具有共享黑板和并行分发功能。 - **自动化编排器** (`tools/autonomous_orchestrator.py`) —— 持久的多阶段任务,具有自适应攻击性、自动重试和漏洞链接功能。 - **Textual TUI** (`python -m tui`) —— 18 屏仪表板,包含任务、工作、发现、证据、范围、目标、目标图、报告、日志、设置、集群、技能和记忆。 - **交互式菜单** —— 方向键驱动的启动器(默认的无参数行为)。 - **运行时技能** —— 基于精选技能目录的咨询性 prompt 上下文层,具有语义匹配、运行中重新选择和跨任务反馈功能。 - **多模型咨询** —— 在构建 exploit 或从反复失败中恢复时,可选的咨询性对等模型咨询。 - **长会话模式** —— 可选的数小时攻击运行,支持崩溃安全恢复。 - **Recon pipeline** —— 主机发现、服务识别、丰富化以及基于 recon 的目标建议。 - **NVD CVE 查询** —— 具有熔断器、速率限制的 CVE 情报。 - **报告** —— 每次运行的时间线、CVSS、漏洞链和发现导出。 ## 架构 单个评估控制器开启一个 MCP exploit 会话,并通过模型路由器(Ollama)分发工具调用。Recon 流经防御性、受范围限制的服务器;攻击流经宽松、锁定目标的 exploit 服务器。可选的集群将工作分解给专家 Agent,而自动化编排器驱动持久的多阶段任务。有关全貌,请参见 [`docs/architecture.md`](docs/architecture.md) 和 [`docs/runtime-flows.md`](docs/runtime-flows.md)。 ## 要求 - **Python 3.10+**(支持 3.10–3.12)。 - **nmap** 在 `PATH` 中(或在 `config.yaml` 中设置 `nmap.path`)。在 Linux 上,`-O`/`-sS` 需要 root 权限 —— 设置 `nmap.sudo: true`(使用 `sudo -n`)或以 root 身份运行;否则防御性服务器会自动降级这些标志。 - **Ollama** 运行在 `http://localhost:11434`,并拉取了默认模型 `glm-5.2:cloud`(`ollama show glm-5.2:cloud`)。 - **可选的 Kali 工具**(在 Linux 上提供完整武器库):Metasploit (`msfconsole`)、`searchsploit`、`tmux`、`hydra`、`impacket`。在 Windows 上,攻击者仅支持 Python。 ## 安装 ### 快速安装 一个脚本会安装所有内容,并将全局的 `natai` 命令放在您的 PATH 中: ``` ./install.sh # OS deps + Ollama + venv + models + doctor, then installs `natai` source ~/.bashrc # or open a new terminal, so `natai` is on PATH natai # interactive menu — works from any directory ``` `natai` 在运行前始终会 `cd` 进入仓库根目录,因此无论您从哪里调用它,`config.yaml`、`mission.yaml` 和 `reports/` 都能正确解析。要稍后移除它: ``` ./install.sh --uninstall # removes `natai` and the PATH line from your shell rc ``` 环境变量开关:`INSTALL_KALI_TOOLS=0`(跳过 Kali 专属软件包),`SKIP_MODEL_PULL=1`(跳过模型下载),`ADD_TO_PATH=0`(不安装 `natai` 命令)。 ### 手动安装 **Linux / macOS** ``` python3 -m venv .venv source .venv/bin/activate python -m pip install -r requirements.txt nmap --version # must be on PATH or set nmap.path ollama show glm-5.2:cloud # default model — verify reachable ``` **Windows (PowerShell)** ``` python -m venv .venv .\.venv\Scripts\Activate.ps1 python -m pip install -r requirements.txt nmap --version ollama show glm-5.2:cloud ``` 便捷辅助脚本: ``` make install # venv + pip install -r requirements.txt make doctor # python main.py --doctor ./scripts/setup-linux.sh # one-shot venv + deps + doctor check ``` 如需可编辑的包元数据和开发附加组件(pytest、coverage、ruff): ``` python -m pip install -e ".[dev]" ``` ## 快速开始 ``` python main.py # interactive menu (default no-args) python main.py --menu # same interactive menu, explicit python main.py --tui # launch the Textual TUI dashboard python -m tui # same TUI, alternate entry python main.py --target 10.0.0.50 --mode recon --recon-first python main.py --target 10.0.0.50 --mode attack --goal backdoor python main.py --target 10.0.0.50 --mode attack --swarm --critic --reflection --adaptive-exploits python main.py --exploit --exploit-mode standalone --exploit-target 10.0.0.50 \ --exploit-cve CVE-2021-44228 --exploit-permission full_access ``` 冒烟测试: ``` python main.py --version # NetAttackAI 0.49.2 python main.py --doctor # environment + config diagnostics python main.py --self-test # safe localhost smoke test ``` ### 遗留研究 CLI(写入 `research_workspace/research.db`) ``` python cli.py init-mission --config mission.yaml python cli.py next-task python cli.py run-task T-00001 python cli.py list-findings python cli.py generate-report F-00001 python cli.py status ``` ## 配置 所有定义行为的设置都位于 **`config.yaml`** 中。任务范围(允许/禁止的资产、禁止的操作、风险概况、测试模式、速率限制)位于 **`mission.yaml`** 中,由 `cli.py` / `mission.py` 加载。 重要的 `config.yaml` 默认设置(实验室构建): - `exploit.permission: full_access` —— 实验室攻击姿态(recon 仍通过缺失键回退解析为 `read_only`)。 - `exploit.attack_mode: true` - `exploit.require_explicit_allowlist: true` —— 运行时 `--target` 通过 `EXPLOIT_TARGET` 合并进来;这就是目标 IP 锁。 - `exploit.allowed_targets: []` - `swarm.enabled: true` - `memory.semantic_enabled: true` - `ollama.model: glm-5.2:cloud` (976K 上下文) 提供商 API 密钥从 `config.yaml` 中引用的环境变量中读取(`NVD_API_KEY`、`OLLAMA_API_KEY`、`SERPAPI_API_KEY`);请参见 [`.env.example`](.env.example)。 可以通过 `python main.py --setup-api-keys` 填充本地密钥文件(`secr.json`,已被 gitignored)。 ## CLI 参考 | 标志 | 用途 | |------|---------| | `--target ` | 用于 recon 或攻击的目标 IP。 | | `--mode {recon,attack}` | `recon` = 收集情报,`attack` = 完全 exploitation。 | | `--goal ` | 预设目标(`backdoor`、`initial_access`、`privilege_escalation`、……)。 | | `--custom-goal ` | 自定义目标描述。 | | `--recon-first` | 先 recon 再攻击的流程。 | | `--tui` / `--menu` | 启动 TUI 仪表板 / 强制进入交互式菜单。 | | `--swarm` | 启用多 Agent 集群模式。 | | `--critic` / `--reflection` | Critic 预批准 / reflection Agent(需要 `--swarm`)。 | | `--adaptive-exploits` | 自适应 exploit 选择。 | | `--long-session` | 可选的数小时攻击模式,支持崩溃安全恢复。 | | `--model ` | 覆盖默认模型别名(`glm`/`kimi`/`deepseek`/`deepseek_flash`/`minimax`)。 | | `--mcp-transport {stdio,http}` | Exploit MCP 传输方式。 | | `--skills {on,off,hints,lookup}` | 运行时技能模式。 | | `--multi-model-consult` | 启用咨询性对等模型咨询。 | | `--exploit ...` | 独立 exploit 子命令(`--exploit-target`、`--exploit-cve`、`--exploit-permission`)。 | | `--doctor` / `--self-test` | 环境诊断 / 安全的本地主机冒烟测试。 | | `--resume` | 从先前会话的检查点恢复。 | | `--version` | 打印版本并退出。 | ## 安全与范围模型 - **Recon** 完全受范围限制且仅限提议(`read_only`):Agent 收集情报并提出攻击建议,而不执行它们。会话后的 `SafetyReviewer` 会在每次工具调用时运行。 - **攻击** 是**锁定目标的**:AI 可以对该目标 IP 执行任何必要的操作,但无法转向其他主机。该锁定在 MCP 工具层强制执行,通过提取每个目标(URL authorities、`/dev/tcp` 主机、LHOST/RHOST、扫描器目标、裸 IP)并拒绝任何不在白名单中的目标(`exploit.allowed_targets` ∪ 运行时 `--target`)。 - **三个权限级别**(`tools/exploit_agent/policy.py`):`full_access`(实验室)、`approve_only`(每个操作都需要 `ALLOW `)、`read_only`(仅提议)。 - **无论配置如何都严格禁止的操作**(`scope_gate.py`):拒绝服务、破坏性 exploit、社会工程学、物理攻击、恶意软件、凭据窃取。 - **完整的 JSONL 审计跟踪**(`exploit_audit.jsonl`),包含生成代码的 SHA256。 有关完整的范围/风险/权限模型和安全开发规则,请参见 [`docs/safety-model.md`](docs/safety-model.md)。 ## 项目布局 ``` main.py / app.py assessment controller (Flow A entry points) cli.py legacy research CLI (Flow B entry point) mcp_server.py defensive, scope-gated MCP server mcp_exploit_server.py permissive, target-locked exploit MCP server config.yaml runtime configuration mission.yaml mission scope + risk profile tools/ exploit agent, swarm, autonomous orchestrator, MCP tools, recon pipeline, attack modules, skills, reporting, … tui/ Textual TUI (18 screens) tests/ ~80 test files (all mock subprocess / network) docs/ engineering docs (architecture, flows, safety, extension, …) skills-to-add/ curated runtime skill catalog ``` ## 测试 ``` python -m pytest tests/ -v python -m pytest tests/test_scope_gate.py -v # single file python -m pytest tests/ -v -k "scope" # by keyword ``` 测试模拟了 subprocess 和网络 —— 没有实时的 Nmap 固定数据 (fixtures)。对于安全敏感的更改,还请运行 `python main.py --doctor` 和 `python main.py --self-test`。 请参见 [`docs/testing-guide.md`](docs/testing-guide.md)。 ## 文档 完整的工程文档位于 [`docs/`](docs/README.md) 中:入门指南、架构、运行时流程、模块指南、扩展指南、安全模型、测试指南和技能。 ## 许可证 NetAttackAI 基于 [GNU General Public License v3 (GPL-3.0)](LICENSE) 获得许可。 版权所有 (c) 2026 NetAttackAI 贡献者。 ## 免责声明 本软件仅供已授权的安全测试和教育目的提供。**请仅在您拥有或获得明确授权测试的系统上运行它。** 作者和贡献者对滥用行为不承担任何责任。您需全权负责确保您的使用符合所有适用法律和授权。
标签:CTI, MCP, Web报告查看器, XXE攻击, 人工智能, 多智能体, 密码管理, 本地大模型, 用户模式Hook绕过, 网络安全, 自动化漏洞利用, 逆向工具, 隐私保护