AI 渗透测试辅助工作台整体报告

admin
0
2026-08-03

现阶段可落地架构:师傅模式 + 助手模式 + 知识库模式

0. 结论

你现在不需要重装系统。

推荐:

Windows 主系统
+ WSL2 Ubuntu
+ Docker Desktop
+ One API
+ Ollama
+ Open WebUI
+ Obsidian
+ Python 知识库处理脚本

当前硬件可跑:

GTX 1660S 6GB
16GB RAM
1TB SSD
Windows

限制:

  • 本地大模型能力有限;
  • 复杂分析走付费 API;
  • 本地模型只做轻量摘要、分类、初步问答;
  • 不上 Dify / Strix 作为第一阶段主线,避免太重。

1. 总体架构

┌──────────────────────────────┐
│ Windows 桌面层                 │
│ Obsidian / Burp / 浏览器 / VSCode │
└──────────────┬───────────────┘
               │
┌──────────────▼───────────────┐
│ Open WebUI                    │
│ 师傅模式 / 助手模式 / 知识库问答 │
└──────────────┬───────────────┘
               │
┌──────────────▼───────────────┐
│ One API                       │
│ 本地模型 + 付费 API 统一入口    │
└───────┬───────────────┬──────┘
        │               │
┌───────▼──────┐   ┌────▼─────────┐
│ Ollama 本地模型 │   │ 付费 API 模型 │
└───────┬──────┘   └────┬─────────┘
        │               │
┌───────▼───────────────▼────────┐
│ 知识库处理层                    │
│ 爬取 / 摘要 / 事实抽取 / 交叉验证 │
└──────────────┬─────────────────┘
               │
┌──────────────▼─────────────────┐
│ Markdown 知识库 + Qdrant 向量库  │
│ Obsidian 管理,可检索,可复盘      │
└────────────────────────────────┘

2. 三个模式设计

2.1 渗透师傅模式

定位:

教你,不替你打。

功能:

  • 提示思路;
  • 追问你的判断依据;
  • 指出遗漏;
  • 给相似案例;
  • 不直接给最终答案;
  • 记录错漏;
  • 形成学习计划;
  • 靶机复盘。

适合:

学习、靶机、复盘、能力提升

系统提示词核心:

你是我的渗透测试师傅。你的目标是训练我,而不是替我完成所有操作。
优先给思路、判断依据、检查清单和相似案例。
不要直接给最终答案,除非我明确要求。
如果我给出测试步骤,你需要指出遗漏、错误和风险。
每次结束后总结我的薄弱点,并生成下一步训练建议。
所有内容只用于授权测试、靶机和合法学习环境。

2.2 渗透助手模式

定位:

直接提效。

功能:

  • 直接分析结果;
  • 给测试思路;
  • 整理 Burp 请求;
  • 分析 Nmap/Nuclei/dirsearch 输出;
  • 写漏洞报告;
  • 写修复建议;
  • 辅助代码审计;
  • 辅助生成复测说明。

适合:

授权项目、报告编写、快速分析

系统提示词核心:

你是我的渗透测试助手。请直接、简洁、可执行地回答。
优先给结论、风险点、验证方法、证据要求和修复建议。
如果涉及真实目标,必须提醒我确认授权范围、控制并发、避免破坏性操作。
高风险动作只给建议,不自动执行。
输出尽量结构化,便于写入报告。

2.3 知识库模式

定位:

整理、交叉验证、沉淀文档。

功能:

  • 收集多个来源;
  • 提取漏洞事实;
  • 识别相同漏洞;
  • 比对版本、环境、利用条件;
  • 找冲突点;
  • 评分可信度;
  • 生成整理后的 Markdown 文档;
  • 入 Obsidian 知识库。

适合:

长期积累自己的安全知识体系

系统提示词核心:

你是我的安全知识库整理助手。
你需要从多个来源中提取事实,而不是简单总结。
对同一漏洞或技术结论,需要交叉验证来源是否一致。
必须区分:已验证事实、来源推测、冲突信息、待验证点。
最终输出 Markdown 文档,包含证据表、可信度评分、可复现条件和参考来源。

3. 目录规划

在 Windows 建议:

D:\AI-Pentest\
├── kb\                    # 最终 Markdown 知识库
│   ├── web\
│   ├── cve\
│   ├── tools\
│   ├── labs\
│   ├── reports\
│   └── playbooks\
├── raw_sources\            # 原始抓取内容
├── processed\              # 清洗后的正文
├── evidence\               # 证据矩阵、facts.json
├── projects\               # 授权项目资料,需脱敏
├── logs\                   # AI 使用日志
├── scripts\                # Python 脚本
├── docker\                 # docker-compose
└── models\                 # 本地模型缓存,可选

4. Windows 环境准备

4.1 启用 WSL2

PowerShell 管理员执行:

wsl --install -d Ubuntu-22.04

重启后进入 Ubuntu。

检查:

wsl -l -v

应看到:

Ubuntu-22.04    Running    2

4.2 安装 Docker Desktop

安装 Docker Desktop for Windows。

设置:

Settings
→ Resources
→ WSL Integration
→ Enable integration with Ubuntu-22.04

建议 Docker 资源:

CPU: 4 cores
Memory: 6-8GB
Swap: 4-8GB
Disk: 放在 1TB SSD

4.3 配置 WSL 内存限制

Windows 用户目录创建:

C:\Users\你的用户名\.wslconfig

内容:

[wsl2]
memory=8GB
processors=4
swap=8GB
localhostForwarding=true

然后 PowerShell:

wsl --shutdown

重新打开 Ubuntu。


5. 安装 Ollama

建议直接装 Windows 版 Ollama。

安装后拉模型:

ollama pull qwen2.5-coder:3b
ollama pull qwen2.5:7b

你的 1660S 6GB 优先用:

qwen2.5-coder:3b

7B 可以测试,但不要期待很快。

确认:

ollama list
ollama run qwen2.5-coder:3b

Ollama 默认接口:

http://localhost:11434

6. Docker 部署核心服务

进入 WSL:

mkdir -p /mnt/d/AI-Pentest/docker
cd /mnt/d/AI-Pentest/docker

创建 docker-compose.yml

services:
  one-api:
    image: justsong/one-api:latest
    container_name: one-api
    restart: always
    ports:
      - "3000:3000"
    environment:
      - TZ=Asia/Shanghai
    volumes:
      - /mnt/d/AI-Pentest/docker_data/one-api:/data
    extra_hosts:
      - "host.docker.internal:host-gateway"

  open-webui:
    image: ghcr.io/open-webui/open-webui:main
    container_name: open-webui
    restart: always
    ports:
      - "3001:8080"
    environment:
      - WEBUI_SECRET_KEY=change-this-secret
      - OPENAI_API_BASE_URL=http://one-api:3000/v1
      - OPENAI_API_KEY=sk-from-one-api
      - OLLAMA_BASE_URL=http://host.docker.internal:11434
    volumes:
      - /mnt/d/AI-Pentest/docker_data/open-webui:/app/backend/data
    depends_on:
      - one-api
    extra_hosts:
      - "host.docker.internal:host-gateway"

  qdrant:
    image: qdrant/qdrant:latest
    container_name: qdrant
    restart: always
    ports:
      - "6333:6333"
      - "6334:6334"
    volumes:
      - /mnt/d/AI-Pentest/docker_data/qdrant:/qdrant/storage

  postgres:
    image: pgvector/pgvector:pg16
    container_name: pentest-postgres
    restart: always
    ports:
      - "5432:5432"
    environment:
      - POSTGRES_USER=pentest
      - POSTGRES_PASSWORD=change-this-password
      - POSTGRES_DB=pentest_kb
    volumes:
      - /mnt/d/AI-Pentest/docker_data/postgres:/var/lib/postgresql/data

启动:

docker compose up -d

查看:

docker ps

访问:

One API:     http://localhost:3000
Open WebUI:  http://localhost:3001
Qdrant:      http://localhost:6333/dashboard

7. One API 配置

7.1 登录 One API

默认:

账号: root
密码: 123456

登录后立刻改密码。


7.2 添加本地 Ollama 渠道

在 One API 中添加渠道:

类型: OpenAI 兼容 / Ollama
地址: http://host.docker.internal:11434/v1
API Key: ollama
模型:
  qwen2.5-coder:3b
  qwen2.5:7b

如果 One API 的 Ollama 类型不稳定,就用 OpenAI 兼容方式。


7.3 添加付费 API 渠道

例如 DeepSeek / Qwen / OpenAI-compatible:

渠道名: deepseek
Base URL: 对方 API 地址
API Key: 你的 key
模型: deepseek-chat / deepseek-reasoner 等

建议分组:

local      本地模型
cheap      低价模型
strong     强模型

7.4 创建访问令牌

在 One API 创建 Token:

名称: open-webui
额度: 先设小额度
模型权限: 允许 local / cheap / strong

复制 token,填入 Open WebUI 的 OPENAI_API_KEY

修改 compose 后重启:

docker compose down
docker compose up -d

8. Open WebUI 配置三个模式

进入:

http://localhost:3001

注册管理员账号。

创建三个自定义助手或三个系统提示词。


8.1 师傅模式 Prompt

你是我的渗透测试师傅。

目标:
1. 帮我提升渗透测试能力;
2. 不直接替我完成所有步骤;
3. 优先提示思路、排查路径、判断依据;
4. 指出我的错误、遗漏和风险;
5. 结合知识库给相似案例;
6. 记录我的薄弱点并生成训练计划。

规则:
- 默认不直接给最终 payload 或完整答案,除非我明确说“直接给答案”。
- 如果我提供扫描结果,你先分析可能方向,再给检查清单。
- 如果是真实项目,必须提醒我确认授权范围、控制风险。
- 不建议破坏性操作,不建议无授权测试。
- 输出结构:结论、思路、检查项、相似案例、我的遗漏、下一步训练。

8.2 助手模式 Prompt

你是我的渗透测试助手。

目标:
1. 直接提高我的工作效率;
2. 快速分析工具输出;
3. 快速整理漏洞报告;
4. 给出清晰验证步骤、证据要求和修复建议。

规则:
- 回答简洁直接。
- 优先输出可执行检查清单。
- 对真实项目,只允许在授权范围内讨论。
- 高风险动作必须标记“需人工确认”。
- 输出结构:结论、风险点、验证方法、证据、修复建议、报告草稿。

8.3 知识库模式 Prompt

你是我的安全知识库整理助手。

目标:
1. 整理公开漏洞案例、靶机复盘、项目经验;
2. 对多个来源进行交叉验证;
3. 区分事实、推测、冲突点和待验证点;
4. 形成结构化 Markdown 文档。

规则:
- 不要只总结,要提取证据。
- 同一漏洞多个来源必须做证据表。
- 标记影响版本、环境、利用条件、PoC 可靠性、修复方案。
- 给可信度评分。
- 输出结构:结论、证据表、一致点、冲突点、可复现条件、待验证点、整理文档。

9. 知识库交叉验证落地方案

9.1 安装 Python 环境

WSL:

cd /mnt/d/AI-Pentest/scripts

python3 -m venv venv
source venv/bin/activate

pip install requests beautifulsoup4 trafilatura markdownify pyyaml pydantic openai rich pandas

9.2 输入文件格式

创建:

D:\AI-Pentest\scripts\sources.yaml

示例:

topic: "某 CMS 文件上传漏洞"
vuln_id: "cms-upload-001"
sources:
  - title: "博客 A 分析"
    url: "https://example.com/a"
    type: "blog"
  - title: "博客 B 复现"
    url: "https://example.com/b"
    type: "blog"
  - title: "GitHub PoC"
    url: "https://github.com/example/poc"
    type: "poc"

9.3 知识库处理流程

sources.yaml
↓
fetch_sources.py
抓取网页正文
↓
extract_facts.py
提取结构化事实
↓
cross_validate.py
交叉验证
↓
generate_doc.py
生成 Markdown
↓
写入 kb/

9.4 事实抽取字段

每个来源抽取成:

{
  "source_title": "",
  "source_url": "",
  "vuln_name": "",
  "cve": "",
  "affected_product": "",
  "affected_version": "",
  "environment": "",
  "vuln_type": "",
  "root_cause": "",
  "precondition": "",
  "poc_summary": "",
  "exploitability": "",
  "impact": "",
  "fix": "",
  "evidence": [],
  "confidence": 0
}

9.5 最终 Markdown 模板

# 漏洞名称

## 1. 最终结论

- 可信度:
- 是否可复现:
- 影响产品:
- 影响版本:
- 漏洞类型:
- 利用条件:
- 风险等级:

## 2. 多来源证据表

| 来源 | 影响版本 | 环境 | PoC | 结论 | 可信度 |
|---|---|---|---|---|---|

## 3. 一致信息

## 4. 冲突信息

## 5. 可复现条件

## 6. 待验证点

## 7. 检测思路

## 8. 修复建议

## 9. 我的理解

## 10. 标签

#漏洞类型 #组件 #CVE #待复现

## 11. 来源

10. 最小版 Python 脚本

10.1 抓取正文 fetch_sources.py

import os
import yaml
import trafilatura
import requests

BASE = "/mnt/d/AI-Pentest"
RAW_DIR = f"{BASE}/raw_sources"

os.makedirs(RAW_DIR, exist_ok=True)

with open(f"{BASE}/scripts/sources.yaml", "r", encoding="utf-8") as f:
    cfg = yaml.safe_load(f)

for i, src in enumerate(cfg["sources"], 1):
    url = src["url"]
    print(f"[+] Fetching {url}")

    html = requests.get(url, timeout=20, headers={
        "User-Agent": "Mozilla/5.0"
    }).text

    text = trafilatura.extract(html) or ""

    filename = f"{cfg['vuln_id']}_{i}.md"
    path = os.path.join(RAW_DIR, filename)

    with open(path, "w", encoding="utf-8") as f:
        f.write(f"# {src['title']}\n\n")
        f.write(f"Source: {url}\n\n")
        f.write(text)

    print(f"[+] Saved {path}")

运行:

source /mnt/d/AI-Pentest/scripts/venv/bin/activate
python /mnt/d/AI-Pentest/scripts/fetch_sources.py

10.2 事实抽取和交叉验证

这一步建议调用 One API。

后续可以写脚本,但 MVP 阶段可以先手动:

  1. 把多个原文导入 Open WebUI;
  2. 选择“知识库模式”;
  3. 输入:
请对这些来源进行交叉验证,提取事实,生成证据表和最终 Markdown。

等流程稳定后,再脚本化。


11. Obsidian 使用方式

安装 Obsidian。

打开目录:

D:\AI-Pentest\kb

建议插件:

Dataview
Templater
Omnisearch
Advanced Tables
Excalidraw
Git

知识库目录:

kb\
├── 00_Index\
├── 01_Web漏洞\
├── 02_CVE\
├── 03_工具\
├── 04_靶机复盘\
├── 05_项目经验\
├── 06_报告模板\
├── 07_错题本\
└── 08_交叉验证文档\

12. 日志记录

每次 AI 使用记录成 Markdown。

目录:

D:\AI-Pentest\logs\

模板:

# AI 使用记录

- 时间:
- 模式:师傅 / 助手 / 知识库
- 主题:
- 使用模型:
- 输入材料:
- 输出结论:
- 是否采纳:
- 错误/遗漏:
- 后续动作:
- 是否入库:

这部分后续可以自动化。


13. 当前硬件运行建议

13.1 本地模型建议

优先:

qwen2.5-coder:3b

可测试:

qwen2.5:7b
llama3.1:8b
deepseek-r1:7b

但 7B/8B 在 6GB 显存下可能慢。


13.2 模型分工

本地模型:
- 简单摘要
- 标签分类
- 轻量问答
- 敏感资料初步处理

付费 API:
- 交叉验证
- 复杂推理
- 长文档分析
- 报告润色
- 教学方案

14. 第一阶段不要做的事

暂不做:

Dify 全量工作流
Strix 全自动渗透
真实项目自动执行命令
大规模爬虫
模型微调
重装系统
升级硬件

原因:

当前目标是跑通个人工作台,不是搭大型平台。

15. 最小落地清单

按这个顺序做:

1. 保留 Windows
2. 安装 WSL2 Ubuntu
3. 安装 Docker Desktop
4. 安装 Windows 版 Ollama
5. 拉 qwen2.5-coder:3b
6. Docker 部署 One API
7. Docker 部署 Open WebUI
8. Docker 部署 Qdrant
9. 配置 One API 接 Ollama 和付费 API
10. Open WebUI 建三个模式
11. Obsidian 打开 D:\AI-Pentest\kb
12. 写 sources.yaml
13. 跑 fetch_sources.py
14. 用知识库模式生成第一篇交叉验证文档
15. 用师傅模式复盘第一台靶机
16. 用助手模式整理第一份报告

16. 最终建议

现阶段最稳架构:

Open WebUI:交互入口
One API:模型网关
Ollama:本地轻量模型
付费 API:复杂分析
Obsidian:长期知识库
Python 脚本:爬取、整理、交叉验证
Qdrant:后续向量检索

你当前机器能跑。

先把这三个闭环跑通:

师傅模式:能教你
助手模式:能提效
知识库模式:能沉淀和交叉验证

跑通后,再考虑 Dify、Strix、自动化工具链和显卡升级。

动物装饰