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, 安全仪表盘, 插件系统, 本地大模型, 请求拦截, 逆向工具