KM-it-ops/osint-dashboard

GitHub: KM-it-ops/osint-dashboard

基于FastAPI构建的轻量级OSINT仪表盘,集成Firecrawl实现零日漏洞追踪与目标情报分析的可视化平台。

Stars: 0 | Forks: 0

# KM-IT-Ops OSINT 仪表盘 适合初学者的脚手架:**FastAPI** 提供由 **Jinja2** 模板和 **Tailwind CSS** (CDN) 构建的 HTML 页面。头条新闻存储在 **SQLite** (`backend/data/osint.db`) 中,并在每次请求时加载。 ## 前置条件 - 已安装 Python 3.10+ 且可用 `python` 调用。 ## 设置 在此文件夹 (`osint-dashboard/`) 中执行: ``` python -m venv .venv .\.venv\Scripts\Activate.ps1 pip install -r requirements.txt ``` 在 macOS/Linux 上,请改用 `source .venv/bin/activate` 来激活。 ## 运行开发服务器 该应用要求你的**当前工作目录**为 `backend/`,以便正确解析导入 (`app.main`)。 ``` Set-Location backend uvicorn app.main:app --reload ``` 打开 **http://127.0.0.1:8000/** —— 你应该会看到 Hello World 页面。 API 文档(自动生成):**http://127.0.0.1:8000/docs** ### SQLite (`osint.db`) 在启动时,应用会在需要时创建 **`backend/data/osint.db`**。如果头条新闻表为**空**,它会从 **`backend/data/zero_day_headlines.json`**(旧版 Firecrawl 导出格式)**执行一次性导入**。此后,**`/`** 和 **`/api/headlines`** 将**仅从 SQLite 读取**数据。 要在编辑 JSON 后**重新加载**(例如有新的 Firecrawl 结果):删除 `backend/data/osint.db`,重启服务器,JSON 将被再次导入。 **Cursor MCP:** 全局 MCP 配置包含 **`mcp-sqlite-osint`**(`npx mcp-sqlite` → `osint.db` 的路径),因此你可以在 DB 文件存在后检查表。如果服务器未显示,请在 Cursor 中重新加载 MCP。 ### 刷新零日漏洞头条 (Firecrawl → JSON → DB) 1. 更新 **`backend/data/zero_day_headlines.json`**(包括 `topic`、`updated_at`、`source_note`,以及包含 `title` + `url` 的 `headlines`)。你可以使用 Firecrawl CLI 生成候选项,然后粘贴到该格式中: ``` npx firecrawl-cli search "recent cybersecurity zero-day vulnerabilities" -o .firecrawl/zero-day-search.json ``` 2. 删除 **`backend/data/osint.db`** 并重启 uvicorn,以便应用将 JSON 重新导入 SQLite。 ## 实时目标分析器 (Firecrawl API) 仪表盘可以对域名或 CVE 运行**临时 OSINT**:它调用 **Firecrawl 的 HTTP 搜索 API**(而非 Cursor MCP),将结果标准化,保存到 SQLite,并在主页上显示报告。 1. 从 [Firecrawl](https://firecrawl.dev) 获取 API 密钥(或使用你自托管实例的 URL)。 2. 在 `osint-dashboard/` 文件夹中,创建一个 **`.env`** 文件(可选但推荐): FIRECRAWL_API_KEY=your_firecrawl_api_key_here # 可选:自托管 # FIRECRAWL_API_URL=https://your-instance.example 将真实的密钥保留在 `.env`(已添加到 .gitignore)或宿主机的机密环境变量中——切勿保存在受版本控制的文件中。 3. 重启 uvicorn。在 **http://127.0.0.1:8000/** 上使用 **Live Target Analyzer** 搜索框。 **API (用于脚本):** - `POST /api/analyze-target` —— JSON 请求体 `{"target": "example.com"}` 或 `{"target": "CVE-2024-1234"}` - `GET /api/target-reports?limit=10` —— 最近的已保存报告 报告存储在 `backend/data/osint.db` 的 **`target_intelligence_reports`** 表中。 **注意:** 在 Cursor 中的一次性研究仍可使用 **Firecrawl MCP**;而运行中的应用则始终使用 **REST API** 和 `FIRECRAWL_API_KEY`。 ## 项目布局 | 路径 | 用途 | |------|---------| | `backend/app/main.py` | FastAPI 应用和路由 | | `backend/app/db.py` | SQLite:头条新闻数据源 + `target_intelligence_reports` | | `backend/app/firecrawl_client.py` | Firecrawl `/v1/search` HTTP 客户端 | | `backend/app/target_analyzer.py` | 目标分类,标准化情报报告 | | `backend/templates/` | HTML 模板 | | `backend/static/` | 静态文件 (CSS, 图片) —— 供后续使用 | | `backend/data/osint.db` | SQLite 数据库 (已添加到 .gitignore;运行时创建) | | `backend/data/zero_day_headlines.json` | 可选的一次性种子文件 (格式与 Firecrawl 导出相同) |
标签:AV绕过, BeEF, ESC4, FastAPI, Firecrawl, IT运维, Jinja2, OSINT, Python, Socks5代理, SQLite, Syscall, Tailwind CSS, URL抓取, Web开发, 仪表盘, 前端模板, 后端开发, 威胁情报, 安全运营, 实时处理, 开发者工具, 情报大屏, 情报聚合, 扫描框架, 数据库, 数据抓取, 无后门, 漏洞分析, 爬虫, 用户定义反射加载器, 网络安全, 路径探测, 逆向工具, 隐私保护, 零日漏洞, 靶场分析