tahatokgoz/baksi

GitHub: tahatokgoz/baksi

Baksı 是一个完全离线运行的攻击性安全情报与渗透测试规划平台,通过聚合多源威胁情报并结合本地 LLM 推理,为红队提供语义搜索、AI 分析和动态攻击链生成能力。

Stars: 0 | Forks: 0

# Baksı ♞ **攻击性安全情报平台** *由 ShahMat Sec 出品* 本地优先的威胁情报聚合、语义搜索及 AI 辅助的渗透测试 —— 完全在您自己的机器上离线运行。 [功能](#features) · [截图](#screenshots) · [安装](#installation) · [用法](#usage-guide) · [配置](#configuration) · [FAQ](#faq)
## 概述 **Baksı** —— 得名于古突厥语中意为*洞察并知晓一切*的*萨满* —— 是一个专为红队操作者和安全研究人员构建的本地优先威胁情报和渗透测试平台。 它持续从 **9 个来源**聚合安全情报,将其索引到本地向量数据库中以进行语义搜索,并使用**本地 LLM 推理**(通过 Ollama)进行分析,且分析完全基于其所收集的数据 —— 无需云 API,无需遥测,不会有任何数据离开您的机器。 Baksı 作为单个 FastAPI 进程运行,在 `http://127.0.0.1:8000` 上同时提供 REST API 和原生 JS 单页应用,既可以作为独立服务器启动,也可以通过 PyWebView 作为原生桌面窗口启动。 ## 功能 ### 情报收集 - **9 源聚合** —— CVE/NVD、CISA KEV、ExploitDB、GitHub Security Advisories、GitHub PoC 仓库、HackTricks、PortSwigger Research、OWASP 和 Reddit 安全社区 - **后台收集器 daemon** —— 每个来源按其自身可配置的间隔进行轮询;针对特定来源的抓取和发布限制在运行时从数据库读取 - **自动去重** —— 帖子按来源进行唯一键标记,因此重新运行绝不会产生重复项 ### 搜索与分类 - **基于向量搜索的本地 RAG** —— `sentence-transformers` (multilingual-e5-large) + ChromaDB 提供低于 100ms 的语义搜索,支持容错和同义词,完全离线 - **相关性排名** —— 标题匹配和来源信任权重将最权威的内容置于首位 - **关键词分类引擎** —— 26 种攻击类型分类在每个收集周期后自动应用 - **AI 分类(可选启用)** —— 本地 Ollama 模型按需对帖子进行重新分类,可单独或批量处理 ### 分析与操作 - **Dossier 系统** —— 基于主题的情报聚合,带有 AI 生成的概述,并引用当前的 CVE 和公告 - **Sefer —— 动态渗透测试活动引擎** —— *Sefer*(古突厥语中的*军事行动*)为目标构建一个交互式的、分支化的攻击路线图。它跨越 13 个 MITRE ATT&CK 阶段逐步生成攻击链,使每个阶段适应前一个阶段的实际发现,并将其可视化为基于节点的图表 - **Recon Assistant** —— 引导式问答,将扫描输出(Nmap、Nikto、Burp)和上传的 artifact 转化为下一步建议 - **OPSEC Academy** —— 17 个部分的运营安全参考,由收集到的情报生成 - **报告** —— 将发现导出为 PDF 和 Word ### 体验 - **无处不在的本地 AI** —— 由 Ollama 提供支持的推理(默认为 `qwen2.5:14b`),无需 API 密钥 - **4 种主题** —— 深红(默认)、赛博蓝、紫色和矩阵,并带有开场动画 - **单进程、零构建前端** —— 无 bundler,无框架;编辑并刷新即可 ## 截图 ### 帖子与情报流 ![帖子流](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/ea0546da54120819.png) *经过聚合、分类并带有相关性排名搜索的情报流。* ### 帖子详情 ![帖子详情](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/0ac9709228120825.png) *包含缓存内容、分类和 AI 摘要的完整帖子视图。* ### Dossier ![Dossier](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/195a214ddd120831.png) *带有引用当前 CVE 的 AI 概述的基于主题的 dossier。* ### Sefer —— 攻击活动 ![Sefer 活动](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/f52eb03818120841.png) *映射到 MITRE ATT&CK 阶段的基于节点的分支攻击链。* ### OPSEC Academy ![OPSEC Academy](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/daf7e9e6ed120845.png) *17 个部分的运营安全参考。* ### 主题 ![主题](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/59f48b2060120853.png) *深红、赛博蓝、紫色和矩阵主题。* ## 技术栈 | 层级 | 技术 | |-------|-----------| | **后端** | Python 3.11, FastAPI, SQLAlchemy, SQLite | | **前端** | 原生 JavaScript (SPA), HTML5, CSS3 | | **桌面端** | PyWebView | | **AI / 推理** | Ollama (本地 LLM —— `qwen2.5`, `llama3.1`, `deepseek-coder`) | | **Embeddings / RAG** | sentence-transformers (multilingual-e5-large), ChromaDB, PyTorch | | **可视化** | Cytoscape.js + dagre | | **抓取 / HTTP** | httpx, BeautifulSoup4, lxml, praw | | **报告** | reportlab (PDF), python-docx (Word) | | **日志** | loguru | ## 环境要求 - **Python 3.11+** - 已安装 **[Ollama](https://ollama.com)**,并拉取了至少一个模型(例如 `ollama pull qwen2.5:14b`) - 建议使用 **NVIDIA GPU** 进行 embedding 生成 (CUDA)。Baksı 可以在 CPU 上运行,但 embedding 索引速度较慢。 - 首次运行时需要约 6 GB 的可用磁盘空间,用于存放 embedding 模型和向量数据库 - Windows、Linux 或 macOS(主要开发目标是 Windows 11) ## 安装 ``` # 1. Clone git clone https://github.com/tahatokgoz/baksi.git cd baksi # 2. 创建并激活 virtual environment python -m venv venv venv\Scripts\activate.bat # Windows # source venv/bin/activate # Linux/macOS # 3. 安装依赖 pip install -r requirements.txt # 4. (GPU 用户) 单独安装 torch 的 CUDA build # pip install torch --index-url https://download.pytorch.org/whl/cu121 # 5. 配置 copy .env.example .env # Windows # cp .env.example .env # Linux/macOS # 然后使用你的 credentials 编辑 .env(全部可选 — 参见 Configuration) # 6. 拉取 Ollama model ollama pull qwen2.5:14b # 7. 运行 python backend/run.py ``` 然后在浏览器中打开 **`http://127.0.0.1:8000`**,或者启动原生桌面窗口: ``` python baksi.pyw ``` 首次启动时,Baksı 会创建 SQLite 数据库,植入默认分类和来源,并启动后台收集器。 ## 使用指南 ### 研究攻击技术 1. 转到 **Posts** 视图并输入查询(例如 *"deserialization RCE Java"*)。 2. 结果会根据语义进行排名 —— 即使有拼写错误或同义词,相近的匹配项也会显示出来。 3. 打开一个帖子以查看完整的缓存内容、其分类以及 **AI 摘要**按钮。 4. 为您想再次查看的帖子加注星标;它们会被收集在 **Starred** 下。 ### 构建 dossier 1. 打开 **Dossier** 视图并为某个主题创建 dossier(例如 *"Apache Struts"*)。 2. Baksı 会聚合匹配的情报,并生成 **AI 概述**,其中引用了它找到的当前 CVE 和公告。 3. 随着新情报的收集,刷新概述。 ### 运行 Sefer(渗透测试活动) 1. 打开 **Sefer → New** 并定义您已授权的目标、OPSEC 级别和目的。 2. 使用 **Recon Assistant** 输入扫描输出和上传的 artifact(Nmap、Nikto、Burp、截图)。 3. 生成 **攻击链** —— Baksı 为每个 MITRE ATT&CK 阶段提出主要技术及备选方案。 4. 当您完成一个阶段并记录发现后,生成下一个阶段;攻击链会根据您的实际发现**进行分支和调整**。 5. 跟踪每个活动的命令、文件和完整时间线,然后**导出报告** (PDF/Word)。 ## 配置 将 `.env.example` 复制到 `.env`。每个值都是可选的 —— Baksı 可以在没有任何凭证的情况下运行,但某些来源和限制依赖于它们。 | 变量 | 描述 | 默认值 | |----------|-------------|---------| | `APP_NAME` | 应用程序名称 | `Baksı` | | `APP_VERSION` | 版本字符串 | `1.0.0` | | `DEBUG` | 启用 debug 模式 | `false` | | `DATABASE_URL` | SQLAlchemy 数据库 URL | `sqlite:///./data/baksi.db` | | `REDDIT_CLIENT_ID` | Reddit 应用客户端 ID([创建应用](https://www.reddit.com/prefs/apps)) | *(空)* | | `REDDIT_CLIENT_SECRET` | Reddit 应用客户端密钥 | *(空)* | | `REDDIT_USER_AGENT` | Reddit API 用户代理字符串 | `Baksi TI Collector v1.0 by ShahMat Sec` | | `TARGET_SUBREDDITS` | 要收集的逗号分隔的 subreddits | `netsec,cybersecurity,…` | | `GITHUB_TOKEN` | GitHub token —— 可选,提高 API 速率限制 | *(空)* | | `JWT_SECRET` | 用于签署 token 的密钥 | *(change me)* | | `JWT_ALGORITHM` | JWT 签署算法 | `HS256` | | `JWT_EXPIRE_MINUTES` | Token 生命周期(以分钟为单位) | `1440` | | `COLLECT_INTERVAL_SECONDS` | 默认收集器间隔 | `300` | | `OLLAMA_HOST` | Ollama API 主机 | `http://localhost:11434` | | `OLLAMA_DEFAULT_MODEL` | 默认 Ollama 模型 | `qwen2.5:14b` | ## FAQ **我的任何数据会离开我的机器吗?** 不会。所有推理均通过 Ollama 在本地运行,embedding 使用 sentence-transformers 在本地进行计算,且向量数据库 (ChromaDB) 位于磁盘上。唯一的出站流量是从配置的来源获取公开情报。 **我需要 API 密钥吗?** 不需要。Baksı 可以在没有任何凭证的情况下运行。Reddit 应用可启用 Reddit 收集器,而 GitHub token 可提高 GitHub API 的速率限制 —— 这两者都是可选的。 **我需要 GPU 吗?** 不需要,但它会有所帮助。在 NVIDIA GPU (CUDA) 上生成 embedding 的速度要快得多。在 CPU 上一切仍然可以正常工作,只是在首次建立索引时速度较慢。 **我应该使用哪种 Ollama 模型?** `qwen2.5:14b` 是默认设置,建议用于攻击链生成和分析。`llama3.1:8b` 更轻量;`deepseek-coder:6.7b` 对于包含大量代码的分类非常有用。 **我的数据存储在哪里?** 在 `data/` 目录下 —— 包含 SQLite 数据库、日志、向量数据库、上传的文件和生成的报告。此目录已被 git 忽略,永远不会被提交。 **我可以从 SQLite 切换到 PostgreSQL 吗?** 可以 —— 将 `DATABASE_URL` 指向您的 Postgres 实例。SQLite 是零配置的默认选项。 **我编辑设置后它显示“Restart app to apply changes” —— 为什么?** 设置被写入 `.env` 文件中,该文件在启动时读取。重启会将它们重新加载到正在运行的进程中。 ## 免责声明 Baksı 专为在受控、合法的环境中进行**授权的安全研究和渗透测试**而构建。您有责任遵守所有适用法律,并在测试任何系统之前获得适当的授权。作者对滥用行为不承担任何责任。 ## 许可证 基于 **MIT License** 发布 —— 详见 [LICENSE](LICENSE)。
**ShahMat Sec ♞** · 由 [tahatokgoz](https://github.com/tahatokgoz) 构建
标签:AI风险缓解, AV绕过, FastAPI, RAG, 凭据扫描, 威胁情报, 实时处理, 密码管理, 开发者工具, 开源情报, 数据可视化, 数据展示, 本地大模型, 红队, 运行时操纵, 逆向工具