
Usa la API de ChatGPT, la API de Bard y Llama2, Python-Nmap, DNS Recon, módulos de reconocimiento de PCAP y JWT, y utiliza el modelo GPT3 para crear informes de vulnerabilidades basados en datos de escaneo de Nmap e información de escaneo de DNS. También puede realizar enumeración de subdominios en gran medida.
GVA es un conjunto de herramientas de reconocimiento y análisis de vulnerabilidades asistido por IA. Ejecuta el escaneo (nmap, DNS, subdominios, JWT, PCAP, GeoIP) y luego entrega la salida sin procesar a un modelo de lenguaje grande que devuelve un análisis estructurado orientado a pentesters. Se distribuye con una interfaz de línea de comandos y una GUI de escritorio.
La capa de IA es agnóstica al proveedor: OpenAI, Anthropic Claude, Google Gemini y modelos locales de Ollama son compatibles. Elige uno, o ejecuta varios a la vez y deja que un agente de deliberación reconcilie sus análisis en un único informe.
pyproject.toml (gestionadas con uv) o requirements.txtnmap en el PATH para el ataque nmaptshark en el PATH para el ataque pcapEl ataque nmap invoca el binario nmap del sistema a través de python-nmap, por lo que nmap
debe estar instalado y ser ejecutable.
sudo, o puedes pasar --sudo. Los perfiles 1–5 se ejecutan sin privilegios; el perfil 1
es el predeterminado y funciona sin root.libssh2.so.1: cannot open shared object file:
al nmap del sistema le falta una biblioteca compartida. Si usas conda,
conda install -c conda-forge nmap es autocontenido y tiene precedencia en el PATH.
De lo contrario, instálalo con rpm-ostree install libssh2 (luego reinicia), o usa
brew install nmap o un contenedor distrobox.Si nmap falta o está roto, el ataque informa un error limpio en lugar de fallar.
El script de instalación configura los paquetes del sistema, uv y las dependencias de Python. Ejecútalo como tu usuario normal; solo eleva el paso de paquetes del sistema con sudo.
./install.sh # full install
./install.sh --no-system # skip system packages (uv + Python deps only)
Detecta automáticamente tu gestor de paquetes (apt, dnf, pacman, zypper, apk, brew o
rpm-ostree), instala uv a nivel de usuario, ejecuta uv sync y crea .env. No hagas
sudo su primero: si el proyecto está en un montaje solo para usuario (por ejemplo /run/host o
/media), root no puede leerlo, así que la invocación como usuario normal es la ruta fiable.
Para instalar manualmente con uv:
uv sync
pip install -r requirements.txt también funciona como alternativa.
Copia el archivo de entorno de ejemplo y completa las claves de los proveedores que quieras. Cualquier proveedor sin clave se omite automáticamente.
cp .env.example .env
GEOIP_API_KEY=
OPENAI_API_KEY=
ANTHROPIC_API_KEY=
GEMINI_API_KEY=
Cada proveedor es un agente de Pydantic AI que devuelve un resultado validado y estructurado. Selecciona más de uno y cada modelo analiza el escaneo de forma independiente y concurrente; un agente de deliberación (uno de los modelos seleccionados) los reconcilia después en un único informe consolidado. Un panel de progreso en vivo muestra el estado de cada modelo, los tiempos y el paso de deliberación mientras se ejecuta.
| Proveedor | Clave | Modelo predeterminado | Precio aprox. / 1M tokens |
|---|---|---|---|
| OpenAI | openai | gpt-5.6-luna | $0.20 in / $1.20 out |
| Anthropic | claude | claude-haiku-4-5 | $1.00 in / $5.00 out |
gemini | gemini-3.6-flash | $0.75 in / $3.75 out | |
| Ollama | ollama | llama3 | local / gratis |
Sobrescribe cualquier modelo con la variable *_MODEL correspondiente en .env. Consulta .env.example
para ver alternativas. Ollama usa una imagen Docker local y se inicia automáticamente cuando
se selecciona.
Ejecuta con uv run gpt_vuln.py ..., o python gpt_vuln.py ... dentro de un venv activado.
# Help
uv run gpt_vuln.py --help
uv run gpt_vuln.py --rich_menu help
# Nmap scan (default profile 1), analysed by OpenAI
python gpt_vuln.py --target scanme.nmap.org --attack nmap --ai openai
# Choose a scan profile (see the profile table below, or --list_profiles)
python gpt_vuln.py --target scanme.nmap.org --attack nmap --profile 2
python gpt_vuln.py --list_profiles
# DNS recon (no profile needed)
python gpt_vuln.py --target example.com --attack dns
# Subdomain enumeration (default or custom wordlist)
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 lookup
python gpt_vuln.py --target 8.8.8.8 --attack geo
# JWT analysis
python gpt_vuln.py --target <token> --attack jwt
# PCAP analysis
python gpt_vuln.py --target capture.pcap --attack pcap --output outputs/output.json
# Several providers: each analyses independently, then one consolidated report
python gpt_vuln.py --target example.com --attack dns --ai openai,claude,gemini
# Choose which model deliberates, and also show each model's own analysis
python gpt_vuln.py --target example.com --attack dns --ai all --summarizer claude --show_individual
# Password cracking
python gpt_vuln.py --password_hash <hash> --wordlist_file words.txt --algorithm md5 --parallel
# Interactive step-by-step menu
python gpt_vuln.py --menu
--menu lanza una interfaz guiada que solicita el objetivo, las opciones y los proveedores
de IA para cada ataque.
┏━━━━━━━━━┳━━━━━━━━━━━━━━━━┓
┃ 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 │
└─────────┴────────────────┘
Los perfiles 1–5 se ejecutan sin privilegios (escaneos TCP connect, sin root). El perfil 1 es el predeterminado.
Los perfiles 6–10 usan flags SYN/UDP/detección de SO que necesitan root; GVA escala solo el
paso de nmap con sudo cuando eliges uno. Ejecuta python gpt_vuln.py --list_profiles para
ver esta tabla en tu terminal.