Syd 是一款离线渗透测试助手,使用本地大语言模型和检索增强生成技术分析扫描输出。它完全在您的笔记本电脑上运行,无需联网或 API 密钥。
Syd 解析技术扫描输出(Nmap、BloodHound、Volatility)并用通俗易懂的英文回答问题。无需手动查看数百页结果,您可以提出具体问题,并获得基于实际扫描数据的、有据可依的答案。
支持的工具:
主要特性:
Syd 采用三级流水线:
事实提取阶段使用正则表达式和结构化解析(无需大语言模型)。这确保了 100% 准确的数据提取。大语言模型仅根据验证过的事实生成自然语言解释。
每次生成的答案都会通过验证与提取的事实进行核对。如果大语言模型提及扫描中不存在的数据(PID、IP 地址、主机名等),则该答案会被拒绝。
硬件:
软件:
测试配置:
运行一条命令,一切自动完成:
python setup.py
该脚本将:
所需时间: 15-30 分钟(主要是下载)
无需 HuggingFace 账户。 FAISS 索引已包含在仓库中。
如果 setup.py 失败,请手动安装:
pip install -r requirements.txt
从 HuggingFace 下载模型:
运行 Syd:
python syd.py
详细故障排除请参见 INSTALL.md。
已使用真实渗透测试数据进行测试:
验证层可防止幻觉。引用不存在数据的答案会被阻止。
Syd_V3/
├── syd.py # 主应用程序
├── nmap_fact_extractor.py # Nmap 解析器
├── bloodhound_fact_extractor.py # BloodHound 解析器
├── volatility_fact_extractor.py # Volatility 解析器
├── bloodhound_analyzer.py # BloodHound 分析逻辑
├── volatility_analyzer.py # Volatility 分析逻辑
├── knowledge_bases/ # 技术文档
│ ├── bloodhound/
│ └── volatility/
├── rag_engine/
│ ├── models/ # 大语言模型(GGUF 格式)
│ └── embeddings/ # FAISS 索引
└── chunk_and_embed_*.py # 知识库索引脚本
大语言模型: Qwen 2.5 14B(Q5_K_M 量化) 嵌入模型: all-MiniLM-L6-v2(sentence-transformers) 向量数据库: FAISS(CPU 优化) 图形界面: tkinter(跨平台)
温度:0.05-0.1(低温度以减少幻觉) 重复惩罚:2.8-3.2(防止循环) 上下文窗口:4096-8192 个 token
设计用于典型渗透测试场景(10-500 台主机)。企业级扫描可能需要分块处理。
找不到模型:
rag_engine/models/ 目录中qwen2.5-14b-instruct-q5_k_m.gguf找不到 FAISS 索引:
python chunk_and_embed_*.py 脚本rag_engine/embeddings/customers/ 目录下是否有 .faiss 和 .pkl 文件内存不足:
性能缓慢:
社区支持:
专业支持: 如果您处于离线环境且安装困难,我提供预配置的 USB 安装服务(需少量费用)。包含所有内容且经过测试。
联系方式:[email protected]
资源:
特别关注以下方面:
参与指南请参见 CONTRIBUTING.md。
MIT 许可证 - 详见 LICENSE 文件
构建时使用了:
基于真实的渗透测试数据开发和测试。
作者: Paul Armstrong (@Sydsec) 网站: https://sydsec.co.uk YouTube: https://www.youtube.com/@paularmstrong8306