PearceTech335/Noctis-Edge

GitHub: PearceTech335/Noctis-Edge

基于本地 LLM 驱动的 AI 辅助渗透测试平台,在完全离线环境下自动完成从侦察到报告的全流程安全评估。

Stars: 0 | Forks: 0

# Noctis Edge

Noctis Edge Logo

**安全始于暴露** Noctis Edge 是一个基于 Python 的、AI 辅助的渗透测试平台,高度侧重于**本地执行、数据主权和操作安全**。 与依赖云的安全平台不同,**Noctis Edge 完全在本地机器上运行**。所有的扫描、分析、LLM 辅助测试、CVE 验证、报告和证据生成均在本地设备上进行,确保**没有任何目标数据、凭据、漏洞发现或客户敏感信息会离开主机系统**。 该平台针对目标环境进行自动化的、LLM 引导的渗透测试,收集并验证发现的问题,生成专业的 HTML 报告,并可选择使用 Metasploit 模块或本地生成的探测脚本验证 CVE。 它支持通过 `noctis.py` 执行命令行,以及通过 `noctis_web.py` 提供基于浏览器的 Web UI(在本地 `http://127.0.0.1:5000` 上提供服务),无需外部 SaaS 平台、第三方 API 或云处理。 这种架构使得 Noctis Edge 特别适用于受监管的环境、内部安全团队、物理隔离的网络、操作技术 (OT) 环境,以及对保密性和控制权要求极高的组织。 ## 系统要求 | 组件 | 最低要求 | |-----------|---------| | **RAM** | 8 GB | | **存储** | 15 GB 可用空间 | | **CPU** | 4 核心 | | **OS** | Kali / Parrot / Ubuntu / 基于 Debian | | **Python** | 3.10+ | **存储空间明细**(约): | 项目 | 大小 | |------|------| | Ollama 模型 — `qwen2.5-coder:3b-instruct` (工具规划与脚本生成) | ~1.9 GB | | Ollama 模型 — `llama3.2:3b` (报告撰写) | ~2.0 GB | | Nuclei 模板 | ~1.5 GB | | CVE 离线数据库 (由 `setup.sh` 构建) | ~3–5 GB | | SecLists 字典 (snap) | ~2 GB | | 工具二进制文件 + Python venv | ~1 GB | | 扫描会话输出 | 可变 | ## 安装说明 提供两种安装路径 — 根据您的环境自行选择。两种路径提供完全相同的功能。 | | Docker | 原生 Linux | |---|---|---| | **OS** | Windows, macOS, Linux | Kali, Parrot, Ubuntu, Debian | | **设置时间** | ~10 分钟 (首次构建) | ~15 分钟 | | **依赖项** | 仅 Docker Desktop | apt + snap + Go + Ollama | | **隔离性** | 完整容器隔离 | 系统级安装 | | **更新** | `docker compose build` + `pull` | `./update.sh` | ### 选项 A — Docker (Windows / macOS / Linux) **前提条件:** [Docker Desktop](https://www.docker.com/products/docker-desktop/) (Windows 或 macOS) 或 Docker Engine + Compose 插件。 ``` # 1. Clone repo git clone https://github.com/PearceTech335/Noctis-Edge.git cd Noctis-Edge ``` **Linux / macOS:** ``` chmod +x docker-run.sh ./docker-run.sh ``` **Windows (PowerShell):** ``` .\docker-run.ps1 ``` 启动脚本会自动处理所有事务: 1. 拉取最新源码 (`git pull`) 2. 构建 Docker 镜像 — 包含所有扫描工具和离线 CVE 数据库(首次构建约 5-10 分钟;后续运行将使用缓存) 3. 启动 Ollama 辅助容器并下载 LLM 模型 (~1.9 GB, 一次性操作,存储在 Docker 卷中) 4. 启动 Noctis Edge Web UI 在浏览器中打开 **http://localhost:5000** — 无需进一步配置。 **常用的 Docker 命令:** ``` # 运行 CLI 扫描(无 Web UI): docker compose run --rm noctis scan 192.168.0.1 docker compose run --rm noctis scan 192.168.0.1 web --cve-test # 停止所有容器: docker compose down # 查看实时日志: docker compose logs -f noctis # 在 git pull 后重新构建: docker compose build && docker compose up -d ``` ### 选项 B — 原生 Linux 安装 在一台全新的 Kali / Parrot / 基于 Debian 的机器上,只需一个脚本即可处理一切: ``` git clone --recurse-submodules https://github.com/PearceTech335/Noctis-Edge.git cd Noctis-Edge chmod +x setup.sh ./setup.sh ``` `setup.sh` 将按顺序安装和配置: | 步骤 | 安装内容 | |------|---------------------| | Git 子模块 | `nikto/` — 从 [sullo/nikto](https://github.com/sullo/nikto) 克隆 | | apt 软件包 | `nmap`, `curl`, `gobuster`, `ffuf`, `hydra`, `ssh-audit`, `dnsenum`, `dnsrecon`, `perl`, `golang-go`, `python3-tk` 等 | | SecLists | 通过 `snap install seclists` 安装的字典 | | Nuclei | 基于 Go 的模板扫描器 (`~/go/bin/nuclei`) | | Ollama | 本地 LLM 服务器 + 拉取 `qwen2.5-coder:3b-instruct` (扫描引擎) 和 `llama3.2:3b` (报告撰写) | | Python venv | `.venv/` 包含 `requests`, `jinja2`, `pycryptodome`, `flask`, `flask-sock` | | CVE 数据库 | 克隆 `CVE/cve-offline/` 并构建 `cve-summary.csv` | | rdpscan | 克隆 `rdpscan/` 辅助工具 | | 其他工具 | `amass`, `metasploit-framework` | 设置完成后: ``` ./noctis.py # Ollama starts automatically if not already running # 可选的基于浏览器的 Web UI: ./noctis_web.py ``` 运行 `./update.sh` 以保持所有组件最新。 ## 快速开始 ### 命令行 **Docker:** ``` # 标准 Web 扫描: docker compose run --rm noctis scan 192.168.0.1 # 使用 profile 和 flags: docker compose run --rm noctis scan 192.168.0.1 web --cve-test docker compose run --rm noctis scan 192.168.0.1 web external --aggressive # 完全 aggressive 运行: docker compose run --rm noctis scan 192.168.0.1 --aggressive --msf-validate --cve-test # 恢复中断的扫描: docker compose run --rm noctis scan 192.168.0.1 --resume ``` **原生 Linux:** ``` # 标准 Web 扫描: ./noctis.py 192.168.0.1 # 单个 profile: ./noctis.py 192.168.0.1 web # 多个 profile(两者的工具将合并): ./noctis.py 192.168.0.1 web external # 同时使用三个 profile: ./noctis.py 192.168.0.1 web external api # 使用 CVE 测试脚本: ./noctis.py 192.168.0.1 web --cve-test # 选择启用 DNS 枚举(需要互联网): ./noctis.py 192.168.0.1 --dns-enum # 完全 aggressive 运行: ./noctis.py 192.168.0.1 --aggressive --msf-validate --cve-test # 恢复中断的扫描: ./noctis.py 192.168.0.1 --resume ``` ![命令行用法](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/35cc28453d235755.jpg) ### Web UI 为喜欢通过网页浏览器进行交互的用户提供了基于浏览器的前端。它采用 VS Code 深色配色方案,包含配置文件和标志控制,并通过 WebSocket 实时流式传输终端输出。 **Docker:** ``` # 启动 Web UI(在后台运行,Web UI 会自动启动): ./docker-run.sh # Linux / macOS .\docker-run.ps1 # Windows (PowerShell) # 然后在浏览器中打开: # http://localhost:5000 ``` **原生 Linux:** ``` ./noctis_web.py # 然后打开:http://127.0.0.1:5000 # 自定义端口: ./noctis_web.py --port 8080 ``` 服务器仅绑定到 `127.0.0.1` — 网络中的其他机器无法访问。 Web UI 提供: - 带有回车启动支持的**目标**字段 - **配置文件** 和 **标志** 复选框 - 通过 WebSocket 流式传输的实时彩色终端输出(绿色 `[+]`,黄色 `[!]`,红色 `[-]`,蓝色 `[*]`) - 实时进度更新的加载动画 - 带有快速 **Y** / **N** 按钮的**提示回复**栏,用于审批关卡 - **报告** 按钮,可从任何现有的 JSON 会话文件重新生成 HTML - 终端区域的 Logo 水印 ![Noctis Edge Web 界面](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/b1c22782a1235758.jpg) ![Noctis Edge Web 界面 - 运行中](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/4e51300d62235800.jpg) | 功能 | CLI | Web UI | |---------|-----|--------| | 配置文件选择 | ✓ | ✓ | | 标志复选框 | ✓ | ✓ | | 实时终端输出 | ✓ | ✓ (WebSocket) | | y/n 提示回复 | ✓ | ✓ | | 重新生成报告 | ✓ | ✓ | **依赖项:** `flask` 和 `flask-sock` — 由 `setup.sh` 自动安装,并通过 `update.sh` 保持最新。 ## 命令行标志 | 标志 | 描述 | |------|-------------| | `` | 要扫描的 IP 地址或主机名 (必填) | | `[profile]` | 评估配置文件 (默认: `web`)。请参阅下面的配置文件部分。 | | `--aggressive` | 禁用安全模式 — 无需询问批准即可运行 gobuster、ffuf、hydra | | `--dns-enum` | 启用 DNS 枚举工具 (amass, dnsenum, dnsrecon) — 默认禁用,需要互联网连接 | | `--msf-validate` | 扫描后,使用 Metasploit `check` 命令非破坏性地验证每个 CVE 匹配项 | | `--cve-test` | 扫描后,使用 LLM 为每个匹配的 CVE 生成并执行安全的探测脚本 | | `--unattended` | 自动批准所有交互式提示 — 无需用户输入 (适用于脚本化/自动化运行) | | `--resume` | 恢复此目标最近一次中断的扫描会话 | ## 评估配置文件 在目标之后传递一个或多个配置文件名称。来自所有选定配置文件的工具将被合并到一个去重列表中以供扫描。 | 配置文件 | 重点 | 主要工具 | |---------|-------|-----------| | `web` | Web 应用程序评估 | curl, nikto, nuclei, gobuster, ffuf | | `external` | 外部边界审查 | nmap, curl, nuclei, gobuster, dns_enum | | `internal_ad` | 内部 AD 评估 | nmap, nxc (SMB/LDAP) | | `api` | API 评估 | curl, nuclei, ffuf | | `cloud` | 云暴露审查 | curl, nuclei, dns_enum | ## 工作原理 ### 1. 启动检查 - 检查 Ollama 是否正在提供服务 — 如果没有,则自动启动 `ollama serve` - 验证所有工具二进制文件是否存在,并打印状态表 - DNS 枚举工具 (amass, dnsenum, dnsrecon) 默认禁用 — 传递 `--dns-enum` 以启用它们 - 对目标运行 `nmap` 以发现开放端口和服务 - 在离线 CVE 数据库 (`CVE/cve-offline/cve-summary.csv`) 中搜索每项服务的匹配项 ### 2. LLM 驱动扫描 — 阶段 1 (并行) 在 Nmap 完成后,Noctis Edge 立即执行**并行初始扫描波**: 1. LLM 一次性分析所有发现的服务,并返回一个 JSON 数组 — 每个服务一个初始工具 (例如,HTTP 对应 `nikto`,SSH 对应 `ssh_enum`,MySQL 对应 `mysql_enum`)。 2. 该波次中的所有操作通过 `asyncio.gather()` 并发运行,受 `MAX_PARALLEL_ACTIONS` (默认 4) 限制,以避免使目标不堪重负。 3. 发现的结果在被传递到阶段 2 的上下文之前,会进行丰富、验证和自动标记。 ### 3. LLM 驱动扫描 — 阶段 2 (顺序循环) 顺序循环继续进行深入调查,根据以下内容询问 LLM 下一步该做什么: - 目标、配置文件和发现的服务 - 在阶段 1 以及迄今为止在阶段 2 中收集的所有发现 - 已运行工具的历史记录 - 已禁用/损坏的工具列表 LLM 返回一个单一的 JSON 操作 `{"tool": "", "args": ""}`。 Noctis Edge 执行该工具,从输出中解析结构化的发现结果,并将结果反馈到下一次迭代的上下文中。 超时且无发现或返回错误信号的工具将在该会话中被自动禁用。 在 `SAFE` 模式 (默认) 下,具有攻击性的工具 (gobuster, ffuf, hydra) 在运行前需要操作员批准。 ### 4. 发现结果验证与丰富 在每次工具运行 (阶段 1 和阶段 2) 之后,发现结果将经历以下过程: - **验证** — 重新请求已发现的路径,以确认其真实存在而非误报。 - **元数据丰富** — 使用现有的内部映射表推断 `vuln_type` (例如 RCE, SQLi, XSS)、`cwe_id` (例如 CWE-89) 及适用的 `compliance_controls` (PCI-DSS, SOC2, ISO 27001)。 ### 5. 风险评分 每个发现结果均使用以下公式进行评分: ``` risk_score = severity_weight × confidence × exposure × tool_confidence ``` - **severity_weight**: critical=1.0, high=0.8, medium=0.5, low=0.2, info=0.05 - **confidence**: 由工具解析器设置 (例如 curl=0.90, nikto=0.40) - **exposure**: 面向互联网为 1.2,内部为 1.0 - **tool_confidence**: 来自配置的每项工具的权重 ### 6. 报告生成 扫描循环结束后,报告将保存至 `sessions/_/`: - `report_.json` — 完整的机器可读报告 - `report_.html` — 带有可折叠部分的样式化 HTML 报告 报告包含: - **执行摘要** — 一目了然的严重程度统计 - **合规性影响** — 所有受影响的 PCI-DSS SOC2 / ISO 27001 控制项的徽章标签,跨发现结果和 CVE 匹配项汇总 - **服务清单** — 发现的带有 CVE 徽章链接的服务 - **发现结果** — 每个发现结果对应一个可展开的卡片,展示:严重程度、标题、工具、风险评分、验证状态、漏洞类型、CWE、证据、原始 HTTP 响应 (可折叠)、运行的命令、合规控制项以及可点击的参考链接 - **CVE 匹配项** — 详细的 CVE 卡片,包含 CVSS 向量、漏洞利用成熟度、合规控制项及修复建议参考 - **MSF / CVE 测试结果** (如果运行了的话) 以及 **LLM 生成的结论** ### 7. 会话持久化 在每次工具运行后,当前状态会保存至 `sessions//session.json`。在中断后使用 `--resume` 从上次中断的地方继续。 ## 可选阶段 ### `--msf-validate` 在主扫描完成后,针对与服务匹配的每个 CVE: 1. 在 Metasploit 中搜索与该 CVE ID 匹配的模块 2. 如果找到,运行 `msfconsole -x "use ; set RHOSTS ; check; exit"` — 这使用的是 MSF 的安全 `check` 命令 (无载荷,无漏洞利用) 3. 结果 (`vulnerable`,`not vulnerable`,`unknown`,`no module`) 将记录在报告中 要求 `msfconsole` 在 PATH 中。在 SAFE 模式下需要操作员批准。 ### `--cve-test` 在主扫描完成后 (如果同时设置了这两个选项,则在 `--msf-validate` 之后执行): 1. 显示一个批准提示,列出要测试的 CVE 2. 对于每个 CVE,要求 LLM 生成最多 **5 个独立的测试脚本** (Python 或 Bash) 3. 每个脚本都会被写入 `sessions//cve_tests/` 并以 30 秒的超时时间执行 4. 脚本必须打印以下内容之一:`VERDICT: VULNERABLE`,`VERDICT: NOT_VULNERABLE`,`VERDICT: INCONCLUSIVE` 5. 结果将被统计为每个 CVE 的整体裁决,并写入报告中 **知识库**:结果会持久化保存在项目根目录的 `cve_knowledge_base.json` 中。在未来的运行中,针对同一 CVE 先前成功的脚本将作为上下文传回给 LLM,从而随时间推移提高质量。运行 `./update.sh` 会自动通过 Cloudflare 中继将此文件提交到社区存储库 — 无需 token 或账户。 **裁决**: - `VULNERABLE` — 至少 1 个脚本返回 VULNERABLE - `NOT_VULNERABLE` — 大多数脚本返回 NOT_VULNERABLE 且没有 VULNERABLE 结果 - `INCONCLUSIVE` — 脚本已运行但无法确定漏洞状态 ## 实际运行 在 `--cve-test` 运行期间,终端会依次显示正在测试的每个 CVE,展示尝试的方法(来自知识库的已知漏洞重放、LLM 生成的探测或两者兼有)、单个脚本的裁决以及最终的针对每个 CVE 的结果。LLM 会实时生成可执行的 Python 或 Bash 脚本 — 其策略和完整源码会在执行前打印到终端,以便操作员可以精确审核针对目标运行了哪些内容。 | CVE 测试循环 — KB 重放与 LLM 脚本生成 | 执行前打印的 LLM 生成的探测脚本 | |---|---| | ![CVE test loop - KB replay](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/8ca5ea6650235802.jpg) | ![LLM-generated probe script](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/a69702c3b8235805.jpg) | | LLM 脚本源码输出 | HTML 报告 — 执行摘要 | |---|---| | ![LLM script source](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/86bd680f57235807.jpg) | ![HTML report executive summary](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/fd658a8564235809.jpg) | 完成后,将生成包含执行摘要的 HTML 报告,说明整体安全态势,随后是涵盖服务清单、按风险评分排名的发现结果、CVE 匹配项、验证结果以及 LLM 生成的结论等部分。 ## 输出结构 ``` sessions/ └── localhost_20260424_102554/ ├── session.json ← live state (for --resume) ├── report_localhost.json ← full JSON report ├── report_localhost.html ← styled HTML report └── cve_tests/ ├── CVE-2002-1367_attempt_01.py ├── CVE-2002-1367_attempt_02.sh └── ... cve_knowledge_base.json ← cross-engagement CVE test KB (project root) gitignored locally; submitted to community repo automatically by ./update.sh ``` ## 配置 (位于 `noctis.py` 顶部) | 常量 | 默认值 | 描述 | |----------|---------|-------------| | `MODEL` | `qwen2.5-coder:3b-instruct` | 用于工具规划和脚本生成的模型 (使用 `NOCTIS_OLLAMA_MODEL` 环境变量覆盖) | | `REPORT_MODEL` | `llama3.2:3b` | 用于报告文案的模型 — 结论 + 修复建议 (使用 `NOCTIS_REPORT_MODEL` 环境变量覆盖) | | `OLLAMA_URL` | `http://localhost:11434/api/generate` | Ollama API 端点 | | `MAX_ITERATIONS` | `10` | 最大阶段 2 顺序循环迭代次数 | | `MAX_PARALLEL_ACTIONS` | `4` | 阶段 1 并行波次中的最大并发工具数 | | `MAX_LLM_RETRIES` | `3` | 每次迭代的 LLM 调用重试次数 | | `CVE_TEST_ATTEMPTS` | `5` | `--cve-test` 中每个 CVE 的 LLM 脚本尝试次数 | | `SAFE_MODE` | `True` | 要求对具有攻击性的工具进行批准 (使用 `--aggressive` 覆盖) | | `UNATTENDED` | `False` | 自动批准所有提示 (使用 `--unattended` 覆盖) | ## 使用的工具 | 工具 | 用途 | |------|---------| | `nmap` | 端口和服务发现 | | `curl` | HTTP 探测 | | `nikto` | Web 服务器漏洞扫描 (内置于 `nikto/`) | | `nuclei` | 基于模板的扫描 | | `gobuster` | 目录爆破 | | `ffuf` | Web 模糊测试 | | `hydra` | 凭据爆破 (仅限 aggressive 模式) | | `ssh-audit` | SSH 配置审计 | | `amass` | 子域名枚举 (需要互联网) | | `dnsenum` / `dnsrecon` | DNS 枚举 (需要互联网,由 `setup.sh` 安装) | | `nxc` (NetExec) | 用于 AD 评估的 SMB/LDAP 枚举 | | `msfconsole` | MSF 验证 (`--msf-validate`) | | `rdpscan` | RDP 枚举 | 安装说明:请参阅 [Readme/requirements.md](Readme/requirements.md)。 ## Ollama 设置 Noctis Edge 需要 Ollama。`setup.sh` 会自动安装它并拉取两个模型。 如果 Ollama 尚未运行,`noctis.py` 将**自动启动 `ollama serve`** — 无需手动操作。 手动安装 (如果不使用 `setup.sh`): ``` # 安装 Ollama: curl -fsSL https://ollama.com/install.sh | sh # Pull 两个模型: ollama pull qwen2.5-coder:3b-instruct # tool planning, script generation, CVE test scripts ollama pull llama3.2:3b # report writing (conclusion + remediation guidance) ``` Ollama 将在首次使用时由 `noctis.py` 自动启动。这两个模型都是轻量级的 3B 变体 — 在现代硬件上,每次 LLM 调用的推理时间通常为 2-5 秒。程序在等待时会打印一个加载动画。 ### 模型角色 | 模型 | 环境变量 | 用途 | |-------|---------------------|---------| | `qwen2.5-coder:3b-instruct` | `NOCTIS_OLLAMA_MODEL` | 智能体工具决策、扫描规划、CVE 漏洞利用脚本、测试脚本、验证脚本 | | `llama3.2:3b` | `NOCTIS_REPORT_MODEL` | 报告结论段落、CVE 修复建议指导 | ## 应用程序维护 运行 `./update.sh` 以保持所有组件最新。 ``` ./update.sh ``` 这将按顺序更新: | 步骤 | 操作内容 | |------|--------------| | 1 | apt 软件包升级 | | 2 | SecLists (snap) 刷新 | | 3 | pip 依赖项升级 | | 4 | Nuclei 二进制文件 + 模板更新 | | 5 | 拉取两个 Ollama 模型 (`qwen2.5-coder:3b-instruct` + `llama3.2:3b`) | | 6 | 拉取离线 CVE 数据库 + 重建 CSV | | 7 | 更新 Noctis Edge 存储库 (`git pull`) | | 8 | 将 CVE 知识库提交到社区中继 | ## CVE 知识库 Noctis Edge 在项目根目录的 `cve_knowledge_base.json` 中积累 CVE 测试结果(在首次 `--cve-test` 运行时自动创建)。该文件是特定于机器且经过匿名处理的 — 每个条目**仅**通过 CVE ID 进行标识;不记录任何特定于目标的信息。此文件**不会提交到主 git 分支**。 每次运行 `./update.sh` 时,知识库都会自动通过 Cloudflare 中继提交到社区存储库 — 无需 token 或账户。您的安装 ID(由 `./setup.sh` 生成一次并存储在 `noctis.conf` 中)仅用于限制提交频率(每天 4 次),绝不会与个人数据关联。 ### 中继的工作原理 Cloudflare Worker (`cloudflare/worker.js`) 充当服务器端中继:它持有 GitHub 凭据,并代表您将提交的 JSON 写入社区存储库。源代码包含在此存储库中以确保完全透明 — 您可以准确审核您的数据是如何处理的。 ### 解锁社区知识库 订阅者将获得对聚合社区 CVE 知识库的访问权限 — 这是一个由所有 Noctis Edge 用户贡献的、经过精心筛选的已验证测试脚本集合。一旦您在 [polar.sh/checkout](https://buy.polar.sh/polar_cl_rEP2IebC07PDSnIal0HF4kZSBJVecdZSmkREx3Emnin) 完成订阅并收到您的许可证密钥: 1. 打开您 Noctis Edge 安装目录中的 `noctis.conf`。 2. 将 `PAID_TIER` 设置为 `true`: PAID_TIER=true 3. 粘贴您的许可证密钥: KB_LICENSE_KEY=XXXX-XXXX-XXXX-XXXX 4. 运行 `./update.sh` — 社区知识库将自动下载并合并到您的本地知识库中。 只要存在 `PAID_TIER=true` 和有效的许可证密钥,后续每次 `./update.sh` 运行时都会拉取社区知识库。不需要 GitHub 账户或 PAT — Cloudflare 中继会在服务器端处理身份验证。 ## 脚本 | 脚本 | 用途 | |--------|---------| | `setup.sh` | 用于全新安装的一次性设置脚本 — 克隆后运行一次。还会生成一个存储在 `noctis.conf` 中的唯一安装 ID。 | | `update.sh` | 刷新所有组件。完成后,自动将本地 `cve_knowledge_base.json` 提交到社区中继 (无需 token)。 | | `scripts/submit_kb.py` | 将本地 CVE 知识库 POST 到 Cloudflare 社区中继。由 `update.sh` 自动调用。 | | `scripts/merge_kb.py` | 以相加方式将外部知识库 JSON 合并到本地知识库中 (不会覆盖或删除任何数据)。 | ## Cloudflare 中继 `cloudflare/` 目录包含将知识库提交中继到社区存储库的 Cloudflare Worker。 | 文件 | 用途 | |------|---------| | `cloudflare/worker.js` | Worker 源码 — 验证、限速并将提交写入 GitHub | | `cloudflare/wrangler.toml` | Wrangler 部署配置 (KV 绑定,路由) | | `cloudflare/.gitignore` | 排除 `.wrangler/` 缓存 (包含敏感的账户凭据) | 该 worker 已部署在 `https://noctis-kb-relay.pearcetechnologies1.workers.dev`。最终用户无需部署任何内容 — `update.sh` 会自动处理提交。 ## 未提交到 Git 的内容 以下内容已从版本控制中排除 (请参阅 `.gitignore`): | 路径 | 原因 | |------|--------| | `sessions/` | 运行时扫描输出 — 每次安装的本地内容 | | `noctis.conf` | 每用户配置 (安装 UUID,可选覆盖) — 永不提交 | | `flare/.wrangler/` | 包含 Cloudflare 账户凭据的 Wrangler 缓存 | | `WordLists/rockyou.txt` | 139 MB — 目录枚举不需要 | | `CVE/cve-offline/cve-summary.csv` | 57 MB — 使用 `updatecsv.sh` 重新生成 | | `CVE/cve-offline/` | 独立的 git 存储库 | | `rdpscan/` | 独立的 git 存储库 | ## 致谢 Noctis Edge 构建于并捆绑了许多优秀的开源项目: | 工具 / 库 | 作者 / 组织 | 用途 | |----------------|-------------|---------| | [Nikto](https://github.com/sullo/nikto) | Chris Sullo | Web 服务器漏洞扫描器 (作为子模块内嵌) | | [Nuclei](https://github.com/projectdiscovery/nuclei) | ProjectDiscovery | 基于模板的漏洞扫描 | | [nmap](https://nmap.org) | Gordon Lyon (Fyodor) | 网络发现和端口扫描 | | [Gobuster](https://github.com/OJ/gobuster) | OJ Reeves | 目录和 DNS 枚举 | | [ffuf](https://github.com/ffuf/ffuf) | Joona Hoikkala | 快速 Web 模糊测试工具 | | [Hydra](https://github.com/vanhauser-thc/thc-hydra) | van Hauser / THC | 登录暴力破解测试 | | [ssh-audit](https://github.com/jtesta/ssh-audit) | Joe Testa | SSH 配置审计 | | [Amass](https://github.com/owasp-amass/amass) | OWASP | 网络攻击面映射 | | [Metasploit Framework](https://github.com/rapid7/metasploit-framework) | Rapid7 | 用于 MSF 验证的漏洞利用框架 | | [rdpscan](https://github.com/robertdavidgraham/rdpscan) | Robert David Graham | RDP 漏洞扫描 | | [Ollama](https://ollama.com) | Ollama, Inc. | 用于 AI 引导分析的本地 LLM 服务器 | | [trickest/cve](https://github.com/trickest/cve) | Trickest | CVE PoC 参考数据库 (作为子模块内嵌) | | [trickest/cve-offline](https://github.com/trickest/cve-offline) | Trickest | 离线 CVE CSV 数据集 | | [SecLists](https://github.com/danielmiessler/SecLists) | Daniel Miessler | 安全字典 | | [NetExec (nxc)](https://github.com/Pennyw0rth/NetExec) | Pennyw0rth | 网络服务执行和枚举 | | [Flask](https://flask.palletsprojects.com) | Pallets | 用于浏览器 UI 的 Web 框架 | | [flask-sock](https://github.com/miguelgrinberg/flask-sock) | Miguel Grinberg | Flask 的 WebSocket 支持 | | [Requests](https://requests.readthedocs.io) | Kenneth Reitz | HTTP 库 | | [Jinja2](https://jinja.palletsprojects.com) | Pallets | HTML 报告模板 | | [PyCryptodome](https://pycryptodome.readthedocs.io) | Legrandin | 密码学原语 |
标签:AES-256, AI辅助, AI风险缓解, CI/CD安全, CISA项目, CTI, CVE验证, DLL 劫持, Google, Llama, LLM, LLM评估, meg, Nuclei, Ollama, Python, Qwen, SecLists, TCP SYN 扫描, Unmanaged PE, Web UI, 人工智能, 人工智能安全, 企业安全, 信息安全, 反取证, 合规性, 大语言模型, 安全评估, 密码管理, 插件系统, 数据主权, 数据展示, 无云依赖, 无后门, 本地化部署, 本地执行, 漏洞评估, 用户模式Hook绕过, 离线数据库, 红队, 网络安全, 网络安全, 网络安全审计, 网络资产管理, 自动化报告, 请求拦截, 逆向工具, 隐私保护, 隐私保护