
Utilizza ChatGPT API, Bard API e Llama2, Python-Nmap, DNS Recon, PCAP e moduli JWT recon e utilizza il modello GPT3 per creare report di vulnerabilità basati sui dati di scansione Nmap e informazioni di scansione DNS. Può anche eseguire l'enumerazione dei sottodomini in larga misura.
GVA è un toolkit di ricognizione e analisi delle vulnerabilità assistito dall'IA. Esegue la scansione (nmap, DNS, sottodomini, JWT, PCAP, GeoIP), poi passa l'output grezzo a un modello linguistico di grandi dimensioni che restituisce un'analisi strutturata e orientata al pentester. È fornito sia con un'interfaccia a riga di comando sia con una GUI desktop.
Il livello IA è indipendente dal provider: OpenAI, Anthropic Claude, Google Gemini e modelli Ollama locali sono tutti supportati. Scegline uno, oppure eseguine diversi contemporaneamente e lascia che un agente di deliberazione riconcili le loro analisi in un unico report.
pyproject.toml (gestite con uv) o requirements.txtnmap nel PATH per l'attacco nmaptshark nel PATH per l'attacco pcapL'attacco nmap invoca il binario nmap di sistema tramite python-nmap, quindi nmap
deve essere installato ed eseguibile.
sudo, oppure puoi passare --sudo. I profili 1–5 vengono eseguiti senza privilegi; il profilo 1
è quello predefinito e funziona senza root.libssh2.so.1: cannot open shared object file:
all'nmap di sistema manca una libreria condivisa. Se usi conda,
conda install -c conda-forge nmap è autosufficiente e ha la precedenza nel PATH.
Altrimenti installalo con rpm-ostree install libssh2 (poi riavvia), oppure usa
brew install nmap o un container distrobox.Se nmap è assente o non funzionante, l'attacco segnala un errore pulito invece di andare in crash.
Lo script di installazione configura i pacchetti di sistema, uv e le dipendenze Python. Eseguilo come utente normale; eleva solo il passaggio dei pacchetti di sistema con sudo.
./install.sh # full install
./install.sh --no-system # skip system packages (uv + Python deps only)
Rileva automaticamente il tuo gestore di pacchetti (apt, dnf, pacman, zypper, apk, brew o
rpm-ostree), installa uv a livello utente, esegue uv sync e crea .env. Non
eseguire prima sudo su: se il progetto si trova su un mount solo-utente (ad esempio /run/host o
/media), root non può leggerlo, quindi l'invocazione come utente normale è il percorso affidabile.
Per installare manualmente con uv:
uv sync
pip install -r requirements.txt funziona anch'esso come fallback.
Copia il file di ambiente di esempio e inserisci le chiavi per i provider che desideri. Qualsiasi provider senza chiave viene saltato automaticamente.
cp .env.example .env
GEOIP_API_KEY=
OPENAI_API_KEY=
ANTHROPIC_API_KEY=
GEMINI_API_KEY=
Ogni provider è un agente Pydantic AI che restituisce un risultato strutturato e validato. Selezionane più di uno e ciascun modello analizza la scansione in modo indipendente e concorrente; un agente di deliberazione (uno dei modelli selezionati) li riconcilia poi in un unico report consolidato. Una board di avanzamento in tempo reale mostra lo stato di ciascun modello, i tempi e la fase di deliberazione durante l'esecuzione.
| Provider | Chiave | Modello predefinito | Prezzo appross. / 1M token |
|---|---|---|---|
| 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 | locale / gratuito |
Sovrascrivi qualsiasi modello con la variabile *_MODEL corrispondente in .env. Vedi .env.example
per le alternative. Ollama usa un'immagine Docker locale e viene avviato automaticamente quando
selezionato.
Esegui con uv run gpt_vuln.py ..., oppure python gpt_vuln.py ... all'interno di un venv attivato.
# 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 avvia un'interfaccia guidata che richiede il target, le opzioni e i provider
IA per ciascun attacco.
┏━━━━━━━━━┳━━━━━━━━━━━━━━━━┓
┃ 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 │
└─────────┴────────────────┘
I profili 1–5 vengono eseguiti senza privilegi (scansioni TCP connect, senza root). Il profilo 1 è quello predefinito.
I profili 6–10 usano flag SYN/UDP/OS-detection che richiedono root; GVA eleva solo il
passo nmap con sudo quando ne scegli uno. Esegui python gpt_vuln.py --list_profiles per
vedere questa tabella nel tuo terminale.