nox-project/nox-framework
GitHub: nox-project/nox-framework
NOX 是一个高性能异步网络威胁情报框架,利用递归透视引擎整合 120+ 数据源,实现自动化的身份挖掘、凭证破解及企业风险分析。
Stars: 122 | Forks: 3
```
███╗ ██╗ ██████╗ ██╗ ██╗
████╗ ██║██╔═══██╗╚██╗██╔╝
██╔██╗ ██║██║ ██║ ╚███╔╝
██║╚██╗██║██║ ██║ ██╔██╗
██║ ╚████║╚██████╔╝██╔╝ ██╗
╚═╝ ╚═══╝ ╚═════╝ ╚═╝ ╚═╝
```
**Cyber Threat Intelligence Framework**
[](https://github.com/nox-project/nox-framework/releases/tag/v1.0.1)
[](https://www.python.org/)
[](LICENSE.txt)
[](https://www.kali.org/)
[](https://blackarch.org/)
[](https://github.com/nox-project/nox-framework)
[](https://github.com/nox-project/nox-framework)
*用于红队行动、数字取证和企业暴露分析的 OSINT 框架。*
## 简介
NOX 是一个专用的网络威胁情报引擎,专为追求速度、行动安全和深度的操作人员设计,整合于一个统一的框架中。它不是现有工具的封装 —— 它是一个完全异步、由插件驱动的情报平台,并严格分离了执行逻辑和源定义。
| 能力 | 详情 |
|-|-|
| ⚡ **异步执行引擎** | 跨 123 个情报源进行大规模并行扫描,无顺序瓶颈,无阻塞 I/O。 |
| 🛡️ **Guardian 引擎** | 集成 OPSEC 层,支持自动代理轮换和 SOCKS5。如果传输链路不可用,故障安全保护开关会中止所有流量。 |
| 🧠 **风险评分** | 动态 0-100 评分,包含时间衰减、源置信度加权、密码复杂度分析、持久性乘数和 HVT 检测。 |
| 🔗 **递归 Avalanche 引擎** | 每个发现的资产 —— 用户名、邮箱、破解密码、电话 —— 都会自动作为新的扫描种子重新注入。单个资产管道按顺序运行(breach → crack → dork → scrape);子资产并发运行。来自所有四个阶段的标识符都会馈送到透视 队列中。全局去重和可配置的深度上限防止失控递归。 |
| 🔍 **自动扫描** | 单条命令触发 breach 扫描 + 递归 pivot + dorking + paste 抓取 —— 全自动,无需手动串联。 |
## 功能特性
| 特性 | 描述 |
|-|-|
| **123 个 JSON 插件源** | 每个情报源都是一个 JSON 插件。执行引擎中零硬编码源逻辑。 |
| **异步核心** | 完整的 `asyncio` 事件循环,支持 JA3 指纹识别、SSL 会话管理、每个请求的抖动以及可配置的并发数。 |
| **自动扫描管道** | `--autoscan` 触发:breach 扫描 → 递归 pivot → Google/Bing/SearXNG dorking → paste/Telegram 抓取 —— 全部包含在一条命令中。 |
| **递归 Avalanche 引擎** | 每个发现的标识符 —— 无论来自 breach 记录、dork 命中还是抓取的 paste/Telegram 内容 —— 都会作为新种子重新注入。单个资产的管道是顺序的(breach → crack → dork → scrape);子资产通过 `asyncio.gather` 并发运行。全局 `seen_assets` 集合防止无限循环。并发数和深度可通过 `--threads` 和 `--depth` 在运行时完全配置。 |
| **Hash Pivot** | breach 数据中发现的 Hash 会自动识别(MD5/SHA1/SHA256/NTLM/bcrypt)并通过并发后台 API 查询进行破解。破解后的明文会作为密码重用种子注入到 pivot 队列中。失败会静默记录 —— 扫描永不停止。 |
| **Guardian 代理引擎** | 零配置 OPSEC 层:如果存在则读取 `proxies.txt`;否则在内存中自动获取并验证高匿名性代理池。完全支持 SOCKS5/HTTP/S 和 Tor。 |
| **API Key 轮换** | 每个源的 `api_key_slots` —— NOX 在多个密钥之间进行轮询,以绕过单个密钥的速率限制。 |
| **身份图谱** | Union-Find 关联引擎使用类型感知的 pivot 分类,将 breach 记录跨所有源统一为身份集群。 |
| **企业取证报告** | 专业的 PDF/HTML/JSON/CSV/Markdown 报告,包含执行摘要仪表板(总耗时、发现节点数、明文密码、Pivot 深度)、交互式 Pivot 链可视化以及严格的数据净化 —— 输出中不含技术噪音。JSON 导出包含完整的元数据块,具有自描述性。 |
| **HVT 检测** | 自动将 C 级、Admin、DevOps 和政府域账户标记为高价值目标 (HVT)。 |
| **Dorking 引擎** | 通过 Google/Bing/SearXNG dorks 进行被动文档发现,附带 PDF/Office 元数据提取。 |
| **抓取引擎** | Paste 站点索引、Telegram CTI 频道监控、凭证提取和错误配置发现。每个 autoscan 资产都有一个专用的抓取会话 —— 无共享状态。 |
| **代理 / Tor** | SOCKS5、HTTP/S 代理、通过 `stem` 的完整 Tor 路由以及自动 Guardian 回退。SOCKS5 代理通过 `aiohttp-socks` 进行正确验证和路由。 |
| **安全密钥存储** | API 密钥通过 `~/.config/nox-cli/apikeys.json` 管理 (chmod 0600)。未配置的密钥会被静默跳过。通过环境变量设置的密钥会被自动拾取,无需重启。 |
| **系统日志** | 所有扫描事件、阶段完成、pivot 发现、API 事件、速率限制和破解尝试都会写入 `~/.nox/logs/nox.log`。只有可操作的情报才会输出到终端。 |
| **插件调试** | `--list-sources` 打印完整的操作员调试表:插件名称、输入类型、置信度评分、密钥状态(已配置 / 未配置 / 公开)以及任何 JSON 解析错误。 |
## 架构
### 插件驱动设计
NOX 遵循严格的关注点分离原则:`nox.py` 是一个**纯粹的、中立的执行引擎** —— 它处理异步 I/O、JA3 指纹识别、SSL 会话管理、递归 pivot 和结果关联。它不包含任何硬编码的情报逻辑。
所有情报都定义为 `sources/` 目录下的 **JSON 插件**。这些插件是 NOX 查询内容、认证方式以及提取内容的唯一真实来源。构建工具 `build_sources.py` 是创建或修改它们的唯一授权方式。
```
build_sources.py ──► sources/*.json ──► nox.py (runtime loader)
[Builder] [Plugins] [Execution Engine]
```
#### 源 Schema
```
{
"name": "MyPrivateDB",
"endpoint": "https://api.myprivatedb.com/search?q={target}",
"method": "GET",
"headers": { "Authorization": "Bearer {MY_API_KEY}" },
"regex_pattern": "([\\w.+-]+@[\\w-]+\\.[\\w.]+):([\\S]+)",
"required_api_key_name": "MY_API_KEY",
"api_key_slots": ["{MY_API_KEY}"],
"input_type": "email",
"output_type": ["username", "ip"],
"pivot_types": ["email", "username"],
"confidence": 0.9
}
```
支持的字段:`name`、`endpoint`、`method`、`headers`、`regex_pattern`(或 `json_root` + `normalization_map`)、`required_api_key_name`、`api_key_slots`、`input_type`、`output_type`、`pivot_types`、`confidence`。
### 自动扫描管道
`--autoscan` (CLI) / `autoscan` (REPL) 在单条命令中执行完整的情报管道:
```
For each asset (seed + every discovered identifier):
├─ Phase 1 — Breach Scan
│ 123 sources queried in parallel (async)
│
├─ Phase 2 — Hash Crack (non-blocking, concurrent)
│ Hashes found in breach data → rainbow-table APIs → cracked plaintext
│ → password-recycling breach scan
│
├─ Phase 3 — Dorking
│ Google/Bing/SearXNG dorks → leaked docs, .env files, SQL dumps
│ → new identifiers extracted and re-injected
│
└─ Phase 4 — Scraping
Pastebin, IntelX, Telegram CTI channels → credential extraction
→ new identifiers extracted and re-injected
All identifiers discovered in phases 1–4 are re-injected as new seeds.
Child assets are processed concurrently via asyncio.gather.
```
`scan`(不带 `--autoscan`)仅运行阶段 1 —— breach 源,无 pivot/dork/scrape。
### 递归 Avalanche 引擎
扫描期间发现的每个标识符 —— 无论来自 breach 记录、dork 命中还是抓取的 paste/Telegram 内容 —— 都被视为新的情报种子。对于每个资产,引擎按顺序运行四个阶段:breach 扫描 → hash 破解 → dork → 抓取。从**所有四个阶段**提取的标识符都会被收集并作为新种子重新注入。然后通过 `asyncio.gather` 并发处理子资产。
```
target@company.com
└─► [Breach] username: j.doe ──► [Breach + Crack + Dork + Scrape]
│ └─► github.com/jdoe ──► [Breach + Crack + Dork + Scrape]
└─► [Breach] hash: 5f4dcc... ──► [AutoCrack] → "password123"
│ └─► [Breach] password-recycling scan across all sources
└─► [Dork] new@email.com ──► [Breach + Crack + Dork + Scrape]
└─► [Scrape/paste] admin@corp.com ──► [Breach + Crack + Dork + Scrape]
```
- **`seen_assets` 集合** —— 全局去重;无论标识符由哪个阶段发现,都不会被处理两次
- **全局信号量** —— 跨整个发现树的单一共享并发上限,遵守 `--threads` 设置
- **`--depth N`** —— 可配置的 pivot 深度(默认:2);硬性后端防止失控递归
- **`--no-pivot`** —— 禁用递归丰富功能,进行快速仅 breach 扫描
### Hash Pivot
在 `--autoscan` 期间于 breach 数据中发现 hash 时:
1. 识别 hash 类型(MD5/NTLM、SHA1、SHA256、bcrypt)
2. 在后台任务中**并发**查询多个彩虹表 API
3. **如果破解成功** —— 记录明文,更新记录,并将密码注入到 pivot 队列中,以便跨所有 breach 源进行密码重用分析
4. **如果破解失败** —— 将失败记录到 `nox_system.log`,hash 保留在报告中,并立即继续对所有其他资产进行 pivot
破解过程完全是非阻塞的。超时或 API 失败绝不会暂停扫描。使用 `--no-online-crack` 将破解限制为仅本地词表(不向第三方 API 发送数据)。
### Guardian 代理引擎
Guardian 引擎是 NOX 的零配置 OPSEC 层。当未提供 `--proxy` 或 `--tor` 标志时,它会自动激活。
**解析顺序:**
1. **`proxies.txt`** —— 如果工作目录中存在此文件,NOX 会加载并轮换使用列出的代理。
2. **动态获取** —— 如果 `proxies.txt` 不存在,Guardian 引擎会获取一份全新的高匿名性公共代理列表,验证每一个,并在会话期间将验证后的代理池保留在内存中。不会写入任何内容到磁盘。
3. **直接连接** —— 如果未找到有效代理,NOX 会回退到直接连接并发出警告。
| 标志 | 行为 |
|-|-|
| `--proxy Filter in-memory records by keyword sources Plugin debug: input type, confidence, key status export Export results (json / csv / html / md / pdf) tor Toggle Tor routing on/off proxy Set or clear proxy URL config Configure threads / timeout / depth help Show this menu quit Exit NOX ``` 示例:** ``` nox> autoscan target@company.com nox> graph nox> visualize nox> pivot 3 nox> search admin nox> export pdf investigation.pdf nox> sources nox> config threads 30 nox> config depth 3 nox> proxy socks5://127.0.0.1:1080 nox> tor ``` ## 源管理 ### 添加源 **1. 在 `build_sources.py` 中定义:** ``` _auth("NewIntelDB", "breaches", "https://api.newinteldb.com/v1/search?q={target}", "GET", {"results": "$.results"}, headers={"X-API-Key": "{NEWINTELDB_API_KEY}"}, api_key_slots=["{NEWINTELDB_API_KEY}"], normalization_map={"email": "email", "password": "password"}, input_type="email", output_type=["username", "ip"], confidence=0.85) ``` **2. 重新构建:** ``` python build_sources.py ``` ## 构建 .deb 包 ``` gem install fpm bash build_deb.sh sudo dpkg -i dist/nox-cli_*_all.deb ``` ## 法律免责声明 ## 许可证 [Apache License 2.0](LICENSE.txt)
标签:BlackArch, BSD, ESC4, Homebrew安装, OSINT, Python, 企业暴露面分析, 反取证, 多源情报, 安全评估, 异步编程, 情报收集, 扫描器, 插件化架构, 数字取证, 数字取证与事件响应, 数据展示, 数据挖掘, 无后门, 漏洞研究, 红队, 网络威胁情报, 自动化框架, 自动化脚本, 计算机取证, 身份关联分析, 逆向工具, 风险分析