
Utilise les API ChatGPT, Bard API et Llama2, Python-Nmap, DNS Recon, PCAP et modules JWT recon et utilise le modèle GPT3 pour créer des rapports de vulnérabilités basés sur les données de scan Nmap et les informations de scan DNS. Il peut également effectuer une énumération de sous-domaines dans une large mesure.
GVA est une boîte à outils d'analyse de vulnérabilités et de reconnaissance assistée par IA. Il exécute le scan (nmap, DNS, sous-domaines, JWT, PCAP, GeoIP), puis transmet la sortie brute à un grand modèle de langage qui renvoie une analyse structurée, orientée pentester. Il est livré avec à la fois une interface en ligne de commande et une interface graphique de bureau.
La couche IA est agnostique vis-à-vis du fournisseur : OpenAI, Anthropic Claude, Google Gemini et les modèles Ollama locaux sont tous pris en charge. Choisissez-en un, ou exécutez-en plusieurs à la fois et laissez un agent de délibération réconcilier leurs analyses en un seul rapport.
pyproject.toml (gérées avec uv) ou requirements.txtnmap dans le PATH pour l'attaque nmaptshark dans le PATH pour l'attaque pcapL'attaque nmap appelle le binaire système nmap via python-nmap, donc nmap
doit être installé et exécutable.
sudo, ou vous pouvez passer --sudo. Les profils 1 à 5 s'exécutent sans privilèges ; le profil 1
est celui par défaut et fonctionne sans root.libssh2.so.1: cannot open shared object file :
le nmap système manque d'une bibliothèque partagée. Si vous utilisez conda,
conda install -c conda-forge nmap est autonome et prend la priorité dans le PATH.
Sinon, installez-le avec rpm-ostree install libssh2 (puis redémarrez), ou utilisez
brew install nmap ou un conteneur distrobox.Si nmap est absent ou cassé, l'attaque signale une erreur propre au lieu de planter.
Le script d'installation configure les paquets système, uv et les dépendances Python. Exécutez-le en tant qu'utilisateur normal ; il n'élève que l'étape des paquets système avec sudo.
./install.sh # full install
./install.sh --no-system # skip system packages (uv + Python deps only)
Il détecte automatiquement votre gestionnaire de paquets (apt, dnf, pacman, zypper, apk, brew ou
rpm-ostree), installe uv au niveau utilisateur, exécute uv sync et crée .env. Ne faites pas
sudo su d'abord : si le projet se trouve sur un montage réservé à l'utilisateur (par exemple /run/host ou
/media), root ne peut pas le lire, donc l'invocation en tant qu'utilisateur normal est la voie fiable.
Pour installer manuellement avec uv :
uv sync
pip install -r requirements.txt fonctionne également comme solution de repli.
Copiez le fichier d'environnement d'exemple et renseignez les clés des fournisseurs que vous souhaitez. Tout fournisseur sans clé est ignoré automatiquement.
cp .env.example .env
GEOIP_API_KEY=
OPENAI_API_KEY=
ANTHROPIC_API_KEY=
GEMINI_API_KEY=
Chaque fournisseur est un agent Pydantic AI qui renvoie un résultat validé et structuré. Sélectionnez-en plusieurs et chaque modèle analyse le scan indépendamment et simultanément ; un agent de délibération (l'un des modèles sélectionnés) les réconcilie ensuite en un seul rapport consolidé. Un tableau de progression en direct affiche l'état de chaque modèle, son temps d'exécution et l'étape de délibération pendant son déroulement.
| Fournisseur | Clé | Modèle par défaut | Prix approx. / 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 / free |
Remplacez n'importe quel modèle avec la variable *_MODEL correspondante dans .env. Voir .env.example
pour les alternatives. Ollama utilise une image Docker locale et est démarré automatiquement lorsqu'il est
sélectionné.
Exécutez avec uv run gpt_vuln.py ..., ou python gpt_vuln.py ... dans un venv activé.
# 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 lance une interface guidée qui demande la cible, les options et les fournisseurs
d'IA pour chaque attaque.
┏━━━━━━━━━┳━━━━━━━━━━━━━━━━┓
┃ 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 │
└─────────┴────────────────┘
Les profils 1 à 5 s'exécutent sans privilèges (scans TCP connect, sans root). Le profil 1 est celui par défaut.
Les profils 6 à 10 utilisent des options SYN/UDP/détection d'OS qui nécessitent root ; GVA n'élève que l'étape
nmap avec sudo lorsque vous en choisissez un. Exécutez python gpt_vuln.py --list_profiles pour
voir ce tableau dans votre terminal.