zswizzle00/NexusTrace
GitHub: zswizzle00/NexusTrace
开源自托管威胁情报聚合平台,整合多源安全 API,统一查询 IP、域名、哈希等 IOC 指标。
Stars: 0 | Forks: 0
# NexusTrace
**开源威胁情报与 OSINT 分析平台。** 提交 IP、域名、URL、文件哈希或 User Agent 字符串,即可在一个仪表板中获取来自整个威胁情报生态系统的丰富上下文信息。
专为安全分析师、事件响应人员和研究人员构建,无需在十几种工具之间切换,即可快速获取关于失陷指标 的交叉引用上下文。
## 功能特性
### IP 分析
- 地理定位、ASN 和网络数据 (IPinfo + IP2Location)
- VPN / 代理 / Tor 检测 (VPNapi + ProxyCheck)
- 开放端口和运行服务
- 已知 CVE 和漏洞
- 滥用历史和置信度评分
- 威胁情报脉搏
### 域名 & URL 分析
- WHOIS 注册数据 (IP2WHOIS)
- DNS 记录 — A, AAAA, MX, NS, TXT, CNAME, SOA
- SSL/TLS 证书详情
- HTTP 安全头分析
- SPF / DKIM / DMARC 邮件安全态势
- 通过证书透明度日志进行子域名枚举
- 重定向链追踪
- 技术栈指纹识别
- Meta 标签、OpenGraph 和 favicon 提取
- 威胁情报
### 文件 & 哈希分析
- 恶意软件分类和代码复用分析
- 多源信誉查询 (VirusTotal, MalwareBazaar, ThreatFox)
- 威胁情报交叉引用
### 附加工具
- **Azure AD 错误解码器** — 查询 AADSTS 错误代码及其描述和修复步骤
- **Windows 事件 ID 参考** — 解码 Windows 安全事件 ID
- **User Agent 解析器** — 从任意 UA 字符串中解析浏览器、OS、设备和机器人标志
- **CyberChef** — 内嵌 CyberChef v10.19.4,用于浏览器内数据编码、解码和转换
## 快速开始
### 选项 1: 开发服务器 (推荐用于测试)
```
git clone https://github.com/your-org/NexusTrace.git
cd NexusTrace
cp .env.example .env
# 编辑 .env 填入你的 API keys
./start.sh
```
服务器启动于 `http://localhost:5050`
### 选项 2: Docker (推荐用于部署)
```
git clone https://github.com/your-org/NexusTrace.git
cd NexusTrace
cp .env.example .env
# 编辑 .env 填入你的 API keys
./start.sh --docker
```
- Flask 应用: `http://localhost:5050`
- Nginx 反向代理: `http://localhost:80`
### 选项 3: 生产环境 Docker (完全重建)
```
./start.sh --prod
```
### 停止服务器
```
./stop.sh # Stop dev server
./stop.sh --docker # Stop Docker containers
./stop.sh --status # Show what's running
./stop.sh --clean # Stop and clean Python cache
```
## 配置
将 `.env.example` 复制到 `.env` 并填入您的 API 密钥:
```
# IP 分析
VPNAPI_KEY= # https://vpnapi.io/
IPINFO_TOKEN= # https://ipinfo.io/account/token
SHODAN_KEY= # https://account.shodan.io/
ABUSEIPDB_KEY= # https://www.abuseipdb.com/account/api
PROXYCHECK_KEY= # https://proxycheck.io/dashboard
IP2LOCATION_KEY= # https://www.ip2location.io/
# Domain 分析
IP2WHOIS_KEY= # https://www.ip2whois.com/
URLSCAN_API_KEY= # https://urlscan.io/user/profile/
# File / Hash 分析
INTEZER_KEY= # https://analyze.intezer.com/account-details
VIRUSTOTAL_API_KEY= # https://www.virustotal.com/gui/my-apikey
# Threat Intelligence
ALIENVAULT_KEY= # https://otx.alienvault.com/api
# Server
SECRET_KEY=your-random-secret-key
FLASK_DEBUG=False
HOST=0.0.0.0
PORT=5050
# 可选:离线 IP 查询
# MMDB_PATH=/path/to/ipinfo_lite.mmdb
```
### IPinfo MMDB (可选, 离线模式)
为了在不受 API 速率限制的情况下实现更快的查询,请下载 IPinfo Lite MMDB 数据库:
1. 在 [ipinfo.io/lite](https://ipinfo.io/lite) 注册
2. 下载并解压 `ipinfo_lite.mmdb`
3. 将其放置在 `data/ipinfo_lite.mmdb`
4. 在 `.env` 中设置 `MMDB_PATH=data/ipinfo_lite.mmdb`
## 架构
```
NexusTrace/
├── app/
│ ├── routes/ # Blueprint-organized HTTP handlers
│ │ ├── home_routes.py # Main analyze endpoint + type detection
│ │ ├── ip_routes.py # Batch IP analysis (CSV/XLSX/TXT)
│ │ ├── domain_routes.py # Domain/URL analysis
│ │ ├── hash_routes.py # Hash reputation lookup
│ │ ├── file_routes.py # File malware analysis
│ │ ├── azure_error_routes.py
│ │ ├── user_agent_routes.py
│ │ └── event_routes.py
│ │
│ ├── services/ # Business logic + API integrations
│ │ ├── ip_service.py # VPNapi, IPinfo, IP2Location, Shodan, AbuseIPDB, OTX
│ │ ├── domain_service.py # WHOIS, DNS, SSL, crt.sh, email security
│ │ ├── url_service.py # Security headers, redirect chains, BuiltWith
│ │ ├── file_service.py # Intezer file analysis
│ │ ├── hash_service.py # VirusTotal, MalwareBazaar, ThreatFox, Intezer
│ │ ├── user_agent_service.py
│ │ ├── azure_error_service.py
│ │ └── event_service.py
│ │
│ └── utils/
│ ├── cache.py # Thread-safe LRU cache with TTL
│ └── rate_limiter.py # Sliding window rate limiter
│
├── templates/ # Jinja2 HTML templates
├── static/ # CSS, JS, images, PWA service worker
├── CyberChef_v10.19.4/ # Embedded CyberChef (offline capable)
├── main.py # App entry point
├── requirements.txt
├── Dockerfile
├── docker-compose.yml
├── nginx.conf
├── start.sh # Start script (dev / docker / prod modes)
└── stop.sh # Stop script (dev / docker / all / status)
```
**类型检测原理:** `/analyze` POST 端点根据格式自动检测指标类型 —— IPv4/IPv6、域名模式、URL 方案、MD5/SHA1/SHA256 哈希、AADSTS 代码、Windows 事件 ID 或 User Agent 字符串 —— 并路由到相应的分析管道。
## API 端点
| 方法 | 路由 | 描述 |
|--------|-------|-------------|
| `POST` | `/analyze` | 自动检测并分析任意指标 |
| `POST` | `/api/ip/check_ip` | 单个 IP 分析 |
| `POST` | `/api/ip/check_ips` | 批量 IP 分析 (CSV/XLSX/TXT 上传) |
| `POST` | `/api/domain/check_domain` | 域名信息查询 |
| `POST` | `/api/domain/analyze` | 完整域名/URL 分析 |
| `POST` | `/api/file/analyze_file` | 文件恶意软件分析 (上传) |
| `POST` | `/api/hash/check_hash` | 哈希信誉查询 |
| `POST` | `/api/azure_error/search` | Azure AD 错误代码查询 |
| `GET` | `/api/health` | 健康检查 |
| `GET` | `/api/cyberchef/recipes` | 列出已保存的 CyberChef 食谱 |
| `POST` | `/api/cyberchef/recipes` | 保存一个 CyberChef 食谱 |
## 部署
### Docker Compose (推荐)
包含的 `docker-compose.yml` 在 Nginx 后运行 Flask:
```
cp .env.example .env # configure your keys
./start.sh --docker # build and start
./stop.sh --docker # stop
```
查看日志:
```
docker compose logs -f
```
### 手动 / Gunicorn
```
pip install -r requirements.txt
gunicorn --bind 0.0.0.0:5050 --timeout 120 --workers 4 main:app
```
## 缓存与速率限制
- **响应缓存:** 30 分钟 TTL,LRU 淘汰,每个服务最多 1,000 项。对同一指标的重复查询将立即返回。
- **速率限制:** 每服务滑动窗口限制 (例如,WHOIS 为 2 请求/秒,AlienVault 为 4 请求/秒)。防止在高负载下 API 密钥被封禁。
## 致谢
| 服务 | 用途 |
|---------|---------|
| [VPNapi](https://vpnapi.io/) | VPN / 代理 / Tor 检测 |
| [IPinfo](https://ipinfo.io/) | IP 地理定位 + ASN |
| [IP2Location](https://www.ip2location.io/) | IP 地理定位 |
| [Shodan](https://shodan.io/) | 端口扫描 + CVE |
| [AbuseIPDB](https://www.abuseipdb.com/) | 滥用报告 |
| [ProxyCheck](https://proxycheck.io/) | 代理 + VPN 检测 |
| [AlienVault OTX](https://otx.alienvault.com/) | 威胁情报 |
| [IP2WHOIS](https://www.ip2whois.com/) | WHOIS 查询 |
| [URLscan.io](https://urlscan.io/) | URL 扫描 + 截图 |
| [Intezer](https://intezer.com/) | 恶意软件分析 |
| [VirusTotal](https://www.virustotal.com/) | 哈希信誉 |
| [MalwareBazaar](https://bazaar.abuse.ch/) | 恶意软件哈希数据库 |
| [crt.sh](https://crt.sh/) | 证书透明度日志 |
| [CyberChef](https://github.com/gchq/CyberChef) | 数据转换 (GCHQ) |
## 贡献
1. Fork 本仓库
2. 创建特性分支: `git checkout -b feature/your-feature`
3. 提交您的更改: `git commit -m 'Add feature'`
4. 推送并开启一个 Pull Request
## 许可证
[在此处添加许可证]
标签:Ask搜索, CyberChef, DAST, ESC4, HTTP/HTTPS抓包, Incident Response, IoC, IP地址分析, OSINT, Self-hosted, Sigma 规则, TTPs, VirusTotal, 域名分析, 失陷指标, 威胁情报, 安全分析平台, 安全运营, 库, 应急响应, 开发者工具, 态势感知, 态势感知平台, 恶意软件分析, 扫描框架, 网络安全, 自定义DNS解析器, 自托管, 请求拦截, 逆向工具, 隐私保护