使用 ChatGPT API、Bard API 和 Llama2,集成 Python-Nmap、DNS 侦察、PCAP 和 JWT 侦察模块,并基于 GPT3 模型根据 Nmap 扫描数据和 DNS 扫描信息生成漏洞报告。它还能进行大规模的子域名枚举。
GVA 是一个 AI 辅助的侦察与漏洞分析工具包。它执行扫描(nmap、DNS、子域名、JWT、PCAP、GeoIP),然后将原始输出交给大型语言模型,返回结构化的、面向渗透测试人员的分析结果。它同时提供命令行界面和桌面 GUI。
AI 层与提供商无关:支持 OpenAI、Anthropic Claude、Google Gemini 以及本地 Ollama 模型。可以选择其中一个,或同时运行多个,让审议代理将它们的分析整合为一份报告。
pyproject.toml 的依赖项(使用 uv 管理)或 requirements.txtPATH 中有 nmapPATH 中有 Wireshark / tsharknmap 攻击通过 python-nmap 调用系统 nmap 二进制文件,因此必须安装 nmap 且可运行。
sudo 提权,或者你可以传入 --sudo。配置文件 1–5 以非特权方式运行;配置文件 1 是默认值,无需 root 即可工作。libssh2.so.1: cannot open shared object file:
系统 nmap 缺少一个共享库。如果你使用 conda,
conda install -c conda-forge nmap 是自包含的,并且优先于 PATH。
否则使用 rpm-ostree install libssh2 将其分层安装(然后重启),或使用
brew install nmap 或 distrobox 容器。如果 nmap 缺失或损坏,该攻击会报告一个清晰的错误,而不是崩溃。
安装脚本会设置系统软件包、uv 和 Python 依赖项。以你的普通用户身份运行它;它仅对系统软件包步骤使用 sudo 提权。
./install.sh # 完整安装
./install.sh --no-system # 跳过系统软件包(仅 uv + Python 依赖)
它会自动检测你的包管理器(apt、dnf、pacman、zypper、apk、brew 或
rpm-ostree),在用户级别安装 uv,运行 uv sync,并创建 .env。不要
先执行 sudo su:如果项目位于仅用户可访问的挂载点上(例如 /run/host 或
/media),root 无法读取它,因此以普通用户身份调用才是可靠的路径。
使用 uv 手动安装:
uv sync
pip install -r requirements.txt 也可作为备选方案。
复制示例环境文件,并填入你想要的提供商的密钥。任何没有密钥的 提供商都会被自动跳过。
cp .env.example .env
GEOIP_API_KEY=
OPENAI_API_KEY=
ANTHROPIC_API_KEY=
GEMINI_API_KEY=
每个提供商都是一个 Pydantic AI 代理,返回经过验证的结构化结果。 选择多个时,每个模型会独立且并发地分析扫描结果; 然后一个审议代理(所选模型之一)将它们整合为一份 统一的报告。实时进度面板会显示每个模型的状态、耗时以及 运行时的审议步骤。
| 提供商 | 密钥 | 默认模型 | 约价格 / 100 万 tokens |
|---|---|---|---|
| OpenAI | openai | gpt-5.6-luna | $0.20 输入 / $1.20 输出 |
| Anthropic | claude | claude-haiku-4-5 | $1.00 输入 / $5.00 输出 |
gemini | gemini-3.6-flash | $0.75 输入 / $3.75 输出 | |
| Ollama | ollama | llama3 | 本地 / 免费 |
使用 .env 中对应的 *_MODEL 变量覆盖任何模型。备选方案请参见 .env.example。
Ollama 使用本地 Docker 镜像,并在被选中时自动启动。
使用 uv run gpt_vuln.py ... 运行,或在已激活的 venv 中运行 python gpt_vuln.py ...。
# 帮助
uv run gpt_vuln.py --help
uv run gpt_vuln.py --rich_menu help
# Nmap 扫描(默认配置文件 1),由 OpenAI 分析
python gpt_vuln.py --target scanme.nmap.org --attack nmap --ai openai
# 选择扫描配置文件(参见下方配置文件表,或 --list_profiles)
python gpt_vuln.py --target scanme.nmap.org --attack nmap --profile 2
python gpt_vuln.py --list_profiles
# DNS 侦察(无需配置文件)
python gpt_vuln.py --target example.com --attack dns
# 子域名枚举(默认或自定义字典)
python gpt_vuln.py --target example.com --attack sub
python gpt_vuln.py --target example.com --attack sub --sub_list path/to/list.txt
# GeoIP 查询
python gpt_vuln.py --target 8.8.8.8 --attack geo
# JWT 分析
python gpt_vuln.py --target <token> --attack jwt
# PCAP 分析
python gpt_vuln.py --target capture.pcap --attack pcap --output outputs/output.json
# 多个提供商:各自独立分析,然后生成一份统一报告
python gpt_vuln.py --target example.com --attack dns --ai openai,claude,gemini
# 选择哪个模型进行审议,并同时显示每个模型自己的分析
python gpt_vuln.py --target example.com --attack dns --ai all --summarizer claude --show_individual
# 密码破解
python gpt_vuln.py --password_hash <hash> --wordlist_file words.txt --algorithm md5 --parallel
# 交互式分步菜单
python gpt_vuln.py --menu
--menu 启动一个引导式界面,会提示输入目标、选项以及每次攻击的 AI
提供商。
┏━━━━━━━━━┳━━━━━━━━━━━━━━━━┓
┃ Option ┃ Action ┃
┡━━━━━━━━━╇━━━━━━━━━━━━━━━━┩
│ 1 │ Nmap scan │
│ 2 │ DNS recon │
│ 3 │ Subdomain enum │
│ 4 │ GeoIP lookup │
│ 5 │ JWT analysis │
│ 6 │ PCAP analysis │
│ 7 │ Hash cracker │
│ q │ Quit │
└─────────┴────────────────┘
配置文件 1–5 以非特权方式运行(TCP connect 扫描,无需 root)。配置文件 1 是默认值。
配置文件 6–10 使用需要 root 的 SYN/UDP/OS 检测标志;当你选择其中一个时,GVA 仅对
nmap 步骤使用 sudo 提权。运行 python gpt_vuln.py --list_profiles 可在终端中
查看此表。
| # | 名称 | Root | 功能说明 | Nmap 命令 |
|---|---|---|---|---|
| 1 | Quick | no | 前 100 个 TCP 端口及服务版本(快速初步排查)。 | -Pn -sT -sV -T4 --top-ports 100 |
| 2 | Standard | no | 前 1000 个端口及版本和默认 NSE 脚本。 | -Pn -sT -sV -sC -T4 --top-ports 1000 |
| 3 | Full TCP | no | 所有 TCP 端口(1–65535)及版本。 | -Pn -sT -sV -p- -T4 |
| 4 | Web services | no | 针对常见 Web 端口的 HTTP/S 聚焦扫描。 | -Pn -sT -sV -T4 -p 80,443,8080,8443,8000,8888,3000,5000 --script=http-title,http-headers,... |
| 5 | Vulnerability | no | 针对带版本服务的 NSE 漏洞脚本。 | -Pn -sT -sV -T4 --script=vuln |
| 6 | Stealth SYN | yes | 对前 1000 个端口的半开放 SYN 扫描。 | -Pn -sS -sV -T4 --top-ports 1000 |
| 7 | OS & service | yes | 带操作系统指纹识别和服务检测的 SYN 扫描。 | -Pn -sS -sV -O -T4 |
| 8 | Aggressive | yes | 操作系统、版本、默认脚本和路由追踪。 | -Pn -A -T4 |
| 9 | UDP top | yes | 前 50 个 UDP 服务(DNS、SNMP、NTP 等)。 | -Pn -sU -sV -T4 --top-ports 50 |
| 10 | Deep audit | yes | 带操作系统检测和漏洞脚本的全端口 SYN 扫描。 | -Pn -sS -sV -O -p- -T4 --script=default,vuln |
配置文件决定 nmap 参数。nmap 运行后,从扫描结果中提取开放端口数据,并将该数据 交给 AI 引擎进行分析。如果扫描完成但未发现开放端口,GVA 会明确说明,而不是返回空白 分析,因此空结果绝不会看起来像静默失败。
桌面 GUI 使用 customtkinter 构建。
uv run python GVA_gui.py
从左侧边栏选择扫描类型,填入目标,然后运行。每个扫描只显示它需要的 字段:
all)。侧边栏还列出了 AI 提供商及其状态点,因此你可以一眼看出 哪些密钥已配置。扫描在后台线程上运行,因此窗口保持 响应,结果渲染到控制台风格的面板中,带有 Copy 和 Clear 按钮。 状态栏报告进度和任何错误。