
Harness de pentest piloté par IA avec des modes boîte noire, boîte blanche, boîte grise, hôte/cloud et red team LLM ; valide les constats par vote inter-modèles et preuves d'exécution des outils.
Harnais autonome de tests d'intrusion multi-modèles — Rust, CLI uniquement.
par Joas A Santos & Red Team Leaders
⭐ Si cet outil vous est utile, mettez une étoile au dépôt — cela aide beaucoup.
📖 Nouveau ici ? Lisez le tutoriel complet et le guide de l'utilisateur → — chaque mode, option, configuration et exemple y est expliqué.
🆕 Nouveautés de la v3.6.5 — red-teaming LLM : jailbreaks et injections de prompt dans tous les scénarios : +12 agents IA (→ 30, 429 au total) qui red-teament de manière adversarial un système d'IA en conditions réelles, comme le font les outils de type hackagent.dev — techniques de jailbreak (AdvPrefix, PAIR, TAP, Crescendo, many-shot, persona/DAN, encodage/obfuscation, suppression de refus) et scénarios d'injection de prompt (directe, indirecte via RAG/web/e-mail/sortie d'outil, détournement d'objectif, abus d'outils/appels de fonction, exfiltration du prompt système). Chacun exécute une boucle attaquant→juge LLM — capture du refus de base, application de la technique sur des variantes, évaluation du vrai contournement de la barrière de sécurité — avec preuve via un reçu bénin et expurgé.
neurosploit aitest <ai-url>. Également : enregistrement de compte de test en self-service — analyse les formulaires de l'application et crée un compte bénin (curl ou Playwright) pour atteindre la surface authentifiée, avec une garde-fou anti-inondation stricte (≤2 comptes), un coffre d'identifiants par exécution (vault.json, secrets masqués dans le rapport), une section de nettoyage « supprimer ces comptes », des résultats étiquetés authentifiés / non authentifiés, et une e-mail jetable sur option (/tempmail, mail.tm gratuit). Validateur humain dans la boucle : les résultats incertains sont désormais marquésneeds-review, non supprimés (seul le bruit sans aucun support est écarté), afin qu'un humain prenne la décision finale. Rapports en Markdown + JSON en plus du PDF/HTML. Agents plus affûtés sur les applications SPA/REST modernes (méthodologie de chasse aux API de classe Juice-Shop) et pour le façonnage des récompenses. Nouveaux modèles : , , (Moonshot → 15 fournisseurs). Historique complet dans .
NeuroSploit transforme une URL, un dépôt source, une application en cours d'exécution ou un hôte/IP en
un engagement de sécurité autonome. Un harnais Rust (tokio) pilote un pool de
LLM — via clé API ou abonnement local (Claude Code / Codex / Gemini /
Grok) — reconstitue la cible, sélectionne intelligemment uniquement les agents qui correspondent à la
surface découverte, les exécute en parallèle, chaîne les résultats en
impact plus profond, et valide chaque assertion par vote inter-modèles + ancrage
par reçu d'outil avant de rapporter. Il livre 430 agents markdown et une TUI
Mission Control.
may_assert est une règle mathématique anti-hallucination (ne pas prétendre l'exploitabilité
tant que la croyance est diffuse).fichier:ligne dans la source examinée — une citation de code est le reçu) pour
les audits SAST et de compétences en boîte blanche, et l'un ou l'autre pour la boîte grise ; les assertions
non ancrées sont rétrogradées.aws/gcloud/az). Connectez-vous via creds.yaml : clés AWS, JSON de compte de service Google
ou principal de service Azure — voir .Il s'agit de la distribution légère, uniquement Rust (
neurosploit-rs/+agents_md/). L'ancien moteur Python et les interfaces graphiques web vivent sur la branchev3.4.0plus ancienne.
Linux / macOS (x64 et arm64) :```bash curl -fsSL https://raw.githubusercontent.com/JoasASantos/NeuroSploit/main/setup.sh | bash
**Windows** (PowerShell, x64 & arm64):```powershell
irm https://raw.githubusercontent.com/JoasASantos/NeuroSploit/main/install.ps1 | iex
| OS | x64 | arm64 |
|---|---|---|
| Linux (Kali recommandé) | ✅ | ✅ |
| macOS |
Rust pur + stdlib, donc il se compile nativement partout où une toolchain Rust stable s'exécute.
L'installateur détecte automatiquement l'OS/architecture et installe Rust s'il est manquant. Sur Windows natif,
utilisez install.ps1 ; sous WSL2 / Git Bash, la commande unique setup.sh fonctionne également.
L'installateur installe automatiquement Rust si nécessaire, clone le dépôt dans ~/.neurosploit,
compile le binaire de release, et lie neurosploit dans ~/.local/bin. Relancez-le
à tout moment pour mettre à jour. Ajustez avec les variables d'environnement : NEUROSPLOIT_REF (branche/tag),
NEUROSPLOIT_DIR, PREFIX.
Vous préférez compiler à la main ?```bash git clone https://github.com/JoasASantos/NeuroSploit && cd NeuroSploit/neurosploit-rs cargo build --release # → target/release/neurosploit
## ⚡ Démarrage rapide (60 secondes)```bash
# easiest path — just run it; the interactive session asks everything:
neurosploit
# or one-liner (subscription login, no API key needed):
neurosploit run http://testphp.vulnweb.com/ --subscription --model anthropic:claude-opus-4-8 -v
# white-box — review a source repository (SAST agents, file:line evidence):
git clone https://github.com/digininja/DVWA /tmp/DVWA
neurosploit whitebox /tmp/DVWA --subscription --model anthropic:claude-opus-4-8 -v
# grey-box — review the code AND exploit the running app together:
neurosploit greybox /tmp/DVWA --url http://localhost:8080/ --creds creds.yaml \
--subscription --model anthropic:claude-opus-4-8 --mcp -v
# host / infra — Linux / Windows / Active Directory (SSH/Win creds in creds.yaml):
neurosploit host 10.0.0.10 --creds creds.yaml --subscription --model anthropic:claude-opus-4-8 -v
# 🛰 Mission Control TUI — live panels (header/feed/findings/targets) + a composer
# you can type in WHILE the run streams (summary · pause · errors · notes):
neurosploit tui http://testphp.vulnweb.com/ --subscription --model anthropic:claude-opus-4-8 --mcp
Le guide pas à pas complet pour chaque mode (black/white/grey/host) se trouve dans TUTORIAL.md.
Pas de connexion ? Utilisez une clé API à la place — voir Authentification.
Intégrez NeuroSploit dans votre SDLC. Basculez depuis le REPL (/integrations) ou la CLI
(neurosploit integrations enable github|gitlab|jira). Les tokens ne sont jamais stockés
— seul le nom de la variable d'environnement est enregistré ; la valeur est lue depuis votre environnement.```bash
export GITHUB_TOKEN=ghp_... # PAT with repo scope (private repos)
neurosploit integrations enable github
neurosploit pr digininja/DVWA 42 --subscription --model anthropic:claude-opus-4-8 --comment
neurosploit watch myorg/private-app --branch main --subscription --model anthropic:claude-opus-4-8
export GITLAB_TOKEN=glpat-... ; neurosploit integrations enable gitlab neurosploit whitebox https://gitlab.com/myorg/private-svc --subscription --model anthropic:claude-opus-4-8
export JIRA_EMAIL=[email protected] JIRA_API_TOKEN=... # set base/project once: /integrations setup jira neurosploit whitebox https://github.com/myorg/app --jira --subscription --model anthropic:claude-opus-4-8
| Intégration | Ce que vous obtenez | Variables d'environnement |
|-------------|--------------|----------|
| **GitHub** | clone privé · `pr` revue + commentaire · `watch` branche | `GITHUB_TOKEN` |
| **GitLab** | clone privé pour whitebox/greybox | `GITLAB_TOKEN` |
| **Jira** | une carte par constat (`--jira`) | `JIRA_EMAIL`, `JIRA_API_TOKEN` |
📖 Guide d'installation étape par étape pour chaque outil : **[TUTORIAL-INTEGRATION.md](https://github.com/joasasantos/neurosploit/blob/HEAD/TUTORIAL-INTEGRATION.md)**.
---
## ☁️ Identifiants cloud (AWS/GCP/Azure)
Ajoutez un bloc cloud à `creds.yaml` et le harnais exporte les bonnes variables d'environnement afin que les agents AWS/GCP/Azure puissent piloter `aws` / `gcloud` / `az`. Les secrets restent dans votre fichier/gestionnaire de secrets ; les agents effectuent d'abord une **énumération en lecture seule, jamais destructive**.```yaml
# --- AWS: static keys (or a named profile) ---
aws:
access_key_id: AKIA...
secret_access_key: ...
# session_token: ... # if using temporary creds
region: us-east-1
# profile: my-sso-profile # alternative to keys
# --- GCP: service-account JSON (path recommended; inline single-line also works) ---
gcp:
service_account_json: /path/to/sa.json
project: my-project-id
# --- Azure: service principal (recommended for automation) ---
azure:
tenant_id: ...
client_id: ...
client_secret: ...
subscription_id: ...
The input chunk is empty — there is no source content to translate. Please provide the chunk text so I can translate it into French.```bash
neurosploit host my-cloud-account --creds creds.yaml
--subscription --model anthropic:claude-opus-4-8 -v
Les agents couvrent l’élévation de privilèges IAM, l’exposition du stockage (S3/GCS/Blob), l’exposition du calcul et du réseau, les secrets (Secrets Manager / Secret Manager / Key Vault), l’abus de compte de service / SPN et l’énumération des identités (Entra ID). Authentification recommandée : clés d’accès ou profil **AWS** ; pour **GCP**, un fichier JSON de compte de service (`GOOGLE_APPLICATION_CREDENTIALS`) ; pour **Azure**, un principal de service (`az login --service-principal`).
---
## 👥 Identités multiples — tests de contrôle d’accès (IDOR / BOLA / BFLA)
Donnez à NeuroSploit deux rôles **nommés** ou plus dans `creds.yaml` et il s’authentifiera
sous chacun d’eux et testera les accès **inter-rôles** (un rôle à faibles privilèges accédant à l’objet d’un autre utilisateur ou à une fonction d’administration constitue une découverte) :```yaml
admin:
jwt: eyJ... # per role: jwt | header (raw) | cookie | apikey | login+username+password
user:
apikey: abc123 # → X-Api-Key: abc123
victim:
cookie: "session=deadbeef"
I'm ready to translate chunk 17 of 33, but the input content appears to be empty. Please provide the chunk text so I can translate it from English to French.```bash
neurosploit run https://app.example --creds creds.yaml
--subscription --model anthropic:claude-opus-4-8 -v
Chaque constat est prouvé avec la paire de requêtes **autorisées vs non autorisées**, sous
le garde-fou de protection des données (lecture seule, PII masquées).
## 🏷️ Identification et attribution (anti-plagiat)
Chaque requête est étiquetée avec un **User-Agent** d'identification (par défaut
`NeuroSploit/<ver> …`, modifiable avec **`/ua`** ou `NEUROSPLOIT_UA`) plus un
en-tête `X-NeuroSploit-Scan`, et chaque constat est **estampillé** « Identifié et
validé par NeuroSploit » — ainsi la provenance voyage dans le trafic, le texte du
constat, `findings.json` et le pied de page du rapport.
---
## Compilation```bash
cd neurosploit-rs
cargo build --release # → target/release/neurosploit
Requiert une toolchain Rust (rustup). Recommandé : exécuter sur Kali Linux (ou l'image
Docker Kali) afin que les outils offensifs utilisés par les agents soient déjà présents :```bash
docker run -it --rm kalilinux/kali-rolling
apt update && apt install -y curl nmap ffuf nodejs npm
Les agents se dégradent élégamment : si `rustscan` n'est pas installé, ils utilisent `nmap` ; si
aucun des deux, ils sondent avec `curl`. Si un navigateur Playwright MCP est disponible, ils l'utilisent
pour les pages riches en JS, sinon ils retombent sur `curl`.
---
## Utilisation
Exécutez **sans arguments** pour un assistant interactif :```bash
./target/release/neurosploit
Ou pilotez-le directement :```bash
./target/release/neurosploit run http://testphp.vulnweb.com/
--subscription --model anthropic:claude-opus-4-8 --mcp -v
./target/release/neurosploit run http://testphp.vulnweb.com/
--model anthropic:claude-opus-4-8 --model openai:gpt-5.1 --vote-n 3
git clone https://github.com/digininja/DVWA /tmp/DVWA
./target/release/neurosploit whitebox /tmp/DVWA
--subscription --model anthropic:claude-opus-4-8 -v
./target/release/neurosploit run http://testphp.vulnweb.com/ --offline
./target/release/neurosploit agents # library counts ./target/release/neurosploit models # providers & models ./target/release/neurosploit --help # full help with examples
### Options (`run` / `whitebox`)
| Option | Signification |
|------|---------|
| `--model provider:model` | Répétable. La première est la principale ; les autres servent de secours **et** forment le jury de vote. |
| `--subscription` | Utilise la connexion CLI locale (Claude/Codex/Gemini/Grok) au lieu d'une clé API. |
| `--mcp` | Active Playwright MCP (approvisionné automatiquement via `npx` ; les backends sans MCP utilisent les outils intégrés). |
| `--vote-n N` | Nombre de modèles qui doivent s'accorder pour valider un résultat (défaut 3 / 2 pour whitebox). |
| `--max-agents N` | Limite le nombre d'agents exécutés (`0` = tous ceux correspondant à la reconnaissance). |
| `--offline` | Exécute le pipeline complet sans appeler aucun modèle. |
| `-v, --verbose` | Journalise chaque agent lors de son lancement, de sa reconnaissance et de son vote. |
### Authentification — exécution via clé API *ou* abonnement
Vous pouvez exécuter NeuroSploit de deux manières. Elles sont indépendantes : choisissez à chaque exécution.
#### 1) Via l'API (clé API du fournisseur)
Exportez la ou les clés des fournisseurs de votre panneau de modèles, puis exécutez **sans**
`--subscription`. Tout fournisseur compatible OpenAI fonctionne.```bash
# pick one or more, depending on the models you select
export ANTHROPIC_API_KEY=sk-ant-... # anthropic:claude-*
export OPENAI_API_KEY=sk-... # openai:gpt-*
export GEMINI_API_KEY=AIza... # gemini:gemini-*
export XAI_API_KEY=xai-... # xai:grok-*
export NVIDIA_NIM_API_KEY=nvapi-... # nvidia_nim:*
export DEEPSEEK_API_KEY=... # deepseek:*
export MISTRAL_API_KEY=... # mistral:*
export DASHSCOPE_API_KEY=... # qwen:* (Alibaba DashScope)
export GROQ_API_KEY=... # groq:*
export TOGETHER_API_KEY=... # together:*
export MOONSHOT_API_KEY=... # moonshot:* (Kimi K3/K2)
export OPENROUTER_API_KEY=... # openrouter:*
# ollama needs no key (local)
# then run via API (note: NO --subscription)
./target/release/neurosploit run http://testphp.vulnweb.com/ \
--model anthropic:claude-opus-4-8 --vote-n 3 -v
# multi-provider voting panel via API (1st finds, the others adjudicate)
./target/release/neurosploit run http://testphp.vulnweb.com/ \
--model anthropic:claude-opus-4-8 --model openai:gpt-5.1 --model gemini:gemini-2.5-pro
Ou placez les clés dans un .env et sourcez-le (cp .env.example .env; éditez; set -a; . ./.env; set +a).
Fournisseur → variable d'env. → endpoint (tous compatibles OpenAI) :
Exécutez ./target/release/neurosploit models pour obtenir la liste complète des fournisseurs/modèles.
--subscription pilote votre connexion à l'agentic-CLI local au lieu d'une clé API — installez et connectez-vous d'abord à l'un de ces CLIs :
--subscription --model anthropic:claude-opus-4-8 --mcp -v
---
## Comment ça marche```
target ─▶ recon (curl/nmap/…) ─▶ INTELLIGENT agent selection (recon-aware)
─▶ parallel exploitation ─▶ cross-model validation vote
─▶ severity/score ─▶ report (HTML + Typst PDF) ─▶ RL reward update
Chaque exécution écrit un dossier autonome runs/ns-<ts>-<target>/:
Un référentiel de récompenses d'apprentissage par renforcement (data/rl_state_rs.json) oriente la sélection des agents lors des futures exécutions.
agents_md/ (303)Chaque agent est un playbook Markdown autonome (méthodologie ## User Prompt + règles strictes anti-faux positifs ## System Prompt). Déposez un nouveau .md dans le dossier correspondant et le harnais le prend en charge.
Pour des tests autorisés uniquement. Les agents sont invités à rester dans le périmètre, à ne jamais exécuter d'actions destructrices/DoS et à exiger une preuve d'exploitation. Vous êtes responsable d'obtenir l'autorisation pour toute cible.
Joas A Santos & Red Team Leaders.
MIT.
| Mode | Commande | Ce qu'il fait |
|---|
| Boîte noire | neurosploit run <url> | reconnaissance → sélection → exploitation → vote → rapport |
| Boîte blanche | neurosploit whitebox <repo> | revue de code/SAST (preuve fichier:ligne) |
| Boîte grise | neurosploit greybox <repo> --url <app> | revue de code + exploitation en direct combinées |
| Hôte/Infra | neurosploit host <ip> --creds creds.yaml | tests Linux / Windows / AD et cloud (AWS/GCP/Azure) |
| Red-team IA / LLM | neurosploit aitest <ai-url> | jailbreaks et injection de prompt + OWASP LLM Top 10 / MCP contre un agent d'IA en conditions réelles |
| Compétences IA / n8n | neurosploit skills <file|folder> | audit en boîte blanche des définitions de compétences/plugins et de workflows n8n |
| Mission Control | neurosploit tui <url> | panneaux TUI en direct + composeur pendant l'exécution |
| Interactif | neurosploit | session REPL persistante (reprend par projet) |
.git/.env exposés, debug/actuator, identifiants par défaut, tableaux de bord,
CORS), un chasseur de CVE (nuclei intelligent et ciblé), un développeur de PoC (écrit
des scripts reproductibles dans pocs/ de l'exécution), et des tests de limite de débit — le tout
sous une garde-fou stricte de sécurité des données/PII (aucune action destructrice ou modifiant l'état ;
les PII sont prouvées avec un échantillon masqué, jamais divulguées)./proxy <url> (ou /burp) achemine le trafic des agents
via votre proxy d'interception local afin que vous puissiez inspecter et rejouer dans Burp.summary, pause, …).<cwd>/.neurosploit/ conserve la session, l'historique des exécutions et
l'historique des commandes ; le REPL reprend à la réouverture. Aucune base de données requise.| ✅ |
| ✅ (Apple Silicon) |
| Windows | ✅ | ✅ |
Préfixe --model | Variable d'env. | URL de base |
|---|
anthropic: | ANTHROPIC_API_KEY | api.anthropic.com |
openai: | OPENAI_API_KEY | api.openai.com |
gemini: | GEMINI_API_KEY | generativelanguage.googleapis.com |
xai: | XAI_API_KEY | api.x.ai |
nvidia_nim: | NVIDIA_NIM_API_KEY | integrate.api.nvidia.com |
deepseek: | DEEPSEEK_API_KEY | api.deepseek.com |
mistral: | MISTRAL_API_KEY | api.mistral.ai |
qwen: | DASHSCOPE_API_KEY | dashscope-intl.aliyuncs.com |
groq: | GROQ_API_KEY | api.groq.com |
together: | TOGETHER_API_KEY | api.together.xyz |
moonshot: | MOONSHOT_API_KEY | api.moonshot.ai |
openrouter: | OPENROUTER_API_KEY | openrouter.ai |
ollama: | (aucune) | localhost:11434 |
Préfixe --model | CLI utilisé | Connexion |
|---|
anthropic: | claude (Claude Code) | claude puis /login |
openai: | codex | codex login |
gemini: | gemini | gemini login |
xai: | grok | grok login |
| ./target/release/neurosploit run http://testphp.vulnweb.com/ \ |
| Fichier | Contenu |
|---|
status.json | running → complete avec un résumé |
recon.json / recon.md | surface d'attaque cartographiée |
exploitation.md | transcription brute par agent |
findings.json / findings.md | constatations validées (réutilisables par d'autres outils/IA) |
report.html, report.typ, report.pdf | rapport final (PDF via le moteur Typst) |
| Catégorie | Nombre | Objectif |
|---|
vulns/ | 196 | Exploiter une classe de vulnérabilité spécifique |
recon/ | 12 | Collecte d'informations / surface d'attaque |
code/ | 78 | Revue white-box du code source (SAST) |
meta/ | 17 | Orchestrateur, validateur, scoreurs, rapporteur, RL |