Null-Square/Null-CLi

GitHub: Null-Square/Null-CLi

Null-CLi 是一个 AI 驱动的渗透测试与合规就绪 CLI 工具,通过受限 agent 自动化安全评估、扫描器编排和结构化报告生成。

Stars: 121 | Forks: 1

![NullSquare 自主攻击性安全测试](https://static.pigsec.cn/wp-content/uploads/repos/cas/8f/8f46e317b0bc38067f7d6b854a7a566ca3a41bf968689e29e305085f82de3151.png) # Null AI CLI **由 [NullSquare](https://nullsquare.net) 提供的开源 AI 渗透测试与合规就绪 CLI。** [![CI](https://static.pigsec.cn/wp-content/uploads/repos/cas/ad/ad5834178f7599af9fdda11629d49cae07f2997beec49821b2920eff5bfd50e7.svg)](https://github.com/Null-Square/Null-CLi/actions/workflows/ci.yml) [![License](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](LICENSE) [![Node](https://img.shields.io/badge/node-%3E%3D20-339933.svg)](package.json) [![TypeScript](https://img.shields.io/badge/TypeScript-5.x-3178C6.svg?logo=typescript&logoColor=white)](tsconfig.json) [![Docker](https://img.shields.io/badge/runtime-Docker-2496ED.svg)](sandbox/Dockerfile) [![SARIF](https://img.shields.io/badge/output-SARIF%202.1.0-6B7280.svg)](src/reports/sarif.ts) [![NullSquare](https://img.shields.io/badge/NullSquare-nullsquare.net-F5D13A.svg)](https://nullsquare.net) [文档](#quick-start) | [官网](https://nullsquare.net) | [CLI](docs/cli.md) | [合规](docs/compliance.md) 一个用于授权测试的受限终端 agent:安全侦察、扫描器编排、有据可查的发现结果、Markdown/SARIF 报告,以及轻量级的合规就绪映射。 **覆盖范围:** OWASP Top 10 | PCI DSS lite | ISO 27001 lite | NIST CSF lite ![Null AI CLI 运行受限评估](https://static.pigsec.cn/wp-content/uploads/repos/cas/fc/fc9a12aa5f26079ef8715bf703e39b8170a488b5241b9c8402e410db0000a3da.svg)
## 为什么选择 Null AI CLI 现代团队需要比传统渗透测试更快、比原始扫描器输出更有用的安全反馈。Null AI CLI 就是这个开源层:一个用于本地评估、扫描器标准化、证据捕获、报告和就绪映射的可重现命令行框架。 它被特意与 NullSquare 托管平台分开。这个公开仓库本身就很有用,同时将托管平台的内部组件排除在外。如需托管沙箱、团队工作流、仪表板、持续测试和企业报告,请访问 **[nullsquare.net](https://nullsquare.net)**。 ## 安装 ``` # 使用 npx 立即运行(无需安装) npx @nullsquare/null-cli --help # 或全局安装 npm install -g @nullsquare/null-cli null-ai --help # 或使用一键安装程序(检查 Node >= 20,并全局安装) curl -fsSL https://raw.githubusercontent.com/Null-Square/Null-CLi/main/scripts/install.sh | bash ```
从源码构建 ``` git clone https://github.com/Null-Square/Null-CLi.git cd Null-CLi npm install npm run build node dist/cli/index.js --help ```
安装后的二进制文件:`null-ai`、`null-cli`、`null`、`nullsquare`(所有完全相同)。 ## 快速开始 ``` # 打开引导式主屏幕 null-ai # 或针对您已授权测试的实验室运行 demo 流程 null-ai demo --target http://localhost:3000 --authorize --out .null/demo ``` 演示流程专为用户自己的 OWASP Juice Shop、WebGoat 或同等的培训实验室设计。除非你通过 `--authorize` 授权,否则它会拒绝连接实际目标,同时编写完整的本地报告,并保持公开 agent 的操作尽量轻量且以证据为先。 ``` null-ai run show .null/demo null-ai run open .null/demo ``` 访问 **[nullsquare.net](https://nullsquare.net)**,利用托管基础设施、仪表板、团队证据审查和企业报告来扩展相同的工作流。 首次启动会创建一个可重用的模型配置。随后的启动会打开主页,其中渗透测试、合规就绪、实验室演示、已保存的评估、结果、模型设置和高级命令都是独立的选项。API 密钥会加密存储在本地用户凭证库中,且绝不会写入到评估会话中。 用于自动化或离线规划: ``` null-ai agent run --target https://example.com --dry-run --out .null/example ``` ## 交互模式 运行不带任何参数的 `null-ai` 以打开主要的**引导式、持久化 评估**。 仅在首次启动时,Null AI 会创建一个模型配置: ``` null-ai First-time model setup ? Provider OpenAI / DeepSeek / Anthropic / GLM / Moonshot / Qwen ? Profile name default ? Use custom API endpoint? No ? API key ******** 42 models discovered ? Model family OpenAI ? Model gpt-5-mini ``` 在输入掩码处理时,API 密钥提示依然可见。该密钥会加密存储在 本地凭证库中。可用模型是从 provider 中发现的; 通过 family 和可搜索的模型选择器来替代手动输入模型名称。支持的 profile provider 包括 OpenAI、DeepSeek、Anthropic、GLM、Moonshot 和 Qwen。之后可以使用 `/profile` 更改配置。 随后的启动会打开一个以任务为中心的主屏幕,而不是强制使用向导: ``` ? Home ❯ New pentest Compliance readiness Resume saved assessment Authorized lab demo Results and reports Model settings Advanced commands ``` 渗透测试只询问渗透测试所需的输入。系统会自动生成安全的范围;详细的排除项仍然是可选的: ``` New pentest ? Target(s) https://app.example ? Assessment goal Test the authorized staging application Scope & authorization default scope Authorized testing for app.example; destructive testing excluded ? Customize scope? No Run policy ? Assessment depth Standard ? Enable local scanners? No ? Confirm authorization Yes ? Start assessment now? Yes ``` 合规就绪遵循不同的路径:目标、就绪目标、框架、证据审查深度、可选的扫描器证据以及授权。渗透测试不需要询问合规框架或生成合规映射。在需要时,高级范围详细信息可以捕获排除项、授权参考、测试窗口和速率限制。 在实际运行期间,终端会显示规划、发现、扫描、分析和报告阶段,以及随其发生的结构化 agent 旁白(`agent ...`)、工具调用和 artifact 路径。相同的记录也会保存在报告的 **Agent 活动** 部分。在设置或运行之后,可搜索的命令启动器支持 `/` 过滤、方向键导航、描述查看以及回车键选择。CLI 还会定期检查 npm,并在存在更新版本时显示一行升级命令。 | 命令 | 用途 | |---------|---------| | `/wizard` | 运行从设置到评估的引导流程 | | `/profile setup\|list\|use\|delete` | 管理已保存的模型配置 | | `/workflow pentest\|compliance` | 选择评估工作流 | | `/depth quick\|standard\|deep` | 选择扫描深度 | | `/target ` / `/targets [clear]` | 管理范围(可重复使用) | | `/scope ` / `/authorize` | 设置范围摘要并确认授权 | | `/framework` / `/shell on\|off` / `/stream on\|off` | 配置运行 | | `/env model\|key\|base ` | 临时按进程覆盖模型 | | `/run` / `/findings` / `/report` / `/compliance` / `/open report` | 运行并审查 | | `/status` / `/help` / `/exit` | 会话控制(配置在会话之间保存) | 实际/扫描器运行**受授权控制**。Profile 元数据和加密的凭证存储在 `~/.null-ai`(或在 Windows 上为 `%USERPROFILE%\.null-ai`)下;`session.json` 从不存储 API 密钥。 ## 核心功能 - **从演示到报告的流程** - `null-ai demo` 将授权的实验室目标转换为可追溯的运行过程以及 Markdown/SARIF 报告。 - **引导式交互会话** - 一次性的模型引导、以任务为中心的主屏幕、独立的渗透测试/合规流程、可搜索的命令以及报告打开功能。 - **受限的单 agent 循环** - 每次回合执行一个安全操作,严格的范围边界,以证据为先的报告。 - **扫描模式** - `--scan-mode quick | standard | deep` 权衡速度与覆盖范围。 - **多目标** - 重复使用 `--target` 以在一条命令中评估多个资产。 - **实时终端用户体验** - 带有实时 agent 旁白、工具、artifact 和发现结果输出的 NullSquare 品牌面板。 - **扫描器接入** - 将 `nuclei`、`semgrep` 和 `trivy` 的 JSON/JSONL 标准化为统一的发现结果。 - **面向工程师的输出** - 用于代码扫描 / CI 的 Markdown 报告和 SARIF。 - **合规就绪** - 将发现结果映射到 `owasp-top10`、`pci-dss-lite`、`iso27001-lite`、`nist-csf-lite`。 - **Docker 沙箱** - 通过工具链冒烟测试提供可重现的扫描器运行时。 - **公开技能包** - 用于扫描模式、工具、漏洞类别和合规的 Markdown 技能。 ## 工具包 | 工具 | 用途 | |------|---------| | `http_request` | 安全的 HTTP 捕获与 endpoint 检查 | | `browser_action` | 用于表面映射的类浏览器页面捕获 | | `scanner_run` | 编排扫描器(受 `--allow-shell` 控制) | | `attach_evidence` | 将原始 artifact 附加到评估中 | | `report_finding` | 起草有证据支持的发现结果,包含严重性、CWE、OWASP、CVSS | | `map_compliance` | 将发现结果映射到就绪框架(仅限合规工作流) | | `file_read` | 读取范围内的本地目标源代码 | ## 漏洞覆盖范围 | 类别 | 示例 | |----------|----------| | 访问控制 | IDOR、缺少授权、绕过身份验证 | | 配置错误 | 缺失安全标头、冗长的 banners、暴露的服务 | | 客户端 | 反射型 / 存储型 XSS | | 传输与会话 | 缺失 HSTS、不安全的 cookies | | 信息泄露 | 敏感数据 / 错误信息泄露 | ## 扫描模式 | 模式 | 模型指导 | 适用场景 | |------|----------------|----------| | `quick` | 聚焦、保守的覆盖范围 | 对单个目标进行快速受限审查 | | `standard` | 平衡且可重现的覆盖范围 | 默认的开源评估 | | `deep` | 更广泛的证据和合规覆盖范围 | 更彻底的授权审查 | 每种模式都由公开技能(`null-ai skills show scan-mode-deep`)支持,用于塑造模型的计划。模式不会改变循环限制:模型通过明确的最终响应退出,并设有一个全局 300 回合的安全上限。当接近该上限时会出现预算警告,如果达到上限,总是会保存一份不完整的非决定性报告。仅当你有意想要设置更低的上限时,才使用 `--max-steps `。 ## 输出 每次评估都会生成确定性的本地 artifact: ``` .null/example/ run-state.json # full assessment state findings.json # normalized findings findings.sarif # SARIF 2.1.0 for CI / code scanning reports/report.md # human-readable report artifacts/ # captured evidence ``` 随时审查现有的工作区: ``` null-ai run show .null/example null-ai run open .null/example ``` ## 扫描器接入与报告 ``` # 将 scanner 输出标准化为 Null AI findings null-ai ingest artifacts/scans --out findings.json # 将来自 demo workspace 的 artifacts 标准化 null-ai ingest .null/demo/artifacts/scans --out .null/demo/findings-from-scanners.json # 生成报告 + SARIF null-ai report generate findings.json --out report.md --sarif findings.sarif --framework iso27001-lite # 将 findings 映射到 compliance-readiness controls null-ai compliance map findings.json --framework pci-dss-lite --out pci-readiness.json ``` 合规输出是就绪支持,**而非**认证、证明或法律建议。 ## 沙箱运行时 ``` docker build -f sandbox/Dockerfile -t null-cli-sandbox:dev . docker run --rm -v "$PWD/sandbox:/opt/null-cli/sandbox:ro" null-cli-sandbox:dev \ sh /opt/null-cli/sandbox/smoke.sh /opt/null-cli/sandbox/tools-manifest.json ``` 涵盖 `httpx`、`nuclei`、`katana`、`nmap`、`semgrep`、`trivy`、`gitleaks`、`curl`、`jq` 和 `node`。 ## CI 用法 ``` - name: Null AI CLI dry assessment run: | npm ci && npm run build node dist/cli/index.js agent run --target https://example.com --dry-run --out .null/ci ``` 无头模式退出代码:`0` 完成且无发现,`2` 完成但有发现,`3` 非决定性,`1` CLI/运行时失败。 对于实际评估,请提供 `NULL_AI_API_KEY` 并确保目标仅限于你获得授权测试的系统。 ## 公开边界 此仓库提供 **开源框架层**:CLI + 品牌终端、受限的公开 agent 循环、扫描器运行时检查、artifact 接入、以证据为支撑的发现结果、报告/SARIF、轻量级的合规映射、公开技能包、演示流程和本地追踪查看器。 它**不**包括 NullSquare 托管平台的内部组件、客户 artifact、非公开的启发式算法、多 agent 编排、跨运行记忆、托管服务逻辑或企业自动化。请参阅 [docs/public-boundary.md](docs/public-boundary.md)。 ## NullSquare 平台 Null AI CLI 是开源的入口点。**[NullSquare](https://nullsquare.net)** 是为需要托管评估、托管基础设施、协作、仪表板、证据审查、合规工作流和企业报告的团队提供的托管平台。 ## 安全性 仅在你拥有或获得明确测试许可的系统上使用 Null AI CLI。保留书面授权,在扫描前界定范围,切勿将其用于破坏性活动或凭证攻击。 ## 文档 - [演示](docs/demo.md) | [架构](docs/architecture.md) | [CLI 参考](docs/cli.md) | [扫描模式](docs/scan-modes.md) | [合规](docs/compliance.md) | [公开边界](docs/public-boundary.md) ## 贡献 非常欢迎保持公开边界完整的贡献:新的扫描器解析器、公开技能、报告改进和测试。请参阅 [CONTRIBUTING.md](CONTRIBUTING.md) 和 [SECURITY.md](SECURITY.md)。 ## 许可证 [Apache-2.0](LICENSE)。
标签:AI安全测试, CISA项目, Docker, LNA, MITM代理, TypeScript, 安全合规, 安全插件, 安全防御评估, 实时处理, 密码管理, 网络代理, 自动化攻击, 请求拦截