ELFO-1/AI-Pentest-Dashboard

GitHub: ELFO-1/AI-Pentest-Dashboard

一个基于 Streamlit 和本地 Ollama LLM 的模块化渗透测试仪表盘,将侦察、漏洞利用、OSINT、CVE 查询和报告生成整合为统一的 AI 辅助工作流。

Stars: 0 | Forks: 0

# 🛡️ AI Pentest 仪表盘 一个模块化的 AI 辅助渗透测试仪表盘(基于 Ollama / 本地 LLM 后端)。将 Recon、Exploitation、OSINT、CVE-Lookup 和 Reporting 汇聚于 Streamlit 界面中——内置持久化 SQLite 数据库,并支持跨阶段的 AI 分析。 ## 🏗️ 架构与组件 | 组件 | 功能 | 默认端口 | | :-------------- | :---------------------------------- | :------------ | | **Ollama** | LLM 引擎(本地) | `11434` | | **Open WebUI** | Web 聊天界面(可选) | `3000` | | **Pentest AI** | Streamlit 仪表盘(本仓库) | `8501` | ## ✨ 功能 (v6) 15 个标签页涵盖完整的工作流: | 标签页 | 模块 | 内容 | | :-: | :---- | :----- | | 1 | 📁 **Nmap Scan & Import** | 实时扫描、上传 XML 或加载已保存的扫描;自动服务识别 | | 2 | 🔍 **Auto-Recon** | smbmap、smbclient (anon)、whatweb、gobuster、feroxbuster、dnsrecon、nmap UDP – 可选紧接着进行 AI 分析 | | 3 | 💥 **Exploit Finder** | Metasploit 模块匹配 + AI Exploit 评估,也适用于没有已知模块的服务 | | 4 | 🔗 **NTLM Relay** | Relay 设置与辅助(Responder / ntlmrelayx 工作流) | | 5 | 🔑 **Passwort Angriff** | hydra / medusa (ssh, ftp, smb, http, rdp, mysql, mssql, pop3, imap),实时命令预览,凭证高亮显示 + hashcat (NTLMv2, NTLM, MD5, SHA1, bcrypt) | | 6 | 🐛 **Vulners CVE-Lookup** | 自动查找 Nmap 扫描出的所有服务 + 手动搜索,CVSS 条形图,CSV 导出 | | 7 | 🌐 **Shodan** | 主机查询、搜索、检查扫描主机、DNS 工具 – 包括对 Shodan 漏洞的 AI 分析 | | 8 | 🕵️ **OSINT** | theHarvester、WHOIS/DNS、子域名枚举 (subfinder/amass/crt.sh)、**E-Mail OSINT**(排列组合、Gravatar、holehe、HIBP)、**Username OSINT** (sherlock/maigret + 个人资料 URL)、AI 生成的 Google Dorks、URL 发现、dnsx/naabu,汇总的 AI OSINT 分析 | | 9 | 🤖 **KI Analyse** | 对扫描进行结构化的 LLM 评估:Attack Surface、关键发现、后续步骤 | | 10 | 📊 **CVSS Scoring** | 针对每个服务的 AI 辅助 CVSS-v3 评分 | | 11 | 📋 **Report & Chat** | 报告生成器 (.md / .html),包含 AI 结果 + 交互式 AI 聊天 | | 12 | 💾 **History (DB)** | 在 SQLite (`pentest.db`) 中持久化保存扫描、Recon 运行记录和发现 | | 13 | 🐚 **Reverse Shell** | 支持多种语言/Payload 的 Reverse Shell 生成器 | | 14 | 🌐 **Web Scan** | httpx / nuclei Web 扫描 | | 15 | 🗂️ **SMB Spider** | SMB 共享枚举与浏览 | **贯穿所有标签页的功能:** - 🎭 **角色选择器**(侧边栏):6 种角色(Pentester、Recon 专家、OSINT 专家、Exploit 编写者、Greyhat、防御分析师)+ 自定义 Prompt。 - 🔑 **API Keys**(侧边栏):Vulners 和 Shodan 的 Key 以 `type="password"` 形式输入,带有连接状态;若未设置 Key,相关按钮将自动禁用。 - ⚡ **AI 流式传输**:AI 分析、Recon 评估、聊天和报告会以 Token 为单位实时逐字显示(带有提示光标),而不是等到最后才出现。 - 🧠 **按任务选择模型**:在 Exploit、AI 分析、CVSS、报告、聊天和 OSINT 标签页中,可以为每个操作选择不同的模型(默认 = 侧边栏模型)——例如,为 Exploit 选择一个 uncensored 模型,为报告选择一个 Coder 模型。 - 🧰 **工具检查**(侧边栏):启动时显示已安装了哪些外部 CLI 工具(nmap、hydra、nuclei、nxc 等)——分组显示,带有 🟢/🔴 标志及缺失工具列表。 ## 🛠️ 安装与设置 (Arch Linux / AMD) ### 1. Ollama (Backend) ``` # 通过 yay (AUR) yay -S ollama # 自动启动 sudo systemctl enable --now ollama # 加载模型(示例) ollama pull qwen3:latest ``` **局域网访问**(以便其他客户端/Docker 访问 Ollama): ``` sudo systemctl edit ollama ``` 插入: ``` [Service] Environment="OLLAMA_HOST=0.0.0.0:11434" ``` 重新加载:`sudo systemctl daemon-reload && sudo systemctl restart ollama` ### 2. Open WebUI (Docker,可选) ``` sudo pacman -S --needed docker sudo systemctl enable --now docker sudo usermod -aG docker "$USER" newgrp docker docker run -d \ --name open-webui \ --restart unless-stopped \ --network host \ -e OLLAMA_BASE_URL=http://127.0.0.1:11434 \ -v open-webui:/app/backend/data \ ghcr.io/open-webui/open-webui:main ``` 浏览器访问:`http://localhost:3000` ### 3. Pentest AI 仪表盘 (Streamlit) ``` # 在 Repo 文件夹中 python -m venv .venv source .venv/bin/activate pip install -r requirements.txt ``` #### API Keys 在仓库根目录下创建一个 `API_KEYS.txt`(会被 `.gitignore` 忽略,切勿提交)。支持的行格式: ``` vulners = DEIN_VULNERS_KEY shodan = DEIN_SHODAN_KEY ``` 或者,也可以直接在侧边栏中输入 Keys。 #### 启动 ``` streamlit run pentest_ai_v6.py ``` 可选的启动脚本 `run_pentest_ai.sh`: ``` #!/usr/bin/env bash cd "$(dirname "$0")" source .venv/bin/activate exec streamlit run pentest_ai_v6.py ``` `chmod +x run_pentest_ai.sh` ### 外部工具 根据所使用的标签页,系统需要相应的 CLI 工具(否则相应的按钮将被禁用 / 显示提示): `nmap`、`smbmap`、`smbclient`、`whatweb`、`gobuster`、`feroxbuster`、`dnsrecon`、`hydra`、`medusa`、`hashcat`、`theHarvester`、`subfinder`、`amass`、`httpx`、`nuclei`、`dnsx`、`naabu`。 ## 📂 文件结构 - `pentest_ai_v6.py` – 主仪表盘 - `helpers.py` – 纯解析器(Nmap-XML, nuclei, SMB, Spider)与 Payload 生成器 - `integrations.py` – 外部 API 封装 - `tests/` – 针对 `helpers.py` 和 `integrations.py` 的 pytest 测试 - `requirements.txt` / `requirements-dev.txt` – 运行和测试依赖 - `README.md` – 本文档 - `.gitignore` – 排除 Secrets 和运行时数据 本地生成,**不在仓库中**(参见 `.gitignore`): `API_KEYS.txt`, `pentest.db`, `scans/`, `users.txt` ## 🧪 测试 纯模块(`helpers.py`、`integrations.py`)已由 **pytest** 覆盖—— 无需网络访问(Vulners/Shodan 的 HTTP 调用已被 mock)。 ``` pip install -r requirements-dev.txt pytest ``` ## 🚀 操作指南:首次扫描与分析 1. **Nmap 扫描**:`nmap -sV -sC -oX scan.xml ` 2. **导入**:在 **📁 Nmap Scan & Import** 标签页中上传 `scan.xml`(或启动实时扫描)。 3. **Recon/分析**:选择 LLM(例如 `qwen3`),运行 Auto-Recon 和/或 AI 分析。 4. **CVE/OSINT**:利用 Vulners、Shodan 和 OSINT 标签页。 5. **报告生成**:通过 **📋 Report & Chat** 生成包含 AI 结果的 `.md`/.html` 报告。 ## ⚖️ 免责声明 本工具仅供**授权的安全检查**和学习目的使用。未经授权将其用于外部系统是违法的。作者不对任何滥用行为承担责任。
标签:AI安全工具, AI风险缓解, ESC4, Kubernetes, OSINT, 安全仪表盘, 插件系统, 本地大模型, 请求拦截, 逆向工具